hausner15
4.02.2008, 13:53:12
Witam mam pytanie jak w temacie.
Próbuję usuwać ciacho sesyjne
session_destroy();
ale nie usuwa on całkowicie ciastka.
Próbowałem usuwać też poprzez setcookie z czasem ujemnym ale nie działa mi to.
Proszę pomóżcie.
Lion_87
4.02.2008, 13:55:39
moze razem::
Kod
session_unset();
session_destroy();
Wieviór
4.02.2008, 13:56:20
hausner15
4.02.2008, 14:04:42
Sposób 1 to próbowałem już dawno i nic...
A sposób Wieviora jakoś mi nie działa - nie wiem czemu....
Macie może jeszcze jakieś pomysły??
Wieviór
4.02.2008, 14:10:31
Przepraszam, literówka, spróbuj teraz:
<?
?>
Musi działać ;]
hausner15
4.02.2008, 14:24:50
Hmm to co napisałeś towrzy mi ciasteczko z unixową datą rok wcześniejszą

.
Próbowałem z dodaniem pola wartość na "" ale nic to nie daje - cały czas ciasteczko sesyjne siedzi.
Jest mi to potrzebne bo chciałem do swojego skryptu logowania dodać możliwość automatycznego logowania - poprostu ciastko sesyjne miało zostawać na np. rok, ale w takim wypadku nie mogę tego zrobić bo ciastko zostanie po kliknięcu na wyloguj i nie będzie można zalogować się "normalnie".
Wieviór
4.02.2008, 14:27:01
Pokaż coś więcej kodu, u mnie jak robię to moim sposobem, to działa, więc może coś inaczej w kodzie jest.
Moment, w którym tworzysz ciastko, i jak próbujesz je usunąć.
smietek
4.02.2008, 14:57:46
Pewnie w ciachach zostają Ci jest wartości zmiennych sesyjnych.
<?php
//Przykładzik
?>
I tyle, nie ma już zmiennej.
hausner15
4.02.2008, 18:00:49
smietek usunąć zmienne z sesji umiem ale chodzi mi o usunięcie całego ciastka - wszystko się obija o czas ważności sesji. Ale może inaczej - czy da radę przestawić czas ważności sesji?? tzn przestawić ważność ciastka, np. że ktoś się zalogował, sesja trwa godzinę, przez 30minut user nic nie robił i jak kliknie gdzieś to znowy ma czas 1 godzinę - może trochę namieszałem ale chyba wiadomo o co chodzi
smietek
4.02.2008, 19:00:07
Ale czy tobie chodzi o sesje, czy o ciasteczka. Przecież sesje USUWAJĄ się od razu po zamknięciu przeglądarki (chyba, że zmienisz to w php.ini).
hausner15
4.02.2008, 19:13:08
No więc tak - chodzi mi o usunjięcie ciasteczka które tworzy sesja. Chodzi to że jak ktoś się u mnie loguje to może wybrać czy do zamknięcia przeglądarki, czy autologowanie. Przy autologowaniu jest tworzona sesja z czasem do przodu o jakiś rok, więc można to nazwać autologowaniem. Problem nastaje kiedy ktoś będzie chciał zrezygnować z tej opcji. Spróbuje on się wylogować i zalogować na nowo bez tej opcji, ale wtedy zaloguje go na tą samą sesje, która jest ważna do x czasu.
Więc musiałbym przy wylogowywaniu kompletnie usuwać sesje - razem z ciastkiem.
Kicok
5.02.2008, 09:14:39
<?php
if( isset( $_GET['session_stop'] ) ) {
echo 'Session cookie removed'; }
else
{
}
?>
<br /><br /><br /><hr />
<a href="?">Loopback</a><br /><br />
<a href="?session_stop">Session stop</a>
Sprawdź czy ID sesji zmienia się, gdy zamykasz przeglądarkę i czy się zmienia, gdy wchodzisz na ?session_stop
Jednak taki sposób autologowania nie jest najlepszy. Lepiej byłoby gdybyś podczas logowania z zaznaczonym [autologowaniem] utworzył nową sesję oraz ciasteczka z wartościami:
1) userID =
$userID2) hash =
md5( $userPASS . $salt )i przy ponownym wejściu użytkownika na stronę porównujesz informacje z ciasteczka z informacjami zapisanymi w bazie danych. Jeśli sie zgadzają to tworzysz mu nową "zwykłą" sesję i ewentualnie odświeżasz ciasteczko (żeby przedłużyć okres ważności). Jeśli się nie zgadzają - przerzucasz użytkownika do formularza z logowaniem.
hausner15
5.02.2008, 16:49:47
Kicok twój pomysł mi sie podoba i rzeczywiście powinien być lepszy. Zrobie to tak jak mówisz.
Wszystkim dzięki i 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.