Page 1 sur 1

session_id en POST

Posté : 06 juil. 2007, 16:58
par leiopar
bonjour

Je bute sur un problème de session.
Je voudrais passer l'identifiant de session par la méthode "POST" (pas que cookie et pas d'altération d'url siouplé)

voici donc mon proto (fichier php sur "http://fvpatwds.tuxfamily.org/"):

Code : Tout sélectionner

<?PHP ini_set( 'session.use_cookies', 0 ); if (isset($_POST['SESSID']) && session_id($_POST['SESSID'])){ session_start(); print("session existante<br/>"); $_SESSION['compt']+=1; print($_SESSION['compt']."<br/>"); print('<form method="post" action="'.$_SERVER["PHP_SELF"].'">'); print('<input type="hidden" name="SESSID" VALUE="'.session_id().'">'); print('<input type="submit" name="upload" class="lien" value="continuer"></form>'); }else{ session_start(); $_SESSION['compt']=0; print('<form method="post" action="'.$_SERVER["PHP_SELF"].'">'); print('<input type="hidden" name="SESSID" VALUE="'.session_id().'">'); print('<input type="submit" name="upload" class="lien" value="creer"></form>'); } print(session_id()); ?>
Ce que j'atent de ce bout de code c'est qu'il se comporte comme un compteur.
Le fichier session ce créer bien dans le répertoires "TMP", il est bien créer avec une valeur "compt" mais l'incrémentassions ne marche pas !
Pourtant l'id de la session et bien transmise... là je sèche !

Des idées ???

Posté : 06 juil. 2007, 18:13
par Sékiltoyai
Dans les 2 cas de ton if, tu fais un session_start(). Fais donc un session_start() plutôt au début de ton script (genre juste après le ini_set()....)

Posté : 06 juil. 2007, 19:33
par Invité
Avec le "session_start()" avant le "session_id($_POST['SESSID'])" les fichier sess_... se multipli comme des lapins et "$_SESSION['compt']" n'est toujour pas incrémenté!(en fait ca créer même une érreur)
<?PHP
ini_set( 'session.use_cookies', 0 );
session_start();
if (isset($_POST['SESSID']) && session_id($_POST['SESSID'])){
	//session_start();
	print("session existante<br/>");
	$_SESSION['compt']+=1;
	print($_SESSION['compt']."<br/>");
	print('<form method="post" action="'.$_SERVER["PHP_SELF"].'">');
	print('<input type="hidden" name="SESSID" VALUE="'.session_id().'">');
	print('<input type="submit" name="upload" class="lien" value="continuer"></form>');
}else{
	//session_start();
	$_SESSION['compt']=0;
	print('<form method="post" action="'.$_SERVER["PHP_SELF"].'">');
	print('<input type="hidden" name="SESSID" VALUE="'.session_id().'">');
	print('<input type="submit" name="upload" class="lien" value="creer"></form>');
}
print(session_name());

?>

Posté : 09 juil. 2007, 08:53
par leiopar
bon... en sortant le "session_id" de la condition de départ, tout rentre dans l'ordre :
<?PHP
ini_set( 'session.use_cookies', 0 );
if (isset($_POST['SESSID'])){
	session_id($_POST['SESSID']);
	session_start();
	print("session existante<br/>");
	$_SESSION['compt']+=1;
	print($_SESSION['compt']."<br/>");
	print('<form method="post" action="'.$_SERVER["PHP_SELF"].'">');
	print('<input type="hidden" name="SESSID" VALUE="'.session_id().'">');
	print('<input type="submit" name="upload" class="lien" value="continuer"></form>');
}else{
	session_start();
	$_SESSION['compt']=0;
	print('<form method="post" action="'.$_SERVER["PHP_SELF"].'">');
	print('<input type="hidden" name="SESSID" VALUE="'.session_id().'">');
	print('<input type="submit" name="upload" class="lien" value="creer"></form>');
}
print(session_id());
?>
Je vais donc tester l'existence de la session de façon diférante (pour savoir si elle n'a pas expiré)

Merci pour ces idées. ;)