Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

formulaire php

13 réponses
Avatar
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

10 réponses

1 2
Avatar
Bruno Desthuilliers
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é.

Avatar
CrazyCat
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

Avatar
Mihamina Rakotomandimby
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.

Avatar
Olivier Miakinen
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.

Avatar
yoyo
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.


Avatar
yoyo
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é.



Avatar
CrazyCat
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


Avatar
Thierry B\.
--{ 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" |
+----------------------------------------+


Avatar
yoyo
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.



Avatar
Bruno Desthuilliers
--{ 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...



1 2