Formation par Olivier Duffez

Formation au référencement par Olivier Duffez, créateur de WebRankInfo !
Une formule efficace alliant théorie et pratique, avec une haute disponibilité des intervenants
Cette formule a déjà convaincu plusieurs centaines d'entreprises, pourquoi pas vous ?
Réservez vite votre place en ligne (convention possible pour imputer sur le budget formation)

Formation référencement Marseille

ma variable de session n'est pas initialisé après retour

Poster un nouveau sujet Imprimer cette discussion    Forum -> Développement d'un site Web   Les dernières discussions de ce forum sont disponibles au format RSS
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
 
psychoreflex
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 1123

URL permanente de ce messagePosté le : Dim Avr 23, 2006 22:19    Sujet du message: 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 :
Code:
$_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:

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:
!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 ?
 
reglysse
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 19 Avr 2006
Messages: 137
Localisation: Paris

URL permanente de ce messagePosté le : Dim Avr 23, 2006 23:07    Sujet du message: ma variable de session n'est pas initialisé après retour

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 :
Code:
$_SESSION["insertion"] = "ok";


Et avant l'insertion il faut regarder que l'insertion n'a pas déjà été faite :
Code:
if ($_SESSION["insertion"] != "ok"){
//insertion en BDD
}
 
reglysse Visiter le site web du posteur
psychoreflex
WRInaute accro
WRInaute accro

Inscrit le: 10 Juil 2005
Messages: 1123

URL permanente de ce messagePosté le : Dim Avr 23, 2006 23:43    Sujet du message: ma variable de session n'est pas initialisé après retour

Intéressante réponse, merci Reglysse !


Citation:
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.

Citation:
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 :

Citation:
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 ?
 
reglysse Visiter le site web du posteur
reglysse
WRInaute occasionnel
WRInaute occasionnel

Inscrit le: 19 Avr 2006
Messages: 137
Localisation: Paris

URL permanente de ce messagePosté le : Lun Avr 24, 2006 0:05    Sujet du message: ma variable de session n'est pas initialisé après retour

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.
Code:

if ($_SESSION["deja_inséré"] != "OK"){
 INSERTION
 $_SESSION["deja_inséré"] = "OK";
}
 
reglysse Visiter le site web du posteur
 
Montrer les messages depuis:   
Revenir en haut    Forum -> Développement d'un site Web Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1 - 
Connexion
Nom d'utilisateur:    Mot de passe:      Se connecter automatiquement à chaque visite    

En savoir plus : .

CLIQUEZ ICI pour vous inscrire à WebRankInfo (forum, annuaire, outils...)

Connexion

© 2001-2005 phpBB Group, support français
Personnalisation : WebRankInfo ™


 ODP  Firefox  Alsacreations  annuaire webmaster Yagoort