refresh sterge sesiunea

Secţiune dedicată începatorilor.

Moderatori: Moderatori, Start Moderator

_5pId3r_
Junior Member
Mesaje: 40
Membru din: Dum Noi 14, 2004 11:34 pm
Contact:

refresh sterge sesiunea

Mesajde _5pId3r_ » Vin Noi 19, 2004 12:12 am

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.



Avatar utilizator
dducu
PHPRomania Supporter
Mesaje: 16
Membru din: Mie Noi 17, 2004 10:55 am
Localitate: Iasi
Contact:

refresh sterge sesiunea

Mesajde dducu » Vin Noi 19, 2004 9:17 am

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ă!
Before doing something perfect, do something perfectible!

aurelian
Senior Member
Mesaje: 833
Membru din: Dum Iun 01, 2003 7:54 pm
Localitate: Bucuresti
Contact:

Mesajde aurelian » Vin Noi 19, 2004 11:00 am

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.

Avatar utilizator
ExcalIbvr
Senior Member
Mesaje: 1105
Membru din: Dum Mai 02, 2004 10:56 pm
Localitate: Oradea
Contact:

Mesajde ExcalIbvr » Vin Noi 19, 2004 11:26 am

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.



_5pId3r_
Junior Member
Mesaje: 40
Membru din: Dum Noi 14, 2004 11:34 pm
Contact:

Mesajde _5pId3r_ » Vin Noi 19, 2004 3:36 pm

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

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Vin Noi 19, 2004 5:15 pm

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?

_5pId3r_
Junior Member
Mesaje: 40
Membru din: Dum Noi 14, 2004 11:34 pm
Contact:

Mesajde _5pId3r_ » Sâm Noi 20, 2004 12:25 am

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

_5pId3r_
Junior Member
Mesaje: 40
Membru din: Dum Noi 14, 2004 11:34 pm
Contact:

Mesajde _5pId3r_ » Sâm Noi 20, 2004 12:27 am

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?

un_guru
Average Member
Mesaje: 153
Membru din: Dum Iul 25, 2004 5:20 am
Localitate: Miecurea Ciuc
Contact:

Mesajde un_guru » Sâm Noi 20, 2004 1:55 am

[php]if(isset($_POST['logout']) && $_POST['logout'] == 'logout') {
$_SESSION = array();
/* asta goleste sesiunea */
}
?>
<form ...
<input type=submit name=logout value=logout>[/php]

_5pId3r_
Junior Member
Mesaje: 40
Membru din: Dum Noi 14, 2004 11:34 pm
Contact:

Mesajde _5pId3r_ » Sâm Noi 20, 2004 1:57 am

multumesc


Înapoi la “PHP Incepători”

Cine este conectat

Utilizatori ce ce navighează pe acest forum: Niciun utilizator înregistrat și 17 vizitatori