Erreur php avec session

Eléphant du PHP | 291 Messages

14 févr. 2007, 18:21

Bonjour,

Sur le site que je fais actuellement, lors de la connexion j'initialise une variable : $_SESSION['auth'] = 'TEST'

Dans mon index.php j'ai une série de ligne du type :
<?php

if(!$_SESSION['auth'] == 'TEST'){
	$_SESSION = array();
	session_destroy();
}

?>
Mais autant IE que firefox m'affiche l'erreur suivante : Undefined index: sess_auth

tant que l'utilisateur n'est pas connecté.

Je comprend qu'en fait comme la variable n'existe pas il ne comprend pas dans le cas ou le visiteur n'a pas de session. Y'a t'il un moyen de corriger cette erreur ?

D'avance merci

ViPHP
ViPHP | 1961 Messages

14 févr. 2007, 18:30

Bonjour,

Pour pouvoir utiliser les session, toutes, je dis bien toutes, tes pages doivent commencer par "session_start()".

Ce n'est qu'à la suite que tu pourras manipuler les variables de session.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 291 Messages

14 févr. 2007, 18:36

J'ai pas tout mis mais effectivement mes pages commences par :
<?php

// SESSION PHP
session_name('sess');

session_cache_limiter('sess');
$cache_limiter = session_cache_limiter();
session_cache_expire (30);
$cache_expire = session_cache_expire();

session_start();

?>
et ensuite mon autre code.

ViPHP
ViPHP | 1961 Messages

14 févr. 2007, 18:38

Re,

As-tu bien lu ce que je t'ai dit ?

Toutes doivent commencer...
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 291 Messages

14 févr. 2007, 18:41

oui, oui, elles commencent toutes par mon 2eme code.

ViPHP
ViPHP | 1961 Messages

14 févr. 2007, 18:46

Ton code commence par session_name() et non pas par session_start().
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 291 Messages

14 févr. 2007, 18:55

Ben en fait j'aplique la doc : php.net/session_name

sinon j'ai résolu comme ca :
<?php

if(isset($_SESSION['auth']) && (!empty($_SESSION['auth']))){

	if(!$_SESSION['auth'] == 'OK'){
		$_SESSION = array();
		session_destroy();
	}

}

?>
Ca fonctionne.

ViPHP
ViPHP | 1961 Messages

14 févr. 2007, 19:02

Re,

Si je lits bien la doc de la page que tu donnes en lien je vois
session_name — Lit et/ou modifie le nom de la session
ce qui pour moi veut dire que la session doit exister, non ???
sinon comment pourrait-il la lire ou la modifier ???
Suit mon conseil et tu ne te porteras que mieux.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 291 Messages

14 févr. 2007, 19:06

je comprend bien ce que tu dis, mais comment il va pouvoir démarrer la session du non que je veux ou la lire/modifier si il ne connait pas ce fameux nom ?

de plus cette même doc dis aussi : -"Il faut donc utiliser session_name() au début de chaque script, et notamment avant session_start() ou session_register()."

ViPHP
ViPHP | 1961 Messages

14 févr. 2007, 19:13

Re,
Je l'ai toujours fait dans l'autre sens, et jamais de PB.

D'un autre coté il est déconseillé d'utiliser session_register(), tu risques d'avoir des surprises sur certains serveurs.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein