Précédent   Forum des professionnels en informatique > PHP > Langage > Formulaires
Formulaires Forum d'entraide sur les formulaires avec PHP. Avant de poster -> FAQ formulaires, Cours de formulaires et Sources de formulaires
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 10h37   #1
Candidat au titre de Membre du Club
 
Inscription : août 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 16
Points : 13
Points : 13
Par défaut Problème de récupération de cookie

Bonjour,

je fait actuellement face à un problème de cookie dans mon script PHP d'inscription a une newsletter.

Je possède trois pages php :

1ere étape : La page index.php > Demande a l'utilisateur son mail, et des infos comme sa société, son nom... Via un formulaire.

2eme étape : La page index_post.php > Traite les données envoyées en POST par le formulaire, créé un cookie pour chaque information (email, nom, societe, statut, secteur).
Un message indiquant que tout s'est bien déroulé s'affiche et envoie un mail de confirmation avec un lien sous la forme http://monsite.fr/newsletter/inscrip...onmail@mail.fr

3eme étape : La page inscription.php > Récupère l'adresse email via un GET, récupère les infos du client (nom société statut secteur) dans les cookies du même nom et les assigne à des variables afin de les insérer dans la BDD MySQL.


Le problème survient au niveau de l'étape 3. J'ai un beau
Citation:
"Notice: Undefined variable: secteur in /www/newsletter/inscription.php on line 21"
Notice: Undefined variable: nom in /www/newsletter/inscription.php on line 21"
Notice: Undefined variable: statut in /www/newsletter/inscription.php on line 21"
Notice: Undefined variable: societe in /www/newsletter/inscription.php on line 21"
Pourtant, lorsque je regarde mes cookies dans mon navigateur, ils sont bien tous présents :



Ils ont bien les valeurs escomptés.

Le code que j'utilise pour assigner les valeurs des cookies aux variables est :
Code :
$secteur = $_COOKIE['secteur'];
J'ai essayé avec isset :
Code :
1
2
if (isset( $_COOKIE['nom']))
			{	$nom = $_COOKIE['nom']; } else { echo "marchera pas"; }
Cela m'écrit "marchera pas", le cookie n’existe donc pas pour le navigateur...

J'ai également essayé avec un système de session, mais rien n'y fait.
On dirait que je change de nom de domaine (comme vous pouvez le voir sur mon screen, opera divise mon site en deux parties comme si les noms de domaines n'étaient pas les mêmes... C'est peut-être pour ça qu'ils ne sont pas accessibles. Pourtant toutes les pages on le même dossier racine sur le serveur et donc le même nom de domaine logiquement ...

PS : Je viens de tester de créer une page php ne contenant seulement ceci :
Code :
1
2
<?php
echo $_COOKIE['secteur'];?>
Je l'ai mise dans le même dossier racine que les autres, et le cookie affiche bien son contenu ... Ce qui prouve que mes cookies sont bien faits...

Dans ma page index_post.php, les cookies sont créés de cette façon :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
	<?php
 
	$_POST['nom'] = $nom;
	$_POST['secteur'] = $secteur;
	$_POST['statut'] = $statut;
	$_POST['societe'] = $societe;
	$_POST['email'] = $email;
 
	setcookie('nom', $nom, time()+2005);
	setcookie('secteur', $secteur, time()+2005);
	setcookie('statut', $statut, time()+2005);
	setcookie('societe', $societe, time()+2005);
	setcookie('email', $email, time()+2005);
	?>
Help


Merci d'avance à ceux qui auront pris le temps de me lire.


Yannis.
gogetenk est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 11h34   #2
Candidat au titre de Membre du Club
 
Inscription : août 2011
Messages : 16
Détails du profil
Informations forums :
Inscription : août 2011
Messages : 16
Points : 13
Points : 13
Problème résolu, il fallait que je spécifie au cookie d'être dispo sur tout le serveur et non pas seulement au sous domaine www :

Code :
setcookie('nom', $nom, (time()+2005), '/', '.equipefrancedouane.fr');
au lieu de

Code :
setcookie('nom', $nom, (time()+2005));
gogetenk est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h28.


 
 
 
 
Partenaires

Hébergement Web