Script php-mysql+ actualisation navigateur
Fermé
ogyon
Messages postés
345
Date d'inscription
lundi 18 novembre 2002
Statut
Contributeur
Dernière intervention
23 juin 2009
-
16 déc. 2005 à 15:26
Julien Fastré - 14 mai 2007 à 22:31
Julien Fastré - 14 mai 2007 à 22:31
Bonjours à tous :)
Ptite problematique:
Un formulaire php (form.php avec des variables POST) vient remplir une base de données via le script (script.php). L'insertion se passe niquel, et à vrai dire il n'y a pas de pb.
Cependant, si on réactualise la page (script.php) cela incrémente la base de la meme valeur...encore et encore à chaque clic de réactualisation...
Comment empecher cela?
(pourtant je réinitialise bien mes valeurs au début...mais que néni ca continue)
Merci d'avance pour vos lueurs :)
Ptite problematique:
Un formulaire php (form.php avec des variables POST) vient remplir une base de données via le script (script.php). L'insertion se passe niquel, et à vrai dire il n'y a pas de pb.
Cependant, si on réactualise la page (script.php) cela incrémente la base de la meme valeur...encore et encore à chaque clic de réactualisation...
Comment empecher cela?
(pourtant je réinitialise bien mes valeurs au début...mais que néni ca continue)
Merci d'avance pour vos lueurs :)
A voir également:
- Script php-mysql+ actualisation navigateur
- Script vidéo youtube - Guide
- Navigateur web - Guide
- Navigateur privé - Guide
- Easy php - Télécharger - Divers Web & Internet
- Mysql community server - Télécharger - Bases de données
3 réponses
crabs
Messages postés
908
Date d'inscription
lundi 18 avril 2005
Statut
Membre
Dernière intervention
3 août 2008
507
17 déc. 2005 à 18:05
17 déc. 2005 à 18:05
salut,
Il me semble que tu peux eviter ce problème en utilsant une redirection :
1 -> la page qui propose ton formulaire
2 -> POST (action navigateur)
3 -> script qui traite le formulaire et qui fait une redirection
4 - > la page qui fait l'affichage
Pour faire une redirection, avant tout affichage dans la page en php:
Tu peux mettre une url relative, mais certains navigateurs ne supportent pas bien
le changement de dossier.
A+, crabs
Il me semble que tu peux eviter ce problème en utilsant une redirection :
1 -> la page qui propose ton formulaire
2 -> POST (action navigateur)
3 -> script qui traite le formulaire et qui fait une redirection
4 - > la page qui fait l'affichage
Pour faire une redirection, avant tout affichage dans la page en php:
header( "Location: $url_absolu_de_la_page" ) ;
Tu peux mettre une url relative, mais certains navigateurs ne supportent pas bien
le changement de dossier.
A+, crabs
ogyon
Messages postés
345
Date d'inscription
lundi 18 novembre 2002
Statut
Contributeur
Dernière intervention
23 juin 2009
23
17 déc. 2005 à 16:46
17 déc. 2005 à 16:46
Aucune lueurs??
Un moyen très simple:
Une variable de session qui s'incrémente à chaque page. Dans le formulaire, une variable de type 'hidden' qui a la valeur de la variable session courante.
Le script qui traite les données de formulaire ne s'exécute que si la variable cachée renvoyée par le formulaire est égale à la variable de session - 1 .
Exemple:
Au début de la page:
Je ne sais pas si la méthode est sûre au niveau de la sécurité, mais a priori elle ne devrait pas l'être moins que le script séparé.
Julien
Une variable de session qui s'incrémente à chaque page. Dans le formulaire, une variable de type 'hidden' qui a la valeur de la variable session courante.
Le script qui traite les données de formulaire ne s'exécute que si la variable cachée renvoyée par le formulaire est égale à la variable de session - 1 .
Exemple:
Au début de la page:
$_session['page'] ++ //(il ne faut pas oublier, si la variable n'existe pas, de la créér avant) <form> <input type = 'hidden' value = $_session['page'] name = 'page'> </form> et le script qui traite le formulaire: if ( "si c'est le formulaire qui a été envoyé" && $_post['page'] = $_session['page'] -1 ) // le script qui traite les données du formulaire est exécuté.
Je ne sais pas si la méthode est sûre au niveau de la sécurité, mais a priori elle ne devrait pas l'être moins que le script séparé.
Julien