Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: funkcja mail nie rozumiem
Forum PHP.pl > Forum > PHP
pstefano
witam
chce zrobic skrypt do odzyskiwania hasla swojego. Robie to na takiej zasadzie ze osoba podaje swoj login i na e-mail wysylane jest nowe haslo (losowe) i szyfrowane sh1. oto kod

  1. brak_hasla.php
  2. <?
  3. if($_POST['login']<>'')
  4. {
  5. $login=$_POST['login'];
  6. include('funkcja_lacz.php');
  7. $zapytanie="SELECT LOGIN,E_MAIL from klient where LOGIN='$login'";
  8.  
  9. if($r=mysql_query($zapytanie))
  10. {
  11. $liczba=mysql_num_rows($r);
  12. if($liczba>0)
  13. {
  14. while ($wiersz=mysql_fetch_array($r))
  15. {
  16. include('nowe_haslo.php');
  17. include('funkcja_lacz.php');
  18.  
  19. $odbiorca="{$wiersz['E_MAIL']}";
  20. echo "odbiorca $odbiorca";
  21. echo "<br />";
  22.  
  23. $haslo=uid(6);
  24. echo "odbiorca $haslo";
  25. echo "<br />";
  26. $temat="Nowe haslo ";
  27. echo "odbiorca $temat";
  28. echo "<br />";
  29. $zawartosc="Oto nowe haslo w serwisie: ".$haslo." (wazna wielkosc liter). Mozna a nawet trzeba nalezy zmienic je po zalogowaniu";
  30. echo "odbiorca $zawartosc";
  31. echo "<br />";
  32. $adresod='stefan@ztpnet.pl';
  33. echo "odbiorca $adresod";
  34. echo "<br />";
  35. if($haslo<>'')
  36. {
  37. if(mail($odbiorca,$temat,$zawartosc,$adresod))
  38. {
  39.  
  40. $zapytanie="UPDATE klient set HASLO_KL=sha1('$haslo') where LOGIN='$login'";
  41. if(mysql_query($zapytanie))
  42. {
  43. echo 'zmieniono w bazie';
  44. }
  45. else
  46. {
  47. echo "probelm z baza";
  48. }
  49. }
  50. }
  51.  
  52.  
  53.  
  54. }
  55.  
  56. }
  57. else
  58. {
  59. echo 'nie ma takiego uzytkownika';
  60. }
  61. }
  62.  
  63. }
  64. else
  65. {
  66. echo 'wprowadz login';
  67. }
  68. echo "<form action="brak_hasla.php" method="post" >";
  69. echo "podaj login<input type="text" name="login" />";
  70. echo "<input type="submit" name="wyslij" value="wyslij" />";
  71. echo "<br />";
  72. echo "</form>";
  73.  
  74. echo "<br />";
  75. echo "<a href="zaloguj.php">powrot</a>";
  76. ?>

oraz funkcja do losowego hasla
nowa_funkcja.php
  1. <?
  2. function uid($l) 
  3. { 
  4. $tmp="abcdefghijklmnoprstuvxyzqABCDEFGHIJKLMNOPRSTUWXYZ0123456789"; 
  5. for($i=0; $i<$l; $i++) 
  6. { 
  7. $s.=substr($tmp,(rand()%(strlen($tmp))),1); 
  8. } 
  9. return($s); 
  10. } 
  11.  
  12. $string=uid(8); 
  13. ?>


i tak na jeden e-mail wysyla mi - stefan@ztpnet.pl a na drugi e-mail pstefano@poczta.fm wysyla mi blad taki

  1. <?php
  2. Warning: mail() [function.mail]: SMTP server response: 550 Invalid recipient: pstefano@poczta.fm in c:usrapachehttpdhtmlsesje1brak_hasla.php on line 36
  3. ?>


36 linia to funckja mail i nie wiem od czego to zalezy. Oczywiscie czesc kodu jest nie potrzebna (tak dla mnie dla testu te echo).
Dziekuje za odpowiedz
MatheW
Byćmoze masz źle skonfigurowany serwer smtp, albo zły adres e-mail odbiorcy.
em1X
Zgadza sie, wyglada na to, ze bedziesz musial zmienic serwer smtp smile.gif

Ps. po co kazesz podawac login i email, skoro sam email wystarczy? Jakas dziwna moda na to panuje.. kto by tam loginy pamietał..
pstefano
w sumie prawda ze lepiej e-mail, pozneij to poprawie

a co do srvera to testuje to na krasnalu i chce to pozneij przeniec na inny serwer wiec chyba skrypty sa dobre?
em1X
jasne, ze dobre.. co do tego twojego losowego hasla:

  1. <?php
  2. function uid($len)
  3. {
  4. return substr(md5(microtime()), 0, $len);
  5. }
  6. ?>


szybsze wiec lepsze (na studiach uczyli mnie, zeby w miare mozliwosci unikac modulo %)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.