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 beauPourtant, lorsque je regarde mes cookies dans mon navigateur, ils sont bien tous présents :"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"
Ils ont bien les valeurs escomptés.
Le code que j'utilise pour assigner les valeurs des cookies aux variables est :
J'ai essayé avec isset :
Code : Sélectionner tout - Visualiser dans une fenêtre à part $secteur = $_COOKIE['secteur'];
Cela m'écrit "marchera pas", le cookie n’existe donc pas pour le navigateur...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 if (isset( $_COOKIE['nom'])) { $nom = $_COOKIE['nom']; } else { echo "marchera pas"; }
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 :
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...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <?php echo $_COOKIE['secteur'];?>
Dans ma page index_post.php, les cookies sont créés de cette façon :
Help
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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); ?>
Merci d'avance à ceux qui auront pris le temps de me lire.
Yannis.
Partager