Page 1 sur 1

Cookie qui ne s'enregistre pas

Posté : 06 févr. 2006, 11:25
par lechewal
Salut !

j'aimerai monter un systeme qui retienne le nom du posteur dans un formulaire. Donc, cookie.

Apres avoir lutté pour qu'il n'affiche pas de message d'erreurs, il n'affiche maintenant rien du tout..

VOici le code :

Code : Tout sélectionner

<form action=index.php?com=p method=post>

Code : Tout sélectionner

if(isset($_GET['com']) && $_GET['com'] == 'p') { $pseudo=$_POST["pseudo"]; include("http://***.free.fr/setcookie.php"); }

setcookie.php :

Code : Tout sélectionner

$expire = 365*24*3600; setcookie(PSEUDO, $pseudo, time()+$expire);

Posté : 06 févr. 2006, 11:44
par Hubert Roksor
Attention, tu confonds l'adresse de ton site avec le chemin d'accès de tes fichiers. "http://....." c'est pour accéder aux fichiers de l'extérieur, mais à l'intérieur du script tu fais simplement:
include('setcookie.php');
De plus, tu as une erreur dans la fonction elle-même je pense. Qu'est-ce que
PSEUDO
? Tel quel il s'agit d'une constante, si tu veux que ton cookie s'appelle PSEUDO il faut mettre le nom entre guillemets:
setcookie('PSEUDO', $pseudo, time() + 3156000);

Posté : 06 févr. 2006, 11:53
par lechewal
Je fais cet include comme ca car le fichier est à la racine et non pas dans le meme repertoire.. Sinon ca fait un message d'erreur :s

et meme avec les guillemets ca ne semble pas marcher.. :(

merci

Posté : 06 févr. 2006, 11:58
par iclo
Soyons méthodique: es-tu sûr que l'include fonctionne (essaye de mettre un echo dans le fichiersetcookie.php pour vérifier)

Les cookie présents sont stockés dans le tableau $_COOKIE, que donne un
print_r($_COOKIE);

Posté : 06 févr. 2006, 11:59
par Hubert Roksor
Dans tous les cas, même si "http://..." ne fais pas de message d'erreur il ne peut pas fonctionner comme tu le crois. Pour représenter la racine, essaie ça:
include('/setcookie.php');
En même temps, je ne me rappelle plus trop si ça marche chez Free donc tu peux aussi utiliser "../" pour dire "remonter d'un dossier". Ce n'est pas comme accéder à la racine directement mais tu parviens au même résultat. Par exemple, dans le fichier "dossier1/test.php":
include('../setcookie.php')
dans le fichier "dossier1/dossier2/test.php':
include('../../setcookie.php');
...mais au fait, c'est quoi setcookie.php ?

Posté : 06 févr. 2006, 22:05
par lechewal
(essaye de mettre un echo dans le fichiersetcookie.php pour vérifier)
C'est ok
Les cookie présents sont stockés dans le tableau $_COOKIE, que donne un
print_r($_COOKIE);

Code : Tout sélectionner

Array ( [BSUID] => 1 [KIDYMD] => #238494:FBFA#240844:FBFA#239201:FBFC#239470:FBFB#238875:FBEA#238121:FBDA#239003:FBDB#238687:FBDB#239444:FBDA#240851: FBDA#240576:FBDA#239465:FA`G#239464:FA`A#137298:FA[B#233096: FA[C#230806:FA[C#110915:FA[B#186254:FA[A#170226:FA[M#232682:FA[B#161007:FA[B#230762:FA[A#199212:FA[D#138319: FA[B#232048:FA[B#229241:FA[A#199211:FA[A#232779:FA[B#108998:FA[A#161003:FA[B#90231:FAUB#231086:FAUD#232394: FAUG#234138:FAUE#233100:FARB#235986:FARA#110922:FARC#235271:FAQA#232403:FAQA#150687:FAML#234200:FAMA#225578:FAKA#202176: FAKE#143430:FAKI#226024:FAKB#232407:FAKA#167940:FAKA#134099:FAIU#143428:FAIA#150677:FAAC#205509:EL]C#225619:ELXA#199175:ELGB#186439: EKLD#167081:EKLB#205515:EKFC#202183:EKFB#194320:EKFC#208668:EKBA#186436:EKBF#210944:EKAA#170228:EJ^B#208694:EJ]A#208712:EJ]A# 199163:EJ]N#202896:EJ]B# [WIDYMD] => #35814:FBF#20995:FA[#30555:ELG# [ASLTRG1] => 28#36#.net#850#4500#.adsl.proxad.net#82.65.167.34#fr,fr-fr;q=0.8,en-us;q=0.5,en;q=0.3#ISO-8859-1,utf-8;q=0.7,*;q=0.7#-40609#4492#4039#0#6 [FRQSTR] => 18987067x234138:5:11978|18987067|18987067|18987067|18987067 )
Dans tous les cas, même si "http://..." ne fais pas de message d'erreur il ne peut pas fonctionner comme tu le crois. Pour représenter la racine, essaie ça:
include('../../setcookie.php');
Ca doit effectivement venir de la puisque avec ceci, cela m'affiche :

Code : Tout sélectionner

Warning: Cannot modify header information - headers already sent by (output started at /var/www/free.fr/7/9/***/myblog/pages/index.php:2) in /var/www/free.fr/7/9/***/setcookie.php on line 5
Pourtant, le setcookie est la premiere fonction, et rien n'a été affiché avant (le message d'erreur est en premier sur la page)
...mais au fait, c'est quoi setcookie.php ?
 $expire = 365*24*3600;
   
   setcookie(PSEUDO, $pseudo, time()+$expire); 
merci a tous ;)

Posté : 06 févr. 2006, 22:07
par jeff
salut
j'ai pas tout lu mais ton probleme vient de la ligne2 de ton index.php

Posté : 06 févr. 2006, 22:32
par lechewal
salut
j'ai pas tout lu mais ton probleme vient de la ligne2 de ton index.php

la ligne 2 c'est <?php
;)

Posté : 06 févr. 2006, 22:40
par jeff
si la ligne2 c'est
 <?php 
ca veut dire que a la ligne tu a un espace
il faut aucune sortie avant setcookie ou session_start, meme pas un ligne vide avant les balises php

Posté : 06 févr. 2006, 22:51
par lechewal
si la ligne2 c'est
 <?php 
ca veut dire que a la ligne tu a un espace
il faut aucune sortie avant setcookie ou session_start, meme pas un ligne vide avant les balises php

Zarma !

c'etait ca !

une satanée ligne de commentaire html !!!!!


enfin bon, merci a tous !
a+