Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] zapamiętanie użytkownika który się zalogował
Forum PHP.pl > Forum > Przedszkole
Lejto
Jak zrobić chyba za pomocą cookie.
User loguje się wszystko jest ok.
Po opuszczeniu strony nie wylogowywuje się.
Po jakimś czasie wchodzi na strone i nie musi się jeszcze raz logowac bo go zapamiętało.

Szukałem w googlach żeby nie bylo winksmiley.jpg
Lion_87
no jak to nie ma ?

a np: http://www.webdiary.pl/technologie+art.id+35.htm
Maxik
Jedyne co w tym artykule to do odczytania użyj
  1. <?php
  2. $_COOKIES['nazwa_cookie'];
  3. ?>
RubiX
Polecam poczytać mój wcześniejszy temat :

http://forum.php.pl/index.php?showtopic=84432

i coś o ustalaniu cookies

  1. <?php
  2. setCookies ("nazwa", "zawartosc", "czas");
  3. ?>


Później można pobierać dane z cookies :

  1. <?php
  2. if (isset($_COOKIE['nazwa'])) {
  3. echo $_COOKIE['nazwa'];
  4. }
  5. ?>


Tylko pamiętaj że jeżeli chcesz robić automatyczne logowanie za pomocą cookie to zawartość ciasteczka musi być bezpieczna niewpisuj tam zwykłego loginu albo hasła bo każdy może zmieniać zawartość ciasteczka dlatego poczytaj mój poprzedni temat.
Lejto
nie wiem czy dobrze zrobiłem
po zamknięciu przeglądarki i po ponownym otwarciu już nie zapamięta
@RubiX możesz pokazać swój skrypt?
tylko w polu text przy logowaniu mam logon i haslo ale to już wcześniej miałem

poszukałe w necie jeszcze i wykombinowałem to:
  1. <?php
  2. $user = $_POST['user'];
  3. $haslo = $_POST['haslo'];
  4. $data = date('d.m.Y H:i:s');
  5.  
  6. $_CONFIG['kxc'] = "a523d703f908dd69e02db64ec35d07315f4c49ab3cacad14a97304b02f2fbb09"; 
  7.  
  8.  
  9.  if(isset($_POST['user']) && isset($_POST['haslo']))
  10. {
  11.  global $_CONFIG; 
  12. if(isset($_COOKIE["dane"])) { 
  13. $dane = $_COOKIE["dane"]^$_CONFIG['kxc']; 
  14. $user = substr($dane, 0, 32); 
  15. $haslo = substr($dane, -32); 
  16. $metod = "cookies"; 
  17. } 
  18. elseif(isset($_SESSION['user']) AND isset($_SESSION['haslo'])) { 
  19. $user = $_SESSION['user']; 
  20. $haslo = $_SESSION['haslo']; 
  21. $metod = "session"; 
  22. } 
  23. elseif(isset($_POST['user']) AND isset($_POST['haslo'])) { 
  24. $user = md5(strtolower($_POST['user'])); 
  25. $haslo = md5($_POST['haslo']); 
  26. $metod = "post"; 
  27. } 
  28.  
  29. // jeżeli użytkownik właśnie podjął próbę zalogowania
  30.  
  31.  
  32. $prawid_uzyt = $_POST['prawid_uzyt'];
  33. if(isset($metod)) { 
  34. $zapytanie = 'select * from $tabela ' ."where user='$user' "." and haslo=sha1('$haslo')";
  35. $wynik = mysql_query($zapytanie) or die("Nie mozna się połączyć z MySQL");
  36. if($rows = mysql_num_rows($wynik) > 0)
  37. {
  38. // jeżeli dane są w bazie zarejestrowanie identyfikatora użytkownika
  39. $_SESSION['prawid_uzyt'] = $user;
  40.  
  41. }
  42.  if($metod <> "session") { 
  43. $wiersz = mysql_fetch_array($wynik); 
  44. $_SESSION['user'] = $wiersz['user']; 
  45. $_SESSION['haslo'] = $wiersz['haslo']; 
  46.  /* Jeśli dane pochodzą z formularz i dodatkowo gość poprosił o zapamiętanie danyc
    h na przyszłość to dodatkowo umieszczamy potrzebne (zaszyfrowane) dane w cisteczkach */
     
  47.  if($metod == "post" AND isset($_POST['pamietaj']) AND $_POST['pamietaj'] == "ok") { 
  48.  $dane = ($user.$haslo)^$_CONFIG['kxc']; 
  49.  setcookie ("dane", $dane,time()+3600*24*365); /* straci ważnosc za rok */ 
  50.  } 
  51. } 
  52.  
  53. }
  54. }
  55. ?>

i kod formularza (nie znajduje się w tym samym pliku co skrypt logujący
  1. <?php $_CONFIG['kxc'] = "a523d703f908dd69e02db64ec35d07315f4c49ab3cacad14a97304b02f2fbb09"; // to chyba jest bez sensu
  2.  
  3.  
  4. global $_CONFIG; // to chyba jest bez sensu
  5.  
  6. ?>
  7.  
  8. <form method=post action="?co=newmembers<?echo $to?>">
  9. <tr>
  10. <td colspan=2></td>
  11. <tr>
  12. <input type="hidden" name="logowanie" value="k">
  13. <td><font size=2px>User:</fotn></td>
  14. <td><input size=10 type=text name=user></td></tr>
  15. <tr>
  16. <td><font size=2px>Hasło:</font></td>
  17. <td><input size=10 type=password name=haslo></td></tr>
  18. <tr>
  19. <td colspan=2 align=center>
  20. <input type="checkbox" name="pamietaj" value="ok"> - Zapamiętaj mnie!<br>
  21. <input type=submit value="Loguj"></td></tr>
  22.  
  23. </table></table></form>

tylko że znowu po zamknięciu przeglądarki i ponownym otworzeniu jej i strony trzeba sie jeszcze raz logować
potreb
Ten przykład na pewno działa, o ile wiem można go znaleźć tu: http://www.strefaphp.net/artykul36.html jakbyś dobrze go przekopiował to zapewne by zadziałało, druga sprawa jak testujesz skrypt sprawdzaj czy został wysłany cookie z danymi i czy nie ma błędów, 2 podczas wysyłania danych jest napisane żeby do zmiennych dodać addslashes
Lejto
skopiowałem jeszcze raz kod ze strony nie odkrawając nic swojego i nawet nie mogę się zalogować
w moim projekcie jest wszystko ok dane są zaszyfrowane w cookie tylko mam problem chyba z sesją bo jak juz wcześniej wspomniałem jeśli user się zaloguje i potem zamknie przeglądarkę i otworzy ją i stronę to jeszcze raz musi się logować a powinien już być zalogowany
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.