Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP i MySQL ] Logowanie
Forum PHP.pl > Forum > Przedszkole
suchy1
Witam

Mam taki problem, moj skrypt laczy sie z baza, wybiera baze nastepnie wykonuje zapytanie login i hasło. Problem polega na tym ze nie działa mi sprawdzenie czy zapytanie w mysql dotyczace logowanie zwrocilo true czy false. Wiadomo ze jak false to logowanie jest niepoprawne...

configure.php
  1. <?php
  2. ################## Configurations ####################
  3. #Database server(example: localhost)
  4. $server = "localhost";
  5.  
  6. #Database login
  7. $db_login = "root";
  8.  
  9. #Database password
  10. $db_pass = "";
  11.  
  12. #Database name
  13. $base = "share";
  14.  
  15. ################ end of configurations ###############
  16. ?>


index.php
  1. <?php
  2. <html>
  3. <body>
  4. <form action=index2.php method="POST">
  5. Zapraszam do zalogowania:<br /><br />
  6. <table>
  7. <TR>
  8. <TD>Login: <INPUT style="border: 1px solid #C3C3C3; width: 165px;" type="TEXT" NAME="login" SIZE="30"></TD>
  9. <TD>Hasło: <INPUT style="border: 1px solid #C3C3C3; width: 165px;" type="PASSWORD" NAME="password" SIZE="30"></TD>
  10. <TD><INPUT type="SUBMIT" NAME="check" VALUE="Zastosuj"></TD>
  11. </TR>
  12. </table>
  13. </form>
  14. </body>
  15. </html>
  16. ?>


index2.php
  1. <?php
  2.  
  3. error_reporting(E_ALL & ~E_NOTICE);
  4.  
  5.  
  6. include_once('./'."configure.php");
  7.  
  8. $login = $POST["login"];
  9. $pass = $POST["password"];
  10.  
  11. $sql_conn = @mysql_connect($server, $db_login, $db_pass) or die("Nie moge połaczyc sie z serwerem!");
  12.  
  13. $base = @mysql_select_db($base) or die("Nie ma takiej bazy danych!");
  14.  
  15. $q = mysql_query("select count(id) from users where login='".$login."' and pass='".$password."' ;");
  16.  
  17. $check = mysql_num_rows($q);
  18.  
  19. switch($check){
  20. case '1':
  21.  echo 'Działa';
  22.  break;
  23. case '0':
  24.  echo 'Nie działa';
  25.  break;  
  26. }
  27. ?>


Z góry dzieki za pomoc smile.gif
nospor
$pass = $POST["password"];
....
...and pass='".$password."'.....
tja..... tongue.gif

I na litość php, nie wygluszaj NOTICOW!!!!
nie: error_reporting(E_ALL & ~E_NOTICE);
a: error_reporting(E_ALL);

To bys odrazu dostal info co i jak...


edit:
pozatym nie $POST a $_POST
suchy1
omg, ale błedy dzieki za pomoc!

Poprawiłem to co trzeba ale dalej mam błąd...

<span style="font-weight: bold;"><a href="http://pl.php.net/Notice: Undefined variable: login in D:\SuchY\WWW\upload\index.php on line 13

Notice: Undefined variable: password in D:\SuchY\WWW\upload\index.php on line 13" title="Zobacz w manualu PHP" target="_manual">Notice: Undefined variable: login in D:\SuchY\WWW\upload\index.php on line 13

Notice: Undefined variable: password in D:\SuchY\WWW\upload\index.php on line 13</a></span>

index.php
  1. <?php
  2.  
  3.  
  4. include_once('./'."configure.php");
  5.  
  6. $sql_conn = @mysql_connect($server, $db_login, $db_pass) or die("Nie moge połaczyc sie z serwerem!");
  7.  
  8. $base = @mysql_select_db($base) or die("Nie ma takiej bazy danych!");
  9.  
  10. $q = mysql_query("select count(id) from users where login='".$login."' and pass='".$password."' ;");
  11.  
  12. $check = mysql_num_rows($q);
  13.  
  14. switch($check){
  15. case '1':
  16.  echo 'Działa';
  17.  break;
  18. case '0':
  19.  echo 'Nie działa';
  20.  break;  
  21. }
  22. ?>
  23. <html>
  24. <body>
  25. <head>
  26. <META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=ISO-8859-2">
  27. <TITLE>.: S P A C E :.</TITLE>
  28. <LINK REV="made" href="mailto:mr.suchy@gmail.com">
  29. <META NAME="keywords" CONTENT="share, files, upload">
  30. <META NAME="description" CONTENT="Share files with your friends">
  31. <META NAME="author" CONTENT="mr.suchy">
  32. <META NAME="ROBOTS" CONTENT="ALL">
  33. </head>
  34. <form action=index.php method="POST">
  35. Zapraszam do zalogowania:<br /><br />
  36. <table>
  37. <TR>
  38. <TD>Login:&nbsp;<INPUT style="border: 1px solid #C3C3C3; width: 165px;" type="TEXT" NAME="login" SIZE="30"></TD>
  39. <TD>Hasło:&nbsp;<INPUT style="border: 1px solid #C3C3C3; width: 165px;" type="PASSWORD" NAME="password" SIZE="30"></TD>
  40. <TD><INPUT type="SUBMIT" NAME="check" VALUE="Zastosuj"></TD>
  41. </TR>
  42. </table>
  43. </form>
  44. </body>
  45. </html>


w ogole jak sprawdzic czy login i haslo jest poprawne ?! z w/w kodu to nie wychodzi sad.gif
Cienki1980
Teraz pozbyłeś się pobierania zmiennych z $_POST a jeżeli na serwerze masz ustawione register_globals=off to zmienne $login i $password będą puste.

Najpierw zrób :
  1. <?php
  2. $login=$_POST['login'];
  3. $password=$_POST['password'];
  4. ?>

jeżeli to nie zadziała sprawdź czy te zmienne mają takie wartości jak powinny mieć, a jeżeli tu się wszystko okaże, że jest ok sprawdź czy na pewno w bazie masz usera z takim loginem i hasłem.
suchy1
$login & $password maja dobre wartosci jak w bazie. Jak sprawdzic czy wprowadzone dane zgadzaja sie z danymi w bazie?

  1. <?php
  2. .....
  3.  
  4. $q = mysql_query("select count(id) from users where login='".$login."' and pass='".$password."' ;");
  5.  
  6. if(!$q){
  7. echo 'błąd';}
  8.  
  9. else{
  10. echo 'ok';
  11.  
  12. }
  13.  
  14. ...
  15. ?>

w tym przypadku zawsze mam napisa OK mad.gif
strife
Musisz te dane obrobić po wyciągnięciu z bazy, zobacz mysql_fetch_array" title="Zobacz w manualu PHP" target="_manual i pochodne.
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.