Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Problem z logowaniem
-Gość_adam-
post
Post #1





Goście







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
Go to the top of the page
+Quote Post
czachor
post
Post #2





Grupa: Zarejestrowani
Postów: 897
Pomógł: 40
Dołączył: 16.12.2003
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


To wydaje Ci się, czy się wywala...?
mysql_error" title="Zobacz w manualu PHP" target="_manual


--------------------
how many SEO experts does it take to change a light bulb,lightbulb,light,bulb,lamp,lighting,switch,sex,xxx
5-Reasons-why-you-should-NEVER-fix-a-computer-for-free
Go to the top of the page
+Quote Post
Marcin_m
post
Post #3





Grupa: Zarejestrowani
Postów: 35
Pomógł: 0
Dołączył: 1.06.2005

Ostrzeżenie: (0%)
-----


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?
Go to the top of the page
+Quote Post
SongoQ
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post
-Guest-
post
Post #5





Goście







Dziekuje za podpowiedzi ale powodem dla ktorego nie mozna bylo sie zalogwac byl brak COUNT przed * smile.gif
Go to the top of the page
+Quote Post
SongoQ
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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 to the top of the page
+Quote Post
-Gość_adam-
post
Post #7





Goście







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 to the top of the page
+Quote Post
-Gość_Adam-
post
Post #8





Goście







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>
Go to the top of the page
+Quote Post
SongoQ
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


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 to the top of the page
+Quote Post
-Gość_adam-
post
Post #10





Goście







Niestety, nie chce sie zalogowac sad.gif
Go to the top of the page
+Quote Post
SongoQ
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Poprawne dane wpisujesz?


--------------------
Go to the top of the page
+Quote Post
-Gość_adam-
post
Post #12





Goście







Cytat
Poprawne dane wpisujesz?

Tak.. Wywalilem i z logowania i z rejestracji funkcje md5 i zaczelo normalnie dzialac.. Jest jakas rada na to??
Go to the top of the page
+Quote Post
SongoQ
post
Post #13





Grupa: Przyjaciele php.pl
Postów: 2 923
Pomógł: 9
Dołączył: 25.10.2004
Skąd: Rzeszów - studia / Warszawa - praca

Ostrzeżenie: (0%)
-----


Sprobuj uzyc tak jak wczesniej pisalem ze funkcja md5 jest wywolywana z php a nie sqla - 'md5($haslo_user)'


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 00:51