Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL] logowanie
Forum PHP.pl > Forum > Przedszkole
ukaszq
Napisalem skrypt do logowania i pobierania hasel z bazy mysql. I nie mam zadnej reakcji z tego skryptu. Kiedy wpisuje haslo i login nie mam zadnej ifnormacji, nawet nie przenosi mnie do index.php.

Oto moj skrypt:
  1. <?php
  2. if(isset($_POST["Submit"])){
  3. $login=$_POST["login"];
  4. $pass=$_POST["pass"];
  5. $auth = false;
  6.  
  7.  $connection1 = mysql_connect('localhost', 'users', 'usery1') 
  8. or die('<div align='center'><span class='style1'>Brak polaczenia z baza danych. Skontaktuj sie z administratorem serwera: admi
    n@farmina.pl</span></div>'
    ); 
  9. $db1 = mysql_select_db('logins', $connection1) 
  10. or die('<div align='center'><span class='style1'>Nie moge polaczyc sie z baza danych. Skontaktuj sie z administratorem serwera
    : admin@farmina.pl</span></div>'
    ); 
  11.  
  12. $wyb_prod11=mysql_query("SELECT * from users");
  13. while(($wi= mysql_fetch_array($wyb_prod11)) !== false ) 
  14. {
  15. if($login == $wi['user'] and crypt($pass) == $wi['passwd']){
  16. $auth = true;
  17. break;
  18.  
  19. }
  20.  
  21.  
  22.  
  23. if($auth){
  24. $_SESSION["username"] = $login;
  25. if(isset($_GET["url"])){
  26. $url = $_GET["url"];
  27. }else{
  28. $url = "../index.php";
  29. }
  30. }
  31.  
  32. if(!isset($_COOKIE[session_name()])){
  33. if(strstr($url, "?")){
  34. header("Location: " . $url . "&" . session_name() . "=" . session_id());
  35. }else{
  36. header("Location: " . $url . "?" . session_name() . "=" . session_id());
  37. }
  38. }else{
  39. header("Location: " . $url);
  40. }
  41.  
  42. }
  43. }
  44. ?>
potreb
Pokaż jeszcze formularz
ukaszq
  1. <form method="post" action="<? echo $PHP_SELF;?>">
  2. <input name="login" type="text" class="style6" >
  3. <input name="pass" type="password" class="style6" >
  4. <input name="Submit" type="submit" class="style6" value="LOG" />
  5. </form>
potreb
  1. <?php
  2. wyb_prod11=mysql_query("SELECT * from users");
  3. while(($wi= mysql_fetch_array($wyb_prod11)) !== false ) 
  4. {
  5. if($login == $wi['user'] and crypt($pass) == $wi['passwd']){
  6. $auth = true;
  7. break;
  8.  
  9. }
  10. ?>


Lepiej tak:
  1. <?php
  2. $pass=crypt($pass);
  3. $sql = mysql_query("SELECT * FROM users WHERE passwd = '$pass' AND user='$login' AND LIMIT 1");
  4. if(mysql_num_rows($sql)) {
  5. $auth = true;
  6. }
  7. ?>


Co do przekierowań ja bym sie zastanowił na inną budową ich
ukaszq
Zmienilem i dalej nic...

Mam pytanie, czy moze trzeba cos zmienic w php.ini?
nospor
daj se echo $url i zobacz czy masz popprawny adres.
wlacz se raportowanie bledow by zobaczyc jakie masz bledy, np: wyslanie naglowkow, albo bledy w zzapytaniu ktorymi uraczył cię potreb... smile.gif
ukaszq
Próbuje wyswietlic url i nie mam nic. Nie wiem co jest nie tak...
Zrobilem tak ze skrypt wrzucilem do nowego pliku i dalej nic...
Jest pusto, nie wlacza zadnej strony.
nospor
Daj se co kilka linii: echo 'dupa numer' (poczawszy od pierwszej) i zobacz na ktorej dupie ci sie wyłoży. bedziesz wiedzial gdzie jest przyblizony blad. jak zadna ci sie nie wyswietli to znaczy ze wogole ci do tego pliku nie wszedl winksmiley.jpg

Wlacz tez raportowanie bledow:
  1. <?php
  2. ini_set('display_errors', 1);
  3. ?>

I ogolnie kombinuj a nie wszystko trzeba tlumaczyc jak malemu dziecku tongue.gif

ps: $url widze ustawiasz tylko gdy jest $auth. Skoro ci sie url nie wyswietlil to nie jest $auth.
Auth ustawiasz na podstawie wyniku zapytania, a juz ci mowilem ze potreb ma blad w zapytaniu. O jedno and za duzo.
ukaszq
O and w zapytaniu to wiem... zmienilem to odrazu.
Co do url to pokazuje mi ze: ze zmienna jest nie zdefiniowana...

Przy zlym hasle przeniesc mnie na sprzedaz.serwer, a nie robi tego...
Pokazuje mi takie info: The requested URL /log/<br /><b>Notice</b>: Undefined variable: PHP_SELF in <b>/home/admin/www/sprzedaz/log/logowanie.php</b> on line <b>87</b><br /> was not found on this server.

Czy to chodzi o to ze serwer nie ma takiej opcji jak php_self?
nospor
Cytat
Co do url to pokazuje mi ze: ze zmienna jest nie zdefiniowana...
to jak ci mowilem - nie ustawiasz auth bo zapytanie ci nic nie zwrocilo. sprawdzaj tam czy masz ok wszystko
ukaszq
Zapytanie dziala poprawnie!
$wyb=mysql_query("SELECT * from users where user = '$login' and passwd = '$pass' LIMIT 1");
Mam dodanego siebie do bazy i moje haslo i login sa poprawne!
nospor
ale czego na mnie krzyczysz? ja tylko mowie jak jest. $url ustawiasz tylko wtedy gdy $auth. A $auth ustawiasz gdy zapytanie zwroci rekord. Wiec zamiast krzyczec na mnie to prześledź tę sciezkę.
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.