Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]Logowanie do bazy mysql - bledny skrypt
marecki75
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 3.03.2010

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


Witam. Posiadam skrypt rejestracji, ktory dziala poprawnie oraz skrypt logowania, ktory nie dziala do konca. Skrypt sprawdza najpierw czy podany login istnieje w bazie, jesli nie istnieje to nie sprawdza nawet hasla. Jesli login zostal znaleziony w bazie, wowczas sprawdza haslo, jesli sa zgodne nastepuje zalogowanie uzytkownika - tak powinien dzialac skrypt. Rzeczywiscie potrafi rozpoznac czy w bazie jest taki login jaki poda uzytkownik, ale mimo wprowadzenia poprawnego hasla nie chce mi zalogowac, skrypt stwierdza poprawnosc loginu ale nieprawidlowe haslo. Moze ktos jest w stanie odnalesc blad w moim skrypcie?

Baza:

  1. -- --------------------------------------------------------
  2. --
  3. -- Tworzymy Baze danych o nazwie BAZA
  4. -- Baza danych: `baza`
  5. --
  6. CREATE DATABASE `baza` DEFAULT CHARACTER SET utf8 COLLATE utf8_polish_ci;
  7. USE `baza`;
  8. --
  9. -- --------------------------------------------------------
  10. --
  11. -- Tworzymy tabele Która będzie Składować konta nowych urzytkowników
  12. -- Struktura tabeli dla `users`
  13. --
  14.  
  15. CREATE TABLE `users` (
  16. `user_id` tinyint(10) UNSIGNED NOT NULL AUTO_INCREMENT,
  17. `user_name` varchar(13) collate utf8_polish_ci NOT NULL,
  18. `user_password` varchar(40) collate utf8_polish_ci NOT NULL,
  19. `user_password_short` varchar(17) collate utf8_polish_ci NOT NULL,
  20. `user_email` text collate utf8_polish_ci NOT NULL,
  21. PRIMARY KEY (`user_id`)
  22. ) ENGINE=MyISAM AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE= utf8_polish_ci AUTO_INCREMENT=3;
  23. --
  24. -- --------------------------------------------------------


Skrypt login.php

  1. <?php
  2.  
  3. // rozpoczęcie buforowania (jest to potrzebne by nie mieć błędów typu headers already sent)
  4.  
  5. // start sesji
  6.  
  7. // połączenie z mysql
  8. mysql_connect('localhost', 'root', '')
  9. or die('Nieudane polaczenie z baza danych...');
  10.  
  11. // wybór bazy danych
  12. or die('Nie udalo sie wybrac bazy danych...');
  13. mysql_query ("SET CHARACTER SET utf8");
  14. mysql_query ("SET collation_connection = utf8_polish_ci");
  15. // nagłówek
  16. echo '<h2>Logowanie</h2>';
  17.  
  18. // sprawdzamy czy user jest już zalogowany
  19. if($_SESSION['logged']) echo 'Już jestes zalogowany!';
  20. else
  21. {
  22. // tworzymy prosty formularz
  23. echo '<form action="login.php" method="POST">
  24. Nick: <br />
  25. <input type="text" name="nick"><br />
  26. Hasło: <br />
  27. <input type="password" name="pass"><br />
  28. <input type="submit" name="ok" value="Zaloguj">
  29. </form>';
  30.  
  31. // jeśli zostanie naciśnięty przycisk "Zaloguj"
  32. if(isset($_POST['ok']))
  33. {
  34. $nick = $_POST['nick'];
  35. $pass = $_POST['pass'];
  36.  
  37. // sprawdzamy czy wszystkie dane zostały podane
  38. if(empty($nick) || empty($pass)) echo 'Wpisz wszystkie pola!';
  39. // jeśli tak...
  40. else
  41. {
  42. // filtrujemy dane
  43.  
  44. // kodujemy hasło
  45. $pass = md5($pass);
  46.  
  47. // sprawdzamy czy istnieje użytkownik z takim loginem i hasłem
  48. $result = mysql_query("SELECT * FROM users WHERE user_name='$nick' AND user_password='$pass'");
  49.  
  50. // jeśli nie istnieje
  51. if(mysql_num_rows($result)==0) echo 'Niestety podałes niepoprawne dane!';
  52. // jeśli tak...
  53. else
  54. {
  55. // dodajemy wynik zapytania do tablicy
  56. $row = mysql_fetch_array($result);
  57.  
  58. // ustawianie sesji że użytkownik jest zalogowany
  59. $_SESSION['logged'] = true;
  60.  
  61. // dodawanie do sesji id użytkownika, login oraz datę rejestracji
  62. $_SESSION['id'] = $row['id'];
  63. $_SESSION['nick'] = $row['nick'];
  64. //$_SESSION['data_rejestracji'] = $row['data_rejestracji'];
  65.  
  66. // wyświetlenie komunikatu oznaczającego poprawne logowanie
  67. echo 'Zostałes poprawnie zalogowany! Możesz teraz przejsć na <a href="index.php">stronę główna</a>';
  68. }
  69. }
  70. }
  71. }
  72.  
  73. // rozłączenie z bazą danych
  74.  
  75. // koniec buforowania
  76. ?>


Prosze o pomoc w odnalezieniu bledu.
Go to the top of the page
+Quote Post

Posty w temacie


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: 21.08.2025 - 04:35