Cookie de session - besoin de méthode

cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 14 mai 2006 à 16:02
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 - 14 mai 2006 à 18:47
bonjour,

voila, j'ai un soucis, je doit creer et utiliser un cookie de session sur mon site, j'ai regardé des sources sur phpCS mais impossible d'en faire marcher une seule, vraiment j'y comprends rien a ces cookies, est-ce que qqun pourrait m'expliquer un peu la théorie sur les cookies et peut etre m'aiguiller vers un bon tuto ou un bon code?

pour le moment ce que j'ai réussi a faire, et qui marche pas, lol c'est :

dans mon fichir login, a la connection du client :

$pseudo = $HTTP_POST_VARS['pseudo'];

setcookie("cookie_wx","$pseudo", time()+365*24*3600);



et aprés dans mon index :

<?php
$nom = $HTTP_COOKIE_VARS['cookie_wx'];
?>

mais bon, je me demande comment ca pêut garder la session un tel code !Et oui, ce que je veux c'estr juste que la session ne s'arrete pas a la fermeture du navigateur.

merci pour votre aide.

@+;
satellite34

9 réponses

audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
14 mai 2006 à 17:26
Essayes ce script cela te permettras d'apprendre à utiliser les cookies
"<?php
if (empty($_COOKIE['cookie_wx']) AND empty($_POST['pseudo'])) echo '<form method=\'post\' name=\'formulaire\' action=\'',$_SERVER['PHP_SELF'],'\'>Ecrire ici la variable à passer dans le Cookie :
';
elseif (!empty($_POST['pseudo']) AND empty($_COOKIE['cookie_wx'])) {
setcookie('cookie_wx',$_POST['pseudo'], time()+365*24*3600);
header('Location: '.$_SERVER['PHP_SELF']);
}
elseif (!empty($_COOKIE['cookie_wx'])) echo 'Le cookie contient : ',$_COOKIE['cookie_wx'];
?>"
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
14 mai 2006 à 17:42
salut,

erf, je comprends pas gd chose a ton script, pas une explication, j'en fait quoi, je le met ou , c'est quoi ce $_POST['pseudo'], en gros, j'ai rien capté, j' ai deja un formulaire de login, biensur, ce que je veux c'est que l'user ne perde pas la session en sortie de navigateur, donc il faut peut etre le passe non??

Enfin, j'y comprends pas plus, lol./ désolé d'etre quiche a ce point.

précision : php c'est pas ma tasse de thé, moi je viens de c++, donc si tu pouvais joindre une explication , ce serait simpa, sinon, ben je vais quand meme voir ce que je peu faire avec ca meme si a premiere vue c'est du chinois.
Merci;

@+;
satellite34
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
14 mai 2006 à 17:53
Salut,
Ce code est un exemple qui te montre comment utiliser les cookies en php.
Pour ton problème, je pense que c'est du à :
-> "$HTTP_POST_VARS['pseudo']" à remplacer par "$_POST['pseudo']" et pareil pour "$HTTP_COOKIE_VARS" à remplacer par "$_COOKIE"
("$HTTP_POST_VARS" s'utilisait en PHP3)
-> "setcookie("cookie_wx","$pseudo", time()+365*24*3600);" que tu peux remplacer par "setcookie('cookie_wx',$_POST['pseudo'], time()+365*24*3600);"
(Pourquoi creer une variable supplémentaire si tu peux directement utiliser l'originale ? A moins que tu fais des modifications sur cette variable (comme un découpage etc...))
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
14 mai 2006 à 17:59
oui,

donc j'ai testé, j'ai bien un cookie qui s'ecrit mais le truk, c'est que le fichier se nomme comme le repertoire du script, bizzare, et quand je fais :

if(!empty($_COOKIE['cookie_wx']))
echo 'Le cookie contient : ',$_COOKIE['cookie_wx'];

rien ne s'affiche, pourtant mon cookie contien :


cookie_wx


mon_pseudo


site/le repertoire du script


1536


594578176


29857344


3902901568


29783917


*

zarbi non? je dois zapper un truk, a la connection, je fais :

setcookie('cookie_wx',$_POST['pseudo'], time()+365*24*3600);

c'est tout ce qui a a faire?

merci pour ton aide.


@+;
satellite34
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
14 mai 2006 à 18:08
bon, en fait

j'ai bien

le cookie contient : satellite34

mais uniquement sur le fichier de mon login, si je met le script de lecture du cookie sur une autre page ca ne marche plus, t'as une idée de purquoi?

J'utilise les RewriteRule, c'est pas ca le pb?

@+;
satellite34
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
14 mai 2006 à 18:12
C'est bizarre car chez moi en local tout fonctionne ... As tu essayé un autre navigateur ?
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
14 mai 2006 à 18:17
ben je suis sou ie et firefox donc bon, la n'est pas le pb, par contre je viens de lire que setcookie doit etre placé avant les balises html, cependant mon script de login ne contient pas de balises html et est inclu a mon index qui lui en contient mais cet include est bien sur dans le body !

n'est ce pas ca mon pb? et comment contourner ca.



@+;
satellite34
0
audayls Messages postés 373 Date d'inscription samedi 9 juillet 2005 Statut Membre Dernière intervention 11 août 2008
14 mai 2006 à 18:32
"setcookie" doit être placé avant un renvoie de texte (par un "echo" ou un "print") Si ton fichier index utilise "setcookie" tu peux faire d'une pierre deux coup en utilisant la bufferisation de sortie : mets "ob_start('ob_gzhandler');" juste après "<?php" au début et "ob_end_flush();" à la fin juste avant "?>"
0
cs_satellite34 Messages postés 688 Date d'inscription mercredi 6 avril 2005 Statut Membre Dernière intervention 2 juin 2006 1
14 mai 2006 à 18:47
oué oué ca c'est déja fait car j'utilise moulte header, je vais regarder ca de plus prés, je dois pas etre loin de la vérité maintenant, merci pour ton aide.



@+;
satellite34
0
Rejoignez-nous