Aide sur le fonctionnement de header( )

Fermé
Julien - 30 août 2002 à 10:26
 Julien - 30 août 2002 à 15:19
Salut,

Voilà, j'ai besoin d'utiliser la fonction header d'après la faq. En effet, j'ai besoin de stocker une variable a l'aide de setcookie. Alors, dans le but de comprendre le fonctionnement de setcookie, j'ai fait une page de test de ce type:
<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<?php
setcookie("TestCookie","Valeur de test"); /*ligne 9*/
setcookie("TestCookie",$value,time()+3600); /* expire dans une heure */
setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1);
?>
<body>
<?php
echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];
?>

</body>
</html>


J'obtiens les messages d'erreur :

Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\accueil_client\test.php:8) in c:\program files\easyphp\www\accueil_client\test.php on line 9

Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\accueil_client\test.php:8) in c:\program files\easyphp\www\accueil_client\test.php on line 10

Warning: Cannot add header information - headers already sent by (output started at c:\program files\easyphp\www\accueil_client\test.php:8) in c:\program files\easyphp\www\accueil_client\test.php on line 11

Donc je veux rajouter la fonction header avant la premiere balise html, mais voila le hic!
Que dois je mettre en argument de cette fonction?
Je ne veux pas faire de redirection, mais il faut que j'utilise cette fonction!!!

Pourriez vous m'aider ??

Merci
A voir également:

2 réponses

Utilisateur anonyme
30 août 2002 à 10:41
Salut,
Je suis pas un pro, mais la, c'est facile...
Ton setcookie doit se trouver avant toute balise HTML ! C'est la regle ! C'est pour ca que ca s'appelle Header.
Donc ta page devrait avoir cette tronche :


<?php
setcookie("TestCookie","Valeur de test"); /*ligne 9*/
setcookie("TestCookie",$value,time()+3600); /* expire dans une heure */
setcookie("TestCookie",$value,time()+3600,"/~rasmus/",".utoronto.ca",1);
?>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body>
<?php
echo $TestCookie;
echo $HTTP_COOKIE_VARS["TestCookie"];
?>

</body>
</html>

En ce qui concerne ce que tu veux passer en parametre, et bien tout dépend ! Pour ma part, je fais saisir à l'utilisateur un login et un mot de passe par exemple, que je passe en parametre vers la page de traitement. Ensuite, je colle dans un premier cookie le login, et dans un deuxieme le mot de passe (crypté).
Je sais pas si ca répond à ta question... Mais n'hesite pas à reposer des questions !

Kalamit,
Je ponce donc j'essuie
0
Merci beaucoup pour ton aide et je voudrai un renisgnement supplémentaire: en fait, quand je veux prendre les informations stockées dans le cookie, je le fais comment?
Merci d'avance

Attends, infos supplémentaire:
avec ce code source, aucun cookie n'est créé...
aurais tu un exemple pour que je comprenne mieux comment tout cela marche ? Je n'ai encore rien trouvé qui me convenait...
Merci
0
Utilisateur anonyme > Julien
30 août 2002 à 13:21
Alors. C'est pas compliqué.
La syntaxe est la suivante : setcookie("NOMDUCOOKIE",valeurducookie,durée)
Ceci va créer un cookie. Pour lire le cookie, il te faudra, avant toute balise HTML, appeller la variable $NOMDUCOOKIE qui contiendra en fait "valeurducookie".
Je sais pas si je suis tres clair... :-)
Je te conseille d'aller voir l'url que je vais te donner, tu vas comprendre tout de suite. http://phpdebutant.com/article40.php
Si tu as des questions, quelque chose que tu ne comprends dans ce cours, et ben reviens ici !
A+, bon courage...

Kalamit,
Je ponce donc j'essuie
0
Ok, alors quand j'ai testé la page que tu m'as aidé a rectifier, il n'affiche rien à l'écran et mm qd je recharge la page avec F5, ou en relancant carrément la page php, le cookie est introuvable et n'a donc pas été créé...
En ce moment, je regarde un tutorial à l'@: http://www.phpinfo.net/?p=articles&rub=sessions
Il est très bien fait et j'espere ke j'arriverai a faire ce que je veux avec çà..
Je te tiens au courant.
Merci en tout cas de ton aide
0
Utilisateur anonyme > Julien
30 août 2002 à 14:35
Hep ! La page que je t'ai aidé à corriger, n'affiche et ne reprends rien !!! Cela crée juste 3 cookies. Va voir dans le Temp Internet Files, ou dossier Cookies. Tu verras un truc du style Julien@localhost[3], qui contiendra 3 cookies !
Pour reprendre la valeur du cookie, il te faut juste l'appeller, avec ton ex : echo $TestCookie;. Mais la ca va pas car tes 3 cookies porte le meme nom, ce qui fait qu'en définitive le dernier annule les deux autres ! Bon je vais pas te noyer, le tutoriel que tu lis à l'air pas mal.

Kalamit,
Je ponce donc j'essuie
0
Utilisateur anonyme > Julien
30 août 2002 à 15:10
Par contre, j'avais pas vu... C'est des sessions et plus une gestion simple de cookies...
En plus c'est du php4, m'enfin, ca ca dépend de ce que tu fais.

Kalamit,
Je ponce donc j'essuie
0
jisisv Messages postés 3645 Date d'inscription dimanche 18 mars 2001 Statut Modérateur Dernière intervention 15 janvier 2017 934
30 août 2002 à 11:54
C'est assez classique comme erreur.
Les headers et cookies doivent être insérés avant tout donnée
susceptible d'être envoyée dans le flux http.
Veille donc aussi à ce qu'il n'y ait pas de ligne vide avant ton code PHP!
Johan Daine

The software said "Requires Windows98, Win2000, or better
So I installed Unix.
0