session_destroy();

9 отговора 368 прегледа
#1

session_destroy();

imam link (LOGOUT) na viska stranica koito vodi kym index.html kydeto sa mi formite za logvane i natam mi pochva sesiata. v index.html predi formite imam:

session_start();
session_destroy();

no pri natiskane na 'back' i pak moga da se razhojdam po stranicite, da mi se izpylniavat query-tata kym bazata i t.n....demek ne mi e destroynata sessiata?zashto?

Отговор
в отговор на lvo #2

Re: session_destroy();

От официалното ръководство:

session_destroy() .... It does not unset any of the global variables associated with the session, or unset the session cookie.

и по-надолу:

Example 712. Destroying a session

<?php

// Initialize the session.
// If you are using session_name("something"), don't forget it now!
session_start();
// Unset all of the session variables.
session_unset();

// Finally, destroy the session.
session_destroy();

?>

Ако това не ти помогне да си разбереш грешката хвърли малко код, да го разцъкам. Под малко разбирам само нещата които касаят сесията.

__________________________________
Пътят към ада е осеян с добри намерения
Отговор
в отговор на ..:: StanProg ::.. #3

Re: session_destroy();

i sys session_unset(); sym probval, pak syshtoto, men cookie-tata me symniavat..

Отговор
в отговор на lvo #4

Re: session_destroy();

session_unset()-а е задължителен. Не пробвай с него, просто го използвай.

Забележи следното:

Файл a.php:
<?
session_start();
$a=5;
session_register("a");
print $_SESSION["a"]."<BR>";
?>
<a href="b.php">NEXT</a>

Файл b.php:
<?
session_start();
session_destroy();
if (session_is_registered("a")) print "1->".$a."<BR>";
if ( $HTTP_SESSION_VARS["a"] ) print "2->".$a."<BR>";
if ($a==5) print "3->".$a."<BR>";
?>
TEST

В този случай като заредиш a.php ще ти се създаде сесия с променлива $a.
Ако в b.php не си използвал session_unset() преди session_destroy() 2-я и 3-я if ще върнат true. Ако презаредиш всички ще върнат false. Ако извикаш session_unset() преди session_destroy() всички(if-ове) ще са false. Това може да е възможна причина, ако проверяваш по $HTTP_SESSION_VARS["променлива"] или по $променлива.

Забележи, че ако кликнеш "back" когато си в b.php и презаредиш ще се създаде нова сесия (по обясними причини). Ако пак не си виждаш грешката дай малко повече инфо. "Не работи" не е достатъчно, за когото и да е било да разбере къде е проблема.

Извинявай ако ти казвам неща които вече знаеш.

Под каква OS ти е това PHP?

__________________________________
Пътят към ада е осеян с добри намерения
Отговор
в отговор на lvo #5

Re: session_destroy();

Направи си линка да ти сочи към файл logout.php, където след това да redirect-ваш към index.html.

Отговор
в отговор на Dakota #6

Re: session_destroy();

Ти си голем мозък бе Дакота!
Напрао ша зема и аз да си напиша някоя страница на ПХП еи!
ПХП, Апах, МойЕсКюЕл .. лейм!

Отговор
в отговор на ..:: StanProg ::.. #7

Re: session_destroy();

То не е нужно да ползваш въобще session_start() be!

Отговор
в отговор на Kyky #8

Re: session_destroy();

И как тогава да създам сесия?
Само не ми казвай, че трябва да направя session.auto_start = 1 в PHP.INI файла бе.

__________________________________
Пътят към ада е осеян с добри намерения
Отговор
в отговор на ..:: StanProg ::.. #9

Re: session_destroy();

HAHA! Mnogo PHP razbirachi se sybrahte be! :)

Сигнатура ... фани ме за ... шнура!
Отговор
в отговор на u3MeT #10

Re: session_destroy();

Гениална мисъл!

Ако искаш може да се обосновеш, иначе думите ти нямат никакъв смисъл.

Аз поне се опитвам да помогна, за разлика от теб.

__________________________________
Пътят към ада е осеян с добри намерения
Отговор