Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z logowaniem
Forum PHP.pl > Forum > Przedszkole
Gość_adam
Nie wiem co sie dzieje, niby wszystko jest dobrze ale nie chce działac, skrypt logowania wydaje mi sie ze wywala sie w tym momencie
Kod
$sql = "SELECT * FROM `uzytkownicy` WHERE `login` = '$login_user' AND `haslo` = md5('$haslo_user') LIMIT 1";
$result = mysql_query($sql);
$wynik = mysql_fetch_array($result);
if(mysql_num_rows($result) > 0):

tzn nie wchodzi do tego if'a na koncu.. Prosze Was o pomoc.. smile.gif
czachor
To wydaje Ci się, czy się wywala...?
mysql_error" title="Zobacz w manualu PHP" target="_manual
Marcin_m
Całe zapytanie jest złe, powinno być:

  1. <?php
  2.  
  3. &#092;"SELECT * FROM uzytkownicy WHERE login =' \".$login_user.\"' AND haslo = md5('\".$haslo_user.\"') LIMIT 1\"
  4.  
  5. ?>


Gdy wstawiasz fragmenty kodu php, to musisz używać (".$KOD."), pozatym po co ci apostrofy w nazwach kolumn?
SongoQ
Cytat
pozatym po co ci apostrofy w nazwach kolumn?

