Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z logowaniem
Forum PHP.pl > Forum > PHP
michal_s
Witam. Mam skrypt logowania, który pokazuje poniżej. Niby wszystko wydaje mi się, że powinno byc dobrze, ale ciągle wyświetla mi błąd "Wystąpił błąd", więc sądze, że coś przekąbinowałem z szyfrowaniem hasła i tam się sypie. Byłbym wdzięczny jak by ktoś znalazł ten błąd. Pewnie to jakaś głupota... Z góry dzięki.

  1. <?php
  2. if (isset($_POST['imie']) and isset($_POST['nazwisko']) and isset($_POST['password'])) {
  3. require("connection.php");
  4. connection();
  5. $imie=mysql_real_escape_string(trim($_POST['imie']));
  6. $nazwisko=mysql_real_escape_string(trim($_POST['nazwisko']));
  7. $password=mysql_real_escape_string (trim($_POST['password']));
  8. if ($imie!="" and $nazwisko!="" and $password!="") {
  9. $password = sha1($password);
  10. $zapytanie="SELECT id FROM users WHERE imie='$imie' and nazwisko='$nazwisko' and password ='$password'";
  11. $temp=mysql_query($zapytanie) or die("Wystąpił błąd");
  12. $ile=mysql_num_rows($temp);
  13. $temp=mysql_fetch_array($temp);
  14. $id=$temp['id'];
  15. if ($ile==1) {
  16. $_SESSION['user_id']=$id;
  17. $_SESSION['imie']=$imie;
  18. $_SESSION['nazwisko']=$nazwisko;
  19. echo('Zostales zalogowany. ');
  20. }
  21. else echo ('Podałeś zle dane. Kliknij wstecz aby spróbowac ponownie.');
  22. }
  23. }
  24. else{
  25. ?>
  26. <html>
  27. <body>
  28. <form action="logowanie.php" method="post">
  29. <strong>Imie:</strong><input name="imie" type="text" value="" /><br>
  30. <strong>Nazwisko:</strong><input name="nazwisko" type="text" value="" /><br>
  31. <strong>Haslo:</strong><input name="password" type="password" value="" /><br>
  32. <input type="submit" value="Zaloguj" />
  33. </form>
  34. </body>
  35. </html>
  36. <?php
  37. }
  38. ?>
modern-web
  1. <?php
  2. if (isset($_POST['imie']) && isset($_POST['nazwisko']) && isset($_POST['password'])) {
  3. require("connection.php");
  4. connection();
  5. $imie = mysql_real_escape_string(trim($_POST['imie']));
  6. $nazwisko = mysql_real_escape_string(trim($_POST['nazwisko']));
  7. $password = mysql_real_escape_string(trim(sha1($_POST['password'])));
  8. if ($imie != NULL && $nazwisko != NULL && $password != NULL) {
  9. $temp = mysql_query("SELECT `id` FROM `users` WHERE `imie` = '$imie' AND `nazwisko` = '$nazwisko' AND `password` = '$password'") or die("Wystąpił błąd");
  10. $ile = mysql_num_rows($temp);
  11. $temp = mysql_fetch_array($temp);
  12. $id = $temp['id'];
  13. if ($ile == 1) {
  14. $_SESSION['user_id'] = $id;
  15. $_SESSION['imie'] = $imie;
  16. $_SESSION['nazwisko'] = $nazwisko;
  17. echo "Zostales zalogowany";
  18. } else {
  19. echo "Podałeś zle dane. Kliknij wstecz aby spróbowac ponownie.";
  20. }}}
  21. ?>


Kilka rzeczy poprawiłem smile.gif Błąd powinien ustąpić.
W razie czego pisz; będziemy próbować dalej ;d

Pozdrawiam!
michal_s
Dzięki za odpowiedź. Ale ciągle jest ten sam błąd nie wiem dlaczego...

Tabela users wygląda tak u mnie, przetestuj może u siebie czy będzie działało:

  1. CREATE TABLE `users` (
  2. `id` int(11) NOT NULL AUTO_INCREMENT,
  3. `imie` varchar(20) collate utf8_polish_ci NOT NULL,
  4. `nazwisko` varchar(20) collate utf8_polish_ci NOT NULL,
  5. `haslo` varchar(50) collate utf8_polish_ci NOT NULL,
  6. PRIMARY KEY (`id`)
modern-web
Poczekaj, zauważyłem mój błąd...
Nie tak:
  1. $zapytanie = mysql_query("SELECT `id` FROM `users` WHERE `imie` = '$imie' AND `nazwisko` = '$nazwisko' AND `password` = '$password'") or die("Wystąpił błąd");

tylko tak:
  1. $temp = mysql_query("SELECT `id` FROM `users` WHERE `imie` = '$imie' AND `nazwisko` = '$nazwisko' AND `password` = '$password'") or die("Wystąpił błąd");


A jakbyś spróbował bez hashowania...? Wprowadź do bazy danych zwykły tekst i usuń ze skryptu sha1(). Zobaczymy, czy jest to źródło naszego problemu.
Fixus
IMO wyrzuć sobie na ekran czy do logów (jak Ci wygodniej) zawartość tablicy $_POST oraz zapytanie po podstawieniu danych. Zakładam, że czegoś Ci nie przekazuje i masz braki w zapytaniu
vermis
W bazie masz 'haslo' a w zapytaniu 'password'
michal_s
Dzieki vermis. Taka głupota a wszystko się sypie. Już działa. Przydatny taki świeży rzut okiem snitch.gif . Dzięki wielkie.
modern-web
Kurde; ale ja jestem spostrzegawczy ^^
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.