Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP]logowanie
Forum PHP.pl > Forum > Przedszkole
adamgr
Napisałem taki skrypt logowania do bazy danych, ale nie działa mimo wprowadzenia poprwnego loginu i hasło (takie dane znajdują się wtabeli bazy) nie pokazuje sie komunikat zalogowany oraz niepoprawne hasło
Co nalezy poprwić wtym skrypcie?
  1. <?php
  2. $username = $_POST['username'];
  3. $password = $_POST['username'];
  4. if ($username && $password)
  5. {
  6. $connect = mysql_connect ("localhost","root","zaq1@WSX")
  7. or die ("Nie można się połączyć");
  8. $db= mysql_select_db("log_in",$connect)
  9. or die ("Nie można wybrać bazy danych");
  10. $wynik = mysql_query("SELECT * FROM users WHERE username = '$username'");
  11. //echo $username;
  12. $numrows = mysql_num_rows($wynik);
  13. if ( $numrows !==0)
  14. {
  15.  
  16. while ($wiersz =mysql_fetch_array($wynik))
  17. {
  18. $dbusername = $wiersz['username'];
  19. $dbpassword = $wiersz['password'];
  20. }
  21.  
  22. if ( $username==$dbusername && $password==$dbpassword)
  23. {
  24. echo "Jesteś zalogowany";
  25. @$_SESSION['username']= $username;
  26. }
  27. else "hasło niepoprawne";
  28. }
  29. else
  30. die("użytkownik nie istnieje");
  31. }
  32. else die("Wpisz poprawnie nazwę użytkownika i hasło");
  33. ?>
castagir
Może dlatego, że w

  1. $username = $_POST['username'];
  2. $password = $_POST['username'];
  3. if ($username && $password)


Podajesz te same dane.

Druga sprawa jeśli zamieszczasz kod na forum rób to w odpowiednich znacnzikach, aby był czytelniejszy dla innych.
Trzecia to proponuję nauczyć się metody laczenia z baza PDO i porzucic stary myslq_query.

Boshi
Temat: Jak poprawnie zadac pytanie
i zastosuj formatowanie php bo sie czytać tego nie da.

@$_SESSION['username']= $username;

nie używaj małpy...
tomek200
Zmień to:
  1. while ($wiersz =mysql_fetch_array($wynik))
  2. {
  3. $dbusername = $wiersz['username'];
  4. $dbpassword = $wiersz['password'];
  5. }

Na to:
  1. while ($wiersz =mysql_fetch_assoc($wynik))
  2. {
  3. $dbusername = $wiersz['username'];
  4. $dbpassword = $wiersz['password'];
  5. }

Prawdopodobnie błędem była ta linijka bo dawając mysql_fetch_array podajesz wyniki z tabeli array czyli liczbami licząc od zera a stosując mysql_fetch_assoc możesz podać nazwę wiersza w tabeli
  1. while ($wiersz =mysql_fetch_array($wynik))
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.