Wydaje mi sie ze to nie byly apostrofy tylko `.

Co do zapytania masz blad w md5 bo masz md5('$haslo_user') a powinno byc 'md5($haslo_user)'.

Odnosnie sposoby laczenia stringow w zapytaniu to lepiej jest laczyc tak jak podal @Marcin_m
Guest
Dziekuje za podpowiedzi ale powodem dla ktorego nie mozna bylo sie zalogwac byl brak COUNT przed * smile.gif
SongoQ
Wydaje mi sie ze optymalniej jest uzyc select id a nie select count(*).
Operacje agregacji - troche traci sie na wydajnosci, w tym przypadku dla 1 rekodu nie ma roznicy ale samo wykonanie takiej operacji daje nowe zadania bazie danych.
Gość_adam
Jednak dalej jest problem, loguje sie tyle ze teraz obojetnie co sie nie wpisze to kazdy moze sie zalogowac sad.gif
Oto caly skrypt:
  1. <?php
  2. <!--c1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td><b>CODE</b> </td></tr><tr><td id='CODE'><div class='programlisting'><!--ec1--><br>extract&#40;$_GET);<br>extract($_POST);<br>session_start();<br>$db=mysql_connect(\"localhost\", \"root\", \"\");<br>mysql_select_db(\"mirek1\", $db);<br>?><br><br><HTML><br><HEAD><br><META http-equiv=Content-Type content=\"text/html; charset=iso-8859-2\"><br><META NAME=\"Language\" CONTENT=\"pl\"><br></HEAD><br><BODY background=\"tlo.gif\"><br><br><p align=\"center\"><br><font color=\"#FFFFFF\" size=\"1\" face=\"Verdana\"><br><img src=\"news_g.gif\" width=\"300\" height=\"10\"><br></font><br><font color=\"#000000\" size=\"1\" face=\"Verdana\"><strong>Logowanie</strong></font><br><font color=\"#FFFFFF\" size=\"1\" face=\"Verdana\"><br><br><img src=\"news_s.gif\" width=\"300\" height=\"10\"><br><br><br></p><br><br><?<br>if($opcja == &#092;"wyloguj\"):<br> session_unregister(\"username\");<br> header(\"Location: index.php\");<br> exit;<br>endif;<br><br>$inc = 0;<br>if(!session_is_registered(\"username\")):<br> if(isset($submit)):<br>  $sql = \"SELECT count(*) FROM uzytkownicy WHERE login = '$login_user' AND haslo = md5('$haslo_user') LIMIT 1\";<br>  $wynik = mysql_query($sql);<br>  $result = mysql_fetch_row($wynik);<br>  if(mysql_num_rows($wynik) > 0):<br>   session_register(\"username\");<br>   $_SESSION[\"username\"] = $login_user;<br>  else:<br>   ?><br>   Nieprawidłowe dane<BR><br>   <form method=post><br>   <TABLE BORDER=\"0\"><br>   <TR><br>     <TD>Login: </TD> <TD><input type=\"text\" name=\"login_user\"></TD></TR><br>   <TR><br>     <TD>Hasło: </TD> <TD><input type=\"password\" name=\"haslo_user\"></TD></TR><br>   </TABLE><br>   <input type=submit name=submit value=\"Zaloguj\"><br>   </form><br>   <?<br>  endif;<br> else:<br>  ?><br>  <form method=post><br>  <TABLE BORDER=\"0\"><br>  <TR><br>    <TD>Login: </TD> <TD><input type=\"text\" name=\"login_user\"></TD></TR><br>  <TR><br>    <TD>Hasło: </TD> <TD><input type=\"password\" name=\"haslo_user\"></TD></TR><br>  </TABLE><br>  <input type=submit name=submit value=\"Zaloguj\"><br>  </form><br>  <?<br>  exit();<br> endif;<br>endif;<br><br>if(!session_is_registered(&#092;"username\")):<br> exit();<br>endif;<br><br>echo \"<A HREF=\"?opcja=wyloguj\">Wyloguj</A><BR><BR>\";<br>?><br><br>Zalogowany...<br></BODY><br></HTML><br><!--c2--></div></td></tr></table><div class='postcolor'><!--ec2-->
  3. ?>
Gość_Adam
Sorki.. tongue.gif
  1. <?php
  2. extract($_GET);
  3. extract($_POST);
  4. $db=mysql_connect(&#092;"localhost\", \"root\", \"\");
  5. mysql_select_db(&#092;"mirek1\", $db);
  6. ?>
  7.  
  8. <HTML>
  9. <HEAD>
  10. <META http-equiv=Content-Type content=\"text/html; charset=iso-8859-2\">
  11. <META NAME=\"Language\" CONTENT=\"pl\">
  12. </HEAD>
  13. <BODY background=\"tlo.gif\">
  14.  
  15. <p align=\"center\">
  16. <font color=\"#FFFFFF\" size=\"1\" face=\"Verdana\">
  17. <img src=\"news_g.gif\" width=\"300\" height=\"10\"><br></font>
  18. <font color=\"#000000\" size=\"1\" face=\"Verdana\"><strong>Logowanie</strong></font>
  19. <font color=\"#FFFFFF\" size=\"1\" face=\"Verdana\"><br>
  20. <img src=\"news_s.gif\" width=\"300\" height=\"10\"><br><br>
  21. </p>
  22.  
  23. <?
  24. if($opcja == &#092;"wyloguj\"):
  25. session_unregister(&#092;"username\");
  26. header(&#092;"Location: index.php\");
  27. endif;
  28.  
  29. $inc = 0;
  30. if(!session_is_registered(&#092;"username\")):
  31. if(isset($submit)):
  32. $sql = &#092;"SELECT count(*) FROM uzytkownicy WHERE login = '$login_user' AND haslo = md5('$haslo_user') LIMIT 1\";
  33. $wynik = mysql_query($sql);
  34. $result = mysql_fetch_row($wynik);
  35. if(mysql_num_rows($wynik) > 0):
  36. session_register(&#092;"username\");
  37. $_SESSION[&#092;"username\"] = $login_user;
  38. else:
  39. ?>
  40. Nieprawidłowe dane<BR>
  41. <form method=post>
  42. <TABLE BORDER=\"0\">
  43. <TR>
  44. <TD>Login: </TD> <TD><input type=\"text\" name=\"login_user\"></TD></TR>
  45. <TR>
  46. <TD>Hasło: </TD> <TD><input type=\"password\" name=\"haslo_user\"></TD></TR>
  47. </TABLE>
  48. <input type=submit name=submit value=\"Zaloguj\">
  49. </form>
  50. <?
  51. endif;
  52. else:
  53. ?>
  54. <form method=post>
  55. <TABLE BORDER=\"0\">
  56. <TR>
  57. <TD>Login: </TD> <TD><input type=\"text\" name=\"login_user\"></TD></TR>
  58. <TR>
  59. <TD>Hasło: </TD> <TD><input type=\"password\" name=\"haslo_user\"></TD></TR>
  60. </TABLE>
  61. <input type=submit name=submit value=\"Zaloguj\">
  62. </form>
  63. <?
  64. exit();
  65. endif;
  66. endif;
  67.  
  68. if(!session_is_registered(&#092;"username\")):
  69. exit();
  70. endif;
  71.  
  72. echo &#092;"<A HREF=\"?opcja=wyloguj\">Wyloguj</A><BR><BR>\";
  73. ?>
  74.  
  75. Zalogowany...
  76. </BODY>
  77. </HTML>
SongoQ
Cos strasznie namieszales:

Zamiast SELECT COUNT(*) powinno byc SELECT * - poniewaz pozniej sprawdzasz ile rekordow zwrocil, jesli count zwroci Ci 0 to i tak bedzie 1 rekord.

Ponizej masz dzialajace

  1. <?php
  2.  
  3. $sql = &#092;"SELECT * FROM uzytkownicy WHERE login = '$login_user' AND haslo = md5('$haslo_user') LIMIT 1\";
  4. $wynik = mysql_query($sql);
  5. if(mysql_num_rows($wynik) > 0)
  6.  
  7. ?>


Skad wytrzasnoles skladnie endif? albo ze po else jest :

W php tak jak w C stosuje sie klamerki.
Gość_adam
Niestety, nie chce sie zalogowac sad.gif
SongoQ
Poprawne dane wpisujesz?
Gość_adam
Cytat
Poprawne dane wpisujesz?

Tak.. Wywalilem i z logowania i z rejestracji funkcje md5 i zaczelo normalnie dzialac.. Jest jakas rada na to??
SongoQ
Sprobuj uzyc tak jak wczesniej pisalem ze funkcja md5 jest wywolywana z php a nie sqla - 'md5($haslo_user)'
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.