Précédent   Forum des professionnels en informatique > PHP > Langage > Sessions
Sessions Forum d'entraide sur les sessions avec PHP. Avant de poster -> FAQ sessions, Cours sessions et Sources sécurité
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 17/04/2007, 15h11   #1
Membre du Club
 
Inscription : juin 2005
Messages : 60
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 60
Points : 40
Points : 40
Par défaut Détection d'actualisation de page

Bonjour
Mon site est actif depuis plusieurs mois et il y a quelques bugs que je n'arrive pas à résoudre malgré des rechercehs intensives (c'est un site de jeu en ligne).
Je viens d'avoir une idée pour expliquer ces bugs : Il se peut qu'ils se créent quand l'utilisateur actualise sa page et que les données envoyées pas POST se renvoient.
Ma question est : Est-ce qu'il y a un moyen pour le serveur de détecter si la page est envoyée par une actualisation ou une utilisation de la fonction "précédente" ou alors est-ce qu'il faut que j'aille régler ça moi-même sur toutes les pages?
Nious99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h19   #2
Membre habitué
 
Expert Support Applicatif
Inscription : mars 2007
Messages : 158
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Expert Support Applicatif
Secteur : Distribution

Informations forums :
Inscription : mars 2007
Messages : 158
Points : 140
Points : 140
Il me semble que dans la FAQ de javascript il est dit qu'il n'existe aucun moyen de pouvoir empecher l'utilisateur de cliquer sur precedent ou actualiser... faudrait rechercher.

Mais je ne pense que tu puisses savoir si la page est une actualisation, mais je suis pas spécialiste non plus...
Alex70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h28   #3
Membre du Club
 
Inscription : juin 2005
Messages : 60
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 60
Points : 40
Points : 40
Ok, merci, il me semble aussi que ça n'est pas possible. Je suis en train d'éplucher les headers mais je n'ai pas bon espoir .
Nious99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h31   #4
Membre habitué
 
Expert Support Applicatif
Inscription : mars 2007
Messages : 158
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Expert Support Applicatif
Secteur : Distribution

Informations forums :
Inscription : mars 2007
Messages : 158
Points : 140
Points : 140
La réponse là =>FAQ
Alex70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h39   #5
Membre du Club
 
Inscription : juin 2005
Messages : 60
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 60
Points : 40
Points : 40
Ok, donc j'imagine que ça n'est pas possible non plus en php , bon ben merci pour ton aide.
Nious99 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 15h42   #6
Membre habitué
 
Expert Support Applicatif
Inscription : mars 2007
Messages : 158
Détails du profil
Informations personnelles :
Âge : 26
Localisation : France, Territoire de Belfort (Franche Comté)

Informations professionnelles :
Activité : Expert Support Applicatif
Secteur : Distribution

Informations forums :
Inscription : mars 2007
Messages : 158
Points : 140
Points : 140
en effet... désolé pour toi, bonne chance pour résoudre ton problème
Alex70 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/04/2007, 16h32   #7
Membre du Club
 
Inscription : juin 2005
Messages : 60
Détails du profil
Informations personnelles :
Âge : 33
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : juin 2005
Messages : 60
Points : 40
Points : 40
Alors, j'ai une solution, pas trop lourde en plus .
Voilà : Premièrement, il faut déclarer une variable session à la connexion :
Code :
$_SESSION["CodePage"]=0;
Ensuite, il faut inclure ce code à toutes les pages, moi je l'ai mis dans une page incluse dans toutes les autres :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
//Détection des actualisations de page
if(isset($_POST["CodePage"]))
{
	if($_POST["CodePage"]==$_SESSION["CodePage"])
	{
		unset($_POST);
	}
	else
	{
		$_SESSION["CodePage"]=$_POST["CodePage"];
	}
}
La dernière étape consiste à ajouter ça dans tous vos formulaires :
Code :
<input name="CodePage" type="hidden" value="<?=rand(1,1000000000) ?>">
Et le tour est joué, il n'y aura plus de répétition imprévue.
Nious99 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 06h18.


 
 
 
 
Partenaires

Hébergement Web