Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: nie mogę wygenerować nowego hasła
Forum PHP.pl > Forum > PHP
kemsi
Witam!! Mam problem. Gdy robie takie coś, że mam taki panel i gdy np. użytkownik kliknie na link "Zapomniałem hasło?!" to wtedy powinien wpisać swój e-mail i login, a wtedy pokazało by mu się nowe wygenerowane hasło(później będzie wysyłane na mail i updatowane, ale jak to nie działa to po co robić tamto? tongue.gif ), ale jak zawsze wpisuje poprawne dane to to jest napisane "Nie ma takiego użytkownika." Jest to koło lini 143.


  1. <?
  2. //wlanczanie raportowania wszystkich bledow
  3. error_reporting($E_ALL);
  4.  
  5. //wlanczenie sesji
  6.  
  7. //sprawdzenie czy pola w formularzu zostały wpisane
  8. if(isset($_POST['naz_uzy']) || isset($_POST['has_uzy']))
  9. {
  10. //zmienienie \"postów\" na zmienne
  11. $naz_uzy=$_POST['naz_uzy'];
  12. $has_uzy=$_POST['has_uzy'];
  13.  
  14. //łączenie z bazą
  15. $lacz=mysql_connect('localhost', 'kemsi', 'manutd') or die(mysql_error('Nie można połączyć się z bazą danych'));
  16. //wybieranie bazy
  17. mysql_select_db('zakladki'); 
  18. //sprawdzanie czy dane uzytkowniak sa poprawne
  19. $sel_us=&#092;"SELECT * FROM uzytkownik WHERE nazwa_uz='\".$naz_uzy.\"' AND haslo=PASSWORD('\".$has_uzy.\"')\";
  20. $sel_us_que=mysql_query($sel_us);
  21. //sprawdzanie czy w bazie jest wiecej niż jeden uzytkownik
  22. if($num=mysql_num_rows($sel_us_que) > 0)
  23. {
  24. //rejerstrowanie sesji
  25. $_SESSION['sesja']=$naz_uzy;
  26. }
  27. }
  28.  
  29. //sprawdzanie czy jest taka sesja
  30. if(isset($_SESSION['sesja']))
  31. {
  32. //wyswietlenie komunikatu, ze zalogowano uzytkownika
  33. echo &#092;"Użytkownik został zalogowany jako \".$_SESSION['sesja'].\"<br><br>
  34.  
  35.  
  36. <table border=&#092;"1\"><tr><td><a href=\"loguj.php?opc=wyl\">Wyloguj</a></td>
  37. <td><a href=&#092;"loguj.php?opc=dod_us\">Dodaj Użytkownika.</a></td>
  38. <td><a href=&#092;"loguj.php?opc=dod_zak\">Dodaj Zakładkę</a></td></tr></table>\";
  39.  
  40. //sprawdzanie czy zmienna get jest rowna opc
  41. if($_GET['opc'])
  42. {
  43. //zmiana zmiennej get['opc'] na normalna zmianna
  44. $opc=$_GET['opc'];
  45.  
  46. //swosowanie instrukcji switcha
  47. switch($opc)
  48. {
  49. //wylogowywanie uzytkownia
  50. case 'wyl':
  51. //usuwanie sesji
  52. unset($_SESSION['sesja']);
  53. session_destroy($_SESSION['sesja']);
  54. echo &#092;"Użytkownik wylogowany. <a href=\"loguj.php\">Powrót do strony logowania.</a>\";
  55. break;
  56.  
  57. default;
  58. echo &#092;"Zalogowany\";
  59. break;
  60. }
  61.  
  62. }
  63.  
  64. }
  65. else
  66. {
  67. /*wyswietlenie, ze nie ma takiego uzytkownika
  68.   i wyswietlenie formularza logowania*/
  69. echo &#092;"Nie ma takiego użytkownika
  70.  
  71. <form action=&#092;"loguj.php\" method=\"POST\">
  72. <table border=&#092;"0\"><tr><td><input type=\"text\" name=\"naz_uzy\"></td></tr>
  73. <tr><td><input type=&#092;"password\" name=\"has_uzy\"></td></tr>
  74. <tr><td><input type=&#092;"submit\" value=\"WYSLIJ\"></td></tr></table></form><br><br>
  75. <a href=&#092;"loguj.php?opcja=rej\">Zarejerstruj się!!</a><br>
  76. <a href=&#092;"loguj.php?opcja=zap_has\">Zapomniałem Hasła?!</a><br><br><br><br>\";
  77.  
  78. //sprawdzanie czy istnieje zmienna get['opcja']
  79. if(isset($_GET['opcja']))
  80. {
  81. //zamiana get['opcja'] na normalna zmienna
  82. $opcja=$_GET['opcja'];
  83.  
  84. //stosowanie instrukcji switch
  85. switch($opcja)
  86. {
  87. //rejerstracja uzytkownika
  88. case 'rej':
  89. //sprawdzanie czy wypelniono wszystkie pola
  90. if(isset($_POST['log_uz']) || isset($_POST['pas_uz']) || isset($_POST['ema_uz']))
  91. {
  92. //zamiana zmiennych post z formularza rejerstracji na normalne zmienne
  93. $log_uz=$_POST['log_uz'];
  94. $pas_uz=$_POST['pas_uz'];
  95. $ema_uz=$_POST['ema_uz'];
  96. mysql_select_db('zakladki');
  97.  
  98. //dodawanie pol z formularza rejerstracji do bazy
  99. $ins_uz=&#092;"INSERT INTO uzytkownik VALUES('\".$log_uz.\"', PASSWORD('\".$pas_uz.\"'), '\".$ema_uz.\"')\";
  100. $ins_uz_que=mysql_query($ins_uz) or die(mysql_error());
  101. }
  102. else
  103. {
  104. //wyswietlenie formularza rejerstracji
  105.  echo &#092;"Poniżej masz formularz rejerstracji. Należy wypełnić wszystkie jego pola.:
  106. <form action=&#092;"loguj.php?opcja=rej\" method=\"POST\">
  107. <table><tr><td>Login: <input type=&#092;"text\" name=\"log_uz\"></td></tr>
  108. <tr><td>Hasło: <input type=&#092;"password\" name=\"pas_uz\"></td></tr>
  109. <tr><td>Mail: <input type=&#092;"text\" name=\"ema_uz\"></td></tr>
  110. <tr><td><input type=&#092;"submit\" VALUE=\"ZAREJESTRUJ\"></td></tr></table></form>\";
  111. }
  112. break;
  113. //wysylanie zapomnianego hasla
  114. case 'zap_has':
  115. //sprawdzanie czy wypelniono w formularzu dane pola
  116. if(isset($_POST['zap_log']) && isset($_POST['zap_mail']))
  117. {
  118. //zmienianie zmiennych post na zwykle zmienne
  119. $zap_log=$_POST['zap_log'];
  120. $zap_mail=$_POST['zap_mail'];
  121.  
  122. $sel_zap=&#092;"SELECT * FROM uzytkownik WHERE nazwa_uz='\".$zap_log.\"' AND email='\".$zap_mail.\"'\";
  123. $sel_zap_que=mysql_query($sel_zap);
  124. if($row_zap=mysql_num_rows($sel_zap_que) > 0)
  125. {
  126.  
  127. $min=6;  //minimalna ilosc znakow
  128. $max=10; //maksymalna ilosc znakow
  129.  
  130. //losowanie hasla dla uzytkownika
  131. srand((double)microtime()*1000000);
  132. for($i=0;$i<rand($min,$max);$i++) {
  133. $znak=chr(rand(48,122));
  134. if (preg_match(&#092;"/[0-9A-Z]/i\",$znak)) $haslo .= $znak;
  135. else $i--;
  136. }
  137.  
  138. echo &#092;"Twoje hasło: <b>$haslo</b>\";
  139. }
  140. else
  141. {
  142. echo &#092;"Nie ma takiego użytkownika\";
  143. }
  144.  
  145. }
  146. else 
  147. {
  148. echo &#092;"Wypełnij wszystkie pola formularza
  149.  
  150. <form action=&#092;"loguj.php?opcja=zap_has\" method=\"post\">
  151. <table><tr><td>Login: <input type=&#092;"text\" name=\"zap_log\"></td></tr>
  152. <tr><td>Mail: <input type=&#092;"text\" name=\"zap_mail\"></td></tr>
  153. <tr><td><input type=&#092;"submit\" value=\"WYSLIJ\"></td></tr></table></form>\";
  154. }
  155.  
  156. break;
  157.  
  158. }
  159. }
  160. }
  161.  
  162. ?>
smentek
Wyswietla sie bo jedno z wyrazen w w instrukcji warunkowej (lub oba) daje false. To znaczy nie ma pod nim zmiennej.

if(isset($_POST['zap_log']) && isset($_POST['zap_mail']))

tongue.gif hehe

A dlaczego tak jest to juz sam sobie znajdz bracie smile.gif Sam sie wpedzasz w taki galimatlas. Piszesz bardzo nieczytelny kod, nie kozystasz z funkcji. Zacznij uzywac wciec przy pisaniu kodu zwlaszcza przy instrukcjach warunkowch. (tabulator na caly kod w instrukji if() itp. )

I Dlaczego robisz cos takiego ? Czemu ma to służyc?
//zmienienie "postów" na zmienne
$naz_uzy=$_POST['naz_uzy'];
$has_uzy=$_POST['has_uzy'];

(Dlaczego nie zamieniasz zmiennych na "posty" wiem.... Nieda sie smile.gif )
Pozdrawiam
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.