Pagina 1 din 1

refresh sterge sesiunea

Scris: Vin Noi 19, 2004 12:12 am
de _5pId3r_
Am creat un script register.php care introduce niste date in bdd mysql . Acest script seteaza ca variabile de sesiune username si password: $_SESSION['username'] = $_POST['username'] si idem pentru parola.
Dupa ce sunt setate si totul este ok folosesc meta refresh sa ma intoarca in index.php care are apelat <? session_start(); ?>.
Tot in index am o fereastara unde vreau sa apara login.php daca nu este setata variabila sesiune username $_SESSION['username'] si logout.php daca este setata:
<?
if (!empty($_SESSION['username'])) {
require 'logout.php';
} else {
require 'login.php';
}
Problema este ca dupa ce setez variabilele sesiune in register.php si ma intorc in index.php ele raman dar daca dar refresh ele dispar.
De ce se intampla asta.
Vreau sa ramana setate variabilele sesiune chiar daca dau refresh si sa mearga codul de mai sus .
Multumesc anticipat.

refresh sterge sesiunea

Scris: Vin Noi 19, 2004 9:17 am
de dducu
Problema ar disparea daca in loc de variabile de sesiune ai folosi niste cookie-uri de sesiune (de ex. setcookie('username') - atentie un cookie trebuie setat inaintea oricarui tag html - mai multe detalii la http://us2.php.net/manual/ro/function.setcookie.php), apoi schimbi in fisierul index.php de care ziceai astfel:

<?
//daca ai setat cookie iti apare 'logout.php'
if (isset($_COOKIE['username'])) {
require 'logout.php';
} else {
require 'login.php';
}
?>
Mie unul imi merge asa.

Voie bună!

Scris: Vin Noi 19, 2004 11:00 am
de aurelian
Cred ca ar trebui sa ai session_start() si in register.php si in index.php si cam in concluzie peste tot pe unde vrei folosesti variabilele de sesiune.

Scris: Vin Noi 19, 2004 11:26 am
de ExcalIbvr
aurelian are dreptate. Prima linie din codul paginii TREBUIE sa fie session_start() daca lucrezi cu sesiuni. Astfel iti mentii activa sesiunea.

Cookies sunt o alternativa nerecomandata.

Scris: Vin Noi 19, 2004 3:36 pm
de _5pId3r_
session_start() este apelat peste tot si in index.php si in register.php , este apelat mai peste tot.
tot nu merge
Nu stiu daca are vreo legatura: in register.php asa formez variabilele de sesiune:
$_SESSION['username']=$_POST['username'];
$_SESSION['password']=$_POST['password'];

Register globals este off si folosesc linux. Am testat pe conqueror si pe netscape ca cu cumva sa fie de la browser.

Chiar nu stiu ce sa ii fac.
Pe net nu am gasit nimic.
merci

Scris: Vin Noi 19, 2004 5:15 pm
de un_guru
hai sa analizam codul tau:
if (!empty($_SESSION['username'])) // adica daca utilizatorul e inregistrat
require('logout.php'); // il poftim afara
de ce te mai mira?

Scris: Sâm Noi 20, 2004 12:25 am
de _5pId3r_
logout.php arata asa:

<?
session_destroy();
?>
<form action="<?$PHP_SELF?>" method="POST" name="submit">
<input type="submit" name="submit" value="Logout">
</form>


Ai dreptate .
Am crezut ca este apelata functia aia doar daca se apasa apasa butonul.
multumesc

Scris: Sâm Noi 20, 2004 12:27 am
de _5pId3r_
dar daca asa cum am incercat nu merge cum fac ca atunci cand se apasa butonul din logout.php sa fie stearsa sesiunea . sa se reseteze?

Scris: Sâm Noi 20, 2004 1:55 am
de un_guru
[php]if(isset($_POST['logout']) && $_POST['logout'] == 'logout') {
$_SESSION = array();
/* asta goleste sesiunea */
}
?>
<form ...
<input type=submit name=logout value=logout>[/php]

Scris: Sâm Noi 20, 2004 1:57 am
de _5pId3r_
multumesc