Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: logowanie
Forum PHP.pl > Forum > Bazy danych > MySQL
batat
mam maly problem z moim logowaniem, ktore wyglada tak:

  1. <? ob_start();
  2.  
  3.  
  4. require_once(&#092;"functions.php\"); 
  5. connect(); 
  6.  
  7. $wyk = mysql_query(&#092;"SELECT * FROM users\") or die (\"Zapytanie zakończone niepowodzeniem\"); 
  8. while($wiersz = mysql_fetch_array($wyk)){ 
  9. echo ''.$wiersz['user'].' '.$wiersz['haslo'].'<br/>';
  10. if ( $_POST['login'] == $wiersz['user'] && $_POST['pass'] == $wiersz['haslo'] ){ 
  11. $_SESSION['jest'] = true; 
  12. } 
  13. else { 
  14. $_SESSION['jest'] = false; 
  15. } 
  16.  }
  17.  
  18.  if ( $_SESSION['jest'] == true ){ 
  19. header(&#092;"Location: edytuj.php\");
  20.  } 
  21.  elseif ( $_SESSION['jest'] == false ) { 
  22. echo '<form action=\"login.php\" method=\"post\"
  23. <table align=center> 
  24. <tr><td colspan=2 align=center>Zaloguj się: </td></tr> 
  25. <tr><td>Login:</td><td><input type=\"text\" name=\"login\"/></td></tr> 
  26. <tr><td>Hasło:</td><td><input type=\"password\" name=\"pass\"/></td></tr> 
  27. <tr><td colspan=2 align=center><input type=\"submit\" name=\"submit\" value=\"Zaloguj\"/></td></tr> 
  28. </form></table><BR>'; 
  29.  }
  30.  


tylko problem w tym, ze logowanie dziala tylko dla ostatniego usera wpisanego w bazie, dla reszty nie :/ jak to zmienic questionmark.gif sad.gif prosze o pomoc, bo zalezy mi na czasie exclamation.gif z gory bardzo dziekuje exclamation.gif
crash
Nie lepiej zrobic tak:
  1. <?php
  2. $wyk = mysql_query('SELECT * FROM users WHERE user = '.$_POST['login'].' AND haslo = '.$_POST['pass']);
  3. if(mysql_num_rows($wyk) > 0)
  4. {
  5.  $_SESSION['jest'] = true; 
  6. } 
  7. else
  8. { 
  9.  $_SESSION['jest'] = false; 
  10. }
  11. ?>

Radze dodac jakies kodowanie hasla, bo z tego co widac to nie uzywasz zadnego.
batat
ten kod cos nie dziala :/ nie weim czego, chyba nie masz zamknietego polecenia SELECT apostrofem,a le uzupelnialem to i dalej nie chodzi :/ a po drugie nie rozumiem po co zliczasz liczbe linijek questionmark.gif :/ prosilbym o male wyjasnienie albo inny sposob na to logowanie smile.gif a kodowaniem zajme sie pozniej cool.gif
crash
A sorry, mala polyka.
  1. <?php
  2. $wyk = mysql_query('SELECT * FROM users WHERE user = \"'.$_POST['login'].'\" AND haslo = \"'.$_POST['pass'].'\"');
  3. ?>

mysql_num_rows" title="Zobacz w manualu PHP" target="_manual zostalo uzyte zeby sprawdzic czy zapytanie SQL zwrocilo jakis wiersz, jesli tak znaczy to, ze podano dobre dane.

Jezeli dalej bedzie cos nie tak z kodem to zobacz czy nazwy kolumn w tabeli i zmiennych przekazanych przez POST sa dobre.
Vertical
  1. <?php
  2. $wyk = mysql_query(&#092;"SELECT * FROM users WHERE user = '$_POST[login]'\");
  3. $row_count = mysql_num_rows($wyk);
  4. if($row_count == 0)
  5. {
  6. echo 'Nie ma takiego usera';
  7. }
  8. $wiersz = mysql_fetch_array($wyk);
  9. if($wiersz['user'] != $_POST['login'])
  10. {
  11. echo 'Niepoprawny user!';
  12. } elseif($wiersz['haslo'] != $_POST['pass']) 
  13. {
  14. echo 'Niepoprawne haslo!':
  15. } else {
  16. echo 'Zalogowany';
  17. }
  18. ?>
batat
Ok, dzieki Vertical logowanie juz chodzi smile.gif tylko mam jeszcze problem z wylogowaniem sie biggrin.gif

do ostatniego warunku else w logowaniu dodalem:
  1. <?php
  2. else {
  3. echo 'Zalogowany';
  4. $_SESSION['jest'] = true;
  5. header(&#092;"location: edytuj.php\");
  6. }
  7. ?>


ale teraz przy wylogowywaniu:
  1. <?php
  2. if ($_SESSION['jest'] == true)
  3. { 
  4. echo '<div align=center><BR>Zostaleś wylogowany!<BR>
  5. <a href=login.php>Zaloguj ponownie</a><BR>
  6. <a href=index.php>Powrót do strony głównej</a></div>';
  7. }
  8.  
  9.  
  10. else {
  11. header(&#092;"location: login.php\"); 
  12. } 
  13. ?>


nic sie nie dzieje :/
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.