formulaire php

Le
yoyo
Bonjour,

voilà j'ai un petit soucis avec mes formulaire php en méthode post

je procède de cette manière :

un fichier formulaire.html qui remvoit via le post à form_formulaire.php qui
vérifie les données avant de les insérrer dans le base si le post.

exemple :

if($_Post['nom']{

$nom=$_Post['nom'];


$requete

echo " message de reusite");

}

tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la page
j'ai une nouvelle insertion.

comment évité ce genre de problème
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Bruno Desthuilliers
Le #10542
Bonjour,

voilà j'ai un petit soucis avec mes formulaire php en méthode post

je procède de cette manière :

un fichier formulaire.html qui remvoit via le post à form_formulaire.php qui
vérifie les données avant de les insérrer dans le base si le post.

exemple :

if($_Post['nom']{

$nom=$_Post['nom'];


$requete

echo " message de reusite");

}

tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la page
j'ai une nouvelle insertion.

comment évité ce genre de problème


1/ En faisant un redirect après le traitement - ça n'empèche pas
totalement les soumissions multiples, mais ça limite les risques.

2/ En incluant dans le formulaire (dans un champ hidden) un identifiant
unique autogénéré (lors du premier affichage du formulaire uniquement,
of course), correspondant à un champ de la base ayant une contrainte
d'unicité. Ce qui permet de détecter sans ambiguité une re-soumission
accidentelle.

Attention, seule le second point assure une réelle sécurité.

CrazyCat
Le #10543
wrote:
tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la page
j'ai une nouvelle insertion.
comment évité ce genre de problème


Problème débattu maintes fois.
Les solutions les plus simples sont:
- que la page form_formulaire.php fasse, après traitement des données,
une redirection vers une autre page,
- que ta page de formulaire initie une session qui sera détruite par la
page form_formulaire après traitement...

--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net

Mihamina Rakotomandimby
Le #11070
wrote:
Bonjour,


Bonjour,

un fichier formulaire.html qui remvoit via le post à form_formulaire.php qui
vérifie les données avant de les insérrer dans le base si le post.
[...]
tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la page
j'ai une nouvelle insertion.
comment évité ce genre de problème?


Puisque form_formulaire.php "vérifie", ajoute une vérification
supplémentaire?
Dis nous dans quoi sont stockés les données, tu pourrais ajouter la date
d'insertion et l'IP et si la meme IP soumet trop vite avec les memes
données, tu refuses.

Sinon, j'ai bien une idée mais en Javascript, donc hors charte.

Olivier Miakinen
Le #10541
Bonjour,


Bonjour. Je profite de ton article pour te signaler que ton adresse,
visiblement invalide, devrait être déclarée dans le nom de domaine de
premier niveau « invalid », réservé à cet effet, et pas dans celui de
second niveau « invalid.fr ».

Donc par exemple :

(Par ailleurs une adresse valide dans le champ Reply-To permettrait de
te répondre en privé sans pour autant fournir cette adresse à l'immense
majorité des spammeurs.)

voilà j'ai un petit soucis avec mes formulaire php en méthode post

je procède de cette manière :

un fichier formulaire.html qui remvoit via le post à form_formulaire.php qui
vérifie les données avant de les insérrer dans le base si le post.


... si le post ?

exemple :

if($_Post['nom']{
$nom=$_Post['nom'];
$requete
echo " message de reusite");
}


Il manque quelques parenthèses, et il y a un problème de casse avec le
nom de la variable $_POST. Je suppose que ton script n'est pas comme ça,
car sinon il plantera immédiatement. Note qu'un copier-coller depuis le
script aurait, du coup, été préférable.

tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la page
j'ai une nouvelle insertion.

comment évité ce genre de problème


C'est plutôt une question de technique de programmation avec les bases
de données qu'une question de PHP, et j'imagine qu'un meilleur groupe
aurait été fr.comp.applications.sgbd. Mais à priori la réponse doit être
de trouver un identifiant unique pour la table, qui dépendra des données
saisies, au lieu de choisir un entier incrémenté automatiquement.

yoyo
Le #10540
CrazyCat wrote:

wrote:
tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la
page j'ai une nouvelle insertion.
comment évité ce genre de problème


Problème débattu maintes fois.
Les solutions les plus simples sont:
- que la page form_formulaire.php fasse, après traitement des données,
une redirection vers une autre page,
- que ta page de formulaire initie une session qui sera détruite par la
page form_formulaire après traitement...




ok!! mais dans ce cas là il faut que je prévoit une session, même si c'est
une page grand public qui ne nécessite pas d'autenfification.


yoyo
Le #10539
Mihamina Rakotomandimby wrote:

wrote:
Bonjour,


Bonjour,

un fichier formulaire.html qui remvoit via le post à form_formulaire.php
qui vérifie les données avant de les insérrer dans le base si le post.
[...]
tout fonctionne mais j'ai juste un soucis si l'internaute rafraichis la
page j'ai une nouvelle insertion.
comment évité ce genre de problème?


Puisque form_formulaire.php "vérifie", ajoute une vérification
supplémentaire?
Dis nous dans quoi sont stockés les données, tu pourrais ajouter la date
d'insertion et l'IP et si la meme IP soumet trop vite avec les memes
données, tu refuses.

dans une BDD, en effet j'avais pas pensé au coup de l'ip.


Sinon, j'ai bien une idée mais en Javascript, donc hors charte.
oui en effet mais cela peux être désativé.



CrazyCat
Le #10538
wrote:
- que ta page de formulaire initie une session qui sera détruite par la
page form_formulaire après traitement...
ok!! mais dans ce cas là il faut que je prévoit une session, même si c'est

une page grand public qui ne nécessite pas d'autenfification.


Et alors? ce n'est pas un problème. Beaucoup de sites utilisent des
sessions pour transmettre des informations d'une page à une autre.

session ne signifie pas authentification, c'est juste une variable
temporaire.

--
Discussions et débats sur l'actualité: http://www.sujets-d-actu.eu
Réseau IRC Francophone: http://www.crazy-irc.net


Thierry B\.
Le #10537
--{ a plopé ceci: }--


dans une BDD, en effet j'avais pas pensé au coup de l'ip.



Une fois de plus, ça ne marche pas à tout les coups, l'IP pouvant
changer d'une requète à l'autre. Comme chez AOL il y a quelques
années...


--
PEBCAK is obsolete. Use PICNIC instead.
+----------------------------------------+
| "Problem In Chair, Not In Computer" |
+----------------------------------------+


yoyo
Le #10536
CrazyCat wrote:

wrote:
- que ta page de formulaire initie une session qui sera détruite par la
page form_formulaire après traitement...
ok!! mais dans ce cas là il faut que je prévoit une session, même si

c'est une page grand public qui ne nécessite pas d'autenfification.


Et alors? ce n'est pas un problème. Beaucoup de sites utilisent des
sessions pour transmettre des informations d'une page à une autre.

session ne signifie pas authentification, c'est juste une variable
temporaire.



ok!!! j'aurais jamais pensé à ça mais cela me convient très bien
re-direction + session.



Bruno Desthuilliers
Le #10535
--{ a plopé ceci: }--

dans une BDD, en effet j'avais pas pensé au coup de l'ip.


Une fois de plus, ça ne marche pas à tout les coups, l'IP pouvant
changer d'une requète à l'autre. Comme chez AOL il y a quelques
années...

Ou une même IP pouvant être partagée par pas mal de monde...



Publicité
Poster une réponse
Anonyme