ma variable de session n'est pas initialisé après retour
4 messages • Page 1 sur 1
Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics
- psychoreflex
- WRInaute accro

- Messages: 1123
- Inscription: Dim Juil 10, 2005 18:15
ma variable de session n'est pas initialisé après retour
Bonjour,
Je ne comprend pas la chose suivante :
Le visiteur valide un formulaire et arrive sur une page qui confirme l'enregistrement. Cette page insère les données dans la base.
Après le script d'insertion j'initialise une variable comme suit :
Le but est que si le gars utilise fait un retour avec le navigateur, la page précédente n'affiche plus le formulaire tel qu'il était mais les conditions d'inscription.
Pour cela je fais comme suit:
Et bien avec ça le formulaire se réinsère quand même. Si je fais
Pour le test, alors c'est pareil.
Donc ? Pourquoi ma variable de session n'est pas transmise à la page précédente lorsque l'on fait un retour du navigateur ?
Je ne comprend pas la chose suivante :
Le visiteur valide un formulaire et arrive sur une page qui confirme l'enregistrement. Cette page insère les données dans la base.
Après le script d'insertion j'initialise une variable comme suit :
- Code: Tout sélectionner
$_SESSION['antiMarcheArriere']='1';
Le but est que si le gars utilise fait un retour avec le navigateur, la page précédente n'affiche plus le formulaire tel qu'il était mais les conditions d'inscription.
Pour cela je fais comme suit:
- Code: Tout sélectionner
if($_SESSION[$antiMarcheArriere]!=1)
{
on insère le formulaire
;}
else {require('condition-inscription.php');}
Et bien avec ça le formulaire se réinsère quand même. Si je fais
- Code: Tout sélectionner
!isset($_SESSION[$antiMarcheArriere])
Pour le test, alors c'est pareil.
Donc ? Pourquoi ma variable de session n'est pas transmise à la page précédente lorsque l'on fait un retour du navigateur ?
Quand l'utilisateur fait retour, la page qui est affichée ne vient pas du serveur web mais du cache du navigateur de l'utilisateur.
Le serveur n'ayant pas interprété cette page il ne fait pas le test sur la variable de session.
Je pense qu'il faut mettre ton test de la variable de session tout en haut du code de la 2ème page qui insert les données en base.
Après l'insertion en BDD il faut mettre une variable en session :
Et avant l'insertion il faut regarder que l'insertion n'a pas déjà été faite :
Le serveur n'ayant pas interprété cette page il ne fait pas le test sur la variable de session.
Je pense qu'il faut mettre ton test de la variable de session tout en haut du code de la 2ème page qui insert les données en base.
Après l'insertion en BDD il faut mettre une variable en session :
- Code: Tout sélectionner
$_SESSION["insertion"] = "ok";
Et avant l'insertion il faut regarder que l'insertion n'a pas déjà été faite :
- Code: Tout sélectionner
if ($_SESSION["insertion"] != "ok"){
//insertion en BDD
}
- psychoreflex
- WRInaute accro

- Messages: 1123
- Inscription: Dim Juil 10, 2005 18:15
Intéressante réponse, merci Reglysse !
J'y vois plus clair.
Il y avait une erreur dans mon test de variable (oubli des ' ') : je l'ai corrigé et j'obtiens le message suivant :
En soit c'est déjà bien mais je voudrais comprendre le processus, au vue de ce que tu me dis. Pourquoi la simple initialisation d'une variable de session déclenche une erreur de ce type sur la page censé tester si cette variable existe, en faisant retour ?
Pour le reste le mieux c'est que je reprenne le tout en insérant le scrit d'insertion par une condition dans la même page que celles du script de confirmation. Comme cela en faisant retour, le gars sera obligé de tomber sur la page d'acceptation des CGU.
Z'êtes d'accord ?
Quand l'utilisateur fait retour, la page qui est affichée ne vient pas du serveur web mais du cache du navigateur de l'utilisateur.
J'y vois plus clair.
Le serveur n'ayant pas interprété cette page il ne fait pas le test sur la variable de session.
Il y avait une erreur dans mon test de variable (oubli des ' ') : je l'ai corrigé et j'obtiens le message suivant :
Avertissement : expiration du délai pour cette page La page requise a été créée en utilisant les informations fournies dans un formulaire. Cette page n'est plus disponible. Par sécurité, Internet Explorer ne renvoie pas automatiquement les informations vous concernant.
Pour envoyer vos informations à nouveau et afficher cette page Web, cliquez sur le bouton Actualiser.
En soit c'est déjà bien mais je voudrais comprendre le processus, au vue de ce que tu me dis. Pourquoi la simple initialisation d'une variable de session déclenche une erreur de ce type sur la page censé tester si cette variable existe, en faisant retour ?
Pour le reste le mieux c'est que je reprenne le tout en insérant le scrit d'insertion par une condition dans la même page que celles du script de confirmation. Comme cela en faisant retour, le gars sera obligé de tomber sur la page d'acceptation des CGU.
Z'êtes d'accord ?
Je ne sais pas pourquoi tu as cette erreur maintenant, hypothèse :
Comme maintenant tu utilises une session dans la page le serveur web doit envoyer une information au navigateur comme quoi la page expire tout de suite.
Sinon je suis ok avec toi pour la suite, le test d'insertion et l'insertion doit être dans la même page.
Comme maintenant tu utilises une session dans la page le serveur web doit envoyer une information au navigateur comme quoi la page expire tout de suite.
Sinon je suis ok avec toi pour la suite, le test d'insertion et l'insertion doit être dans la même page.
- Code: Tout sélectionner
if ($_SESSION["deja_inséré"] != "OK"){
INSERTION
$_SESSION["deja_inséré"] = "OK";
}
4 messages • Page 1 sur 1
Formation recommandée sur ce thème :
Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.
Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.
Lectures recommandées sur ce thème :
- Référencement : le problème des sessions des pages PHP
- Google Developer Day 2007 : à Paris et dans 9 autres villes
- Référencement d'un forum phpBB
- Le référencement de pages PHP
- Référencement de l'AJAX : la solution Google
- Séminaire sur le référencement : ImiTiki - Online 2005
- Configurer des nouveaux moteurs dans Google Analytics
- Formation référencement à Paris du 24 au 27 nov. 2009 Ranking Metrics
- Séminaires Google et Netlinking - 6 et 7 octobre 2004
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités



le forum