Précédent   Forum des professionnels en informatique > PHP > Langage > Débuter
Débuter Forum d'entraide pour débuter en PHP. Avant de poster -> Cours PHP, FAQ PHP, Outils PHP, etc.
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 28/06/2011, 12h03   #1
Membre du Club
 
Inscription : mars 2008
Messages : 227
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 227
Points : 44
Points : 44
Par défaut Retour sur une page qui s'exécute une deuxième fois

Bonjour.
Pour simplifier, j'ai écrit une page HTML qui contient un script qui, grâce aux données passées dans l'URL et la méthode GET, ajoute une valeur dans un tableau. Le problème, c'est que si on va sur une autre page et qu'on revient sur celle-là avec le bouton Retour du navigateur, la même valeur est à nouveau ajoutée dans le tableau.
C'est un exemple simplifié par rapport à ce que je fais.
Comment gère-t-on ce genre de problème?
Merci.
JCD21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h48   #2
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Le boutton retour sur une page obtenue en POST (généralement un envoi de formulaire) provoque le renvoi des données. Pour contourner le problème, il suffit de mettre en place une redirection GET.

Code :
header('Location: www.tosite.com/une_page.php');
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 12h58   #3
Membre confirmé
 
Avatar de Retrokiller069
 
Homme Bertrand
Étudiant
Inscription : octobre 2010
Messages : 216
Détails du profil
Informations personnelles :
Nom : Homme Bertrand
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : octobre 2010
Messages : 216
Points : 268
Points : 268
Bonjour,

si tu n'as jamais besoin de récupérer la valeur (je parle sur la page de ton formulaire) tu pourrais par exemple utiliser un fonction javacript qui initialise toutes tes variables de ton formulaire à vide.

Regarde du coté de document.onload, il me semble que cela permet d'exécuter du javascript lorsque la page est généré. Je ne suis pas sur à 100% mais cela devrait te résoudre ton problème.
__________________
Ce n'est pas ce que nous voulons faire qui est impossible mais ce sont les moyens à sa mise en oeuvre qui peuvent le paraître

Ps: N'oubliez pas SVP
Retrokiller069 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/06/2011, 13h46   #4
Membre du Club
 
Inscription : mars 2008
Messages : 227
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 227
Points : 44
Points : 44
Merci pour vos réponses.
En fait il ne s'agit pas d'un formulaire. Voici l'URL de ma page (pour l'instant, tout est en local):
messageComparaison.php?action=ajouter&identifiantObjetComparaison=1
Dans la page, j'ai écrit:
Code :
1
2
3
4
 
$action=htmlspecialchars($_GET['action']);
$identifiantObjetComparaison=htmlspecialchars($_GET['identifiantObjetComparaison']);
if($action==="ajouter") {...
Dans les..., j'ajoute identifiantObjetComparaison à la fin d'un tableau.
Donc si je vais ensuite sur une autre page et que je reviens avec le bouton Retour du navigateur, le code est exécuté à nouveau et donc je me retrouve avec deux fois identifiantObjetComparaison dans mon tableau.
Evidemment, je pourrais tester s'il n'est pas déjà dans le tableau avant de l'ajouter mais je me demandais si il n'y avait pas une meilleure méthode.
PS: je préférerais éviter le javascript.
JCD21 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/06/2011, 11h00   #5
Membre du Club
 
Inscription : mars 2008
Messages : 227
Détails du profil
Informations forums :
Inscription : mars 2008
Messages : 227
Points : 44
Points : 44
Finalement, j'ai testé si identifiantObjetComparaison n'est pas déjà dans le tableau avant de l'ajouter pour éviter les erreurs.
JCD21 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 02h14.


 
 
 
 
Partenaires

Hébergement Web