Aide sur le fonctionnement de header( )

Julien -  
 Julien -
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

2 réponses

  1. kalamit
     
    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
    1. Julien
       
      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
    2. kalamit > Julien
       
      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
    3. Julien
       
      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
    4. kalamit > Julien
       
      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
    5. kalamit > Julien
       
      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
  2. jisisv Messages postés 3678 Statut Modérateur 936
     
    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