Aurais-je un problème de session ?
Bonjour,
Ignorant d'où vient mon problème, je suppose que cela est en rapport avec les sessions, mais n'en suis pas vraiment persuadée...
J'utilise l'excellent panier proposé sur ce site qui fonctionne parfaitement.
Une fois le panier rempli, le client clique sur le bouton "commander" qui l'envoie sur la page "valider.php".
Cependant, mes futurs clients devant être identifiés pour valider leur commande, je mets, sur la page "valider.php' qui permet la poursuite de la commande, les quelques lignes ci-dessous :
Code:
1 2 3 4 5 6 7 8 9
| <?php
session_start();
if (!isset($_SESSION['pseudo'])) {
//si la variable de session n'existe pas
//je redirige le client vers le formulaire d'identification
header('Location: http://xxxxxxx.fr/identification.php');
//on arrête l'exécution
exit();} |
Ainsi, s'ils ne sont pas identifiés, il vont vers un formulaire "classique" se trouvant sur la page "identification.php" qui leur propose, soit de s'identifier, soit de créer un compte.
Et là, j'ai un problème : dès que l'on est sur la page "identification.php" et avant même d'entrer une quelconque donnée sur le formulaire, mon panier se retrouve vide (j'ai un rappel du contenu du panier dans mon header).
Par contre, s'ils s'étaient identifiés avant de valider leur commande et de poursuivre le processus d'achat, je n'ai aucun problème. Le panier et son contenu continuent normalement leur "voyage".
Je vous précise que j'ai testé ce site en local avec un serveur en php 5.3.6 et sur un serveur "externe" en php 5.2.14 où j'ai un autre site avec rigoureusement le même script, le site fonctionne parfaitement en local et en externe.
Le serveur sur lequel est placé le site qui me pose problème est en php 5.3.15.
L'un ou l'une de vous aurait-il déjà eu ce problème ? ou bien une idée d'où il pourrait provenir ?
Par avance, merci pour votre aide.
Cordialement,
Patricia
[PHP 5.3] Aurais-je un problème de session ? - MAINTENANT, C'EST VRAIMENT RÉSOLU
Bonjour,
Je reviens sur ce post car la solution que j'avais trouvée :
Citation:
il m'a suffi d'ôter "http://xxxxxxx.fr/" de cette ligne (et de toutes celles des redirections de mon site) et donc, d'écrire :
Code:
header('Location: identification.php');
pour que, sans autre changement, cela fonctionne... :D
n'était pas valable dans tous les cas.
En effet, si, pour aller d'une page à l'autre dans mon espace membre, ce renvoi à une identification pour les visiteurs non encore identifiés fonctionnait parfaitement, cela m'a posé problème lors du retour des données provenant de Paypal après règlement, car les données de session ne suivaient pas, une nouvelle identification du visiteur était nécessaire et une nouvelle session se créait.
C'est en cherchant pourquoi j'avais aussi ce problème avec Paypal, que j'ai fini par trouver (la hotline de Paypal n'ayant pu m'aider à solutionner le problème). En effet, ayant deux sites différents dont les paiements se font sur le même compte Paypal, j'ai dû indiquer une ligne de retour vers ma page d'accusé réception de paiement, dans le formulaire d'envoi à Paypal.
J'ai utilisé le même script de formulaire que celui de mon premier site, qui fonctionnait sans problème en php 5.2, et l'ai adapté pour mon second site qui lui est en php 5.3, et cela ne marchait pas.
J'ai fini par trouver la bonne solution que je vous donne, si cela peut servir à quelqu'un.
Dans le formulaire d'envoi à Paypal, au lieu de faire ainsi :
Code:
<input type="hidden" name="return" value="http://nomdusite/membres/paiement_ok.php" >
j'écrivais :
Code:
<input type="hidden" name="return" value="http://www.nomdusite/membres/paiement_ok.php" >
tout fonctionne parfaitement.
Ce sont ces "www." manquants qui étaient la cause de tous mes problèmes de redirection de mon site.
Patricia