Page 1 sur 1

Erreur php avec session

Posté : 14 févr. 2007, 18:21
par bunk
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

Posté : 14 févr. 2007, 18:30
par Ajoloca
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.

Posté : 14 févr. 2007, 18:36
par bunk
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.

Posté : 14 févr. 2007, 18:38
par Ajoloca
Re,

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

Toutes doivent commencer...

Posté : 14 févr. 2007, 18:41
par bunk
oui, oui, elles commencent toutes par mon 2eme code.

Posté : 14 févr. 2007, 18:46
par Ajoloca
Ton code commence par session_name() et non pas par session_start().

Posté : 14 févr. 2007, 18:55
par bunk
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.

Posté : 14 févr. 2007, 19:02
par Ajoloca
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.

Posté : 14 févr. 2007, 19:06
par bunk
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()."

Posté : 14 févr. 2007, 19:13
par Ajoloca
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.