Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z odczytem z bazy danych
Forum PHP.pl > Forum > Przedszkole
Bibas
Witam.

Pisze sobie skrypcik logowania i natrafilem na jeden problem.
  1. <?
  2. $log=$_POST['log_in'];
  3. $pswd=$_POST['password'];
  4.  
  5. $link = mysql_connect(&#092;"server\", \"user\", \"pass\")
  6. or die (&#092;"Nie można się połączyć z baza\");
  7. mysql_select_db (&#092;"db\") or die (\"Nie mozna wybrać bazy danych\");
  8.  
  9. $query=(&#092;"SELECT * FROM `jakas_tabela` WHERE `login` = '\".$log.\"'\");
  10. $result = mysql_query ($query) or die (&#092;"Zapytanie zakończone niepowodzeniem\");
  11.  
  12. while($wiersz=mysql_fetch_array($result)){
  13. if($log==$wiersz['login']){
  14. if($pswd==$wiersz['passwd']){
  15. $_SESSION['sprawdz']=$wiersz['check_it'];
  16. echo '<body><div align=\"center\" class=\"style5\">Zostales Zalogowany!<br><a href=\"index.php\">Dalej</a></div>';
  17. } else {
  18. echo'<div align=\"center\" class=\"style5\">Blad w logowaniu!<br><a href=\"index.php\">Wroc</a></div>';
  19. }
  20. echo &#092;"tu jest koniec petli\";
  21. };
  22. }
  23. ?>

No i do tego miejsca wszystko dziala. Chcialem jeszcze wprowadzic petle if w przypadku gdyby $log (czyli pole login z formularza) nie mialo swojego odwzorowania w bazie danych (nie byloby takiego uzytkownika). Petla wygladala tak:

  1. <?
  2. if($log !== $wiersz['login']){
  3. echo'<div align=\"center\" class=\"style5\">Blad w logowaniu!<br><a href=\"index.php\">Wroc</a></div>';
  4. }
  5. ?>

Ale ta petla nie dziala niestety, choc probowalem to dac jako else oraz elseif do poprzedniego if'a blink.gif co z tym zrobic? moze zalozenie ostatniego if'a jest zle... sadsmiley02.gif
nospor
W zapytaniu pobierasz wszystkie dane, które pasują do danego loginu. Nie dziw się więć, że warunek $log !== $wiersz['login'] nigdy nie zajdzie, gdyż ty zawsze masz tam tylko dane pasujące do $log. Nie więc nawet sensu sprawdzać $log==$wiersz['login']
Bibas
Zastosowalem sie do tego co napisales, z tym, ze nadal nie mam zaleznosci takiej, gdy nie ma takiego uzytkownika, jaki byl wpisany w formularzu w polu login...

Jak z tym sobie poradzic? bo ja teraz nie mam pomyslu na to worriedsmiley.gif
nospor
jak nie ma takiego uzytkownika to ci zapytanie nie zwróci żadnego rekordu
Bibas
hmm.. a jest jakis sposob by w przypadku bledzie wprowadzonego loginu wykonala sie procedura np include('error.php'); ?
nospor
  1. <?php
  2.  
  3. if (mysql_num_rows($result)==0)
  4.  include('error.php');
  5.  
  6. ?>
Bibas
Kurcze... banalne rozwiazanie, moglem troche pomyslec biggrin.gif

Dzieki, dziala biggrin.gif
Ociu
Jeżeli ostnieje tylko jeden użytkownik o takim loginie, to po co wyciągać jego dane pętlą ?
  1. <?
  2. $log=$_POST['log_in'];
  3. $pswd=$_POST['password'];
  4.  
  5. $link = mysql_connect(&#092;"server\", \"user\", \"pass\") or die (mysql_error());
  6. mysql_select_db (&#092;"db\") or die (\"Nie mozna wybrać bazy danych\");
  7. $result = mysql_query (&#092;"SELECT * FROM `jakas_tabela` WHERE `login` = '\".$log.\"'\") or die (mysql_error());
  8.  
  9. if(mysql_num_rows($result) == &#092;"1\"){
  10. $wiersz = mysql_fetch_array($result);
  11. if($log==$wiersz['login']){
  12. if($pswd==$wiersz['passwd']){
  13. $_SESSION['sprawdz']=$wiersz['check_it'];
  14. echo '<body><div align=\"center\" class=\"style5\">Zostales Zalogowany!<br><a href=\"index.php\">Dalej</a></div>';
  15. } else {
  16. echo'<div align=\"center\" class=\"style5\">Blad w logowaniu!<br><a href=\"index.php\">Wroc</a></div>';
  17. }
  18. echo &#092;"end if\";
  19. } else {
  20. echo 'error ?';
  21. }
  22.  
  23. ?>
nospor
ociu: w tym przypadku dalej nie ma co sprawdzać:$log==$wiersz['login']. czytaj posty wyżej
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.