Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]zapamiętywanie poprzez ciastka
Forum PHP.pl > Forum > Przedszkole
Majzel
Poniższy kod php powinien mi zapamiętywać użytkownika przez godzinę, jednak tak sie nie dzieje, za każdym razem muszę wpisywać dane a chciałbym zeby mnie automatycznie logowało, skrypt prosty, chcę tylko zrozumieć jak to zrobić.
  1. <?php
  2. if ($_COOKIE[$login]==true) {
  3.    echo 'ZALOGOWANY';
  4.    exit;
  5.    }
  6. if (empty($_POST['submit'])) {
  7.    ?>
  8. <form action='muli.php' method='post'>
  9. <table><TR><td>
  10. <p>Login: </p></td><TD><input type='text' name='login' value='' class='input2'/></td></tr>
  11. <TR><td><P>Hasło:</p>
  12. </td><TD><input type='password' name='haslo' value='' class='input2'/></td></tr>
  13. <TR><td></td><TD><input type='submit' name='submit' value='Zaloguj' class='input2'/></td></tr></table>
  14.  
  15.  
  16. </form></p>
  17. <?php
  18. }
  19. else {
  20. $login = $_POST['login'];
  21. $haslo = $_POST['haslo'];
  22. if ($login == 'tom' && $haslo == 'tom') {
  23. if (!$_COOKIE[$login]) {
  24. setcookie($login, 'wojownik', time()+3600);
  25. echo 'Zostałeś zapamiętany';
  26. }
  27. }
  28.  }
  29. ?>

Proszę o pomoc
-jarek04-
Pomijając fakt iż nie jest to najbezpieczniejszy sposób logowania użytkownika, każdy może spreparować zapytanie i przesłać takie ciasteczko uzyskując dostęp do twojej strony.
To błąd zrobiłeś z setcookie który ma taką składnie
  1. <?php
  2. setcookie  ( string $name  [, string $value  [, int $expire  [, string $path  [, string $domain  [, bool $secure  [, bool $httponly  ]]]]]] )
  3. ?>

w twoim kodzie zapisujesz ciasteczko pod nazwą tom a następnie próbujesz je odczytać nie znając tej nazwy.
Zmieć kod tak i powinno zadziałać
  1. <?php
  2. if ($_COOKIE['login']==true) {
  3.   echo 'ZALOGOWANY jako '.$_COOKIE['login'] ;
  4.   exit;
  5.   }
  6. if (empty($_POST['submit'])) {
  7.   ?>
  8. <form action='f.php' method='post'>
  9. <table><TR><td>
  10. <p>Login: </p></td><TD><input type='text' name='login' value='' class='input2'/></td></tr>
  11. <TR><td><P>Hasło:</p>
  12. </td><TD><input type='password' name='haslo' value='' class='input2'/></td></tr>
  13. <TR><td></td><TD><input type='submit' name='submit' value='Zaloguj' class='input2'/></td></tr></table>
  14.  
  15.  
  16. </form></p>
  17. <?php
  18. }
  19. else {
  20. $login = $_POST['login'];
  21. $haslo = $_POST['haslo'];
  22. if ($login == 'tom' && $haslo == 'tom') {
  23. if (!$_COOKIE['login']) {
  24. setcookie('login', $login, time()+3600);
  25. echo 'Zostałeś zapamiętany';
  26. }
  27. }
  28. }
  29. ?>
Majzel
oczywiście ten skrypt nie jest zabezpieczony chciałem tylko sprawdzić jak to działa z tym automatycznym zapamiętaniem uzytkownika, dzięki za pomoc działa smile.gif
pozdrawiam.
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.