Bonjour à vous tous,

Considérons le code suivant :
<form action="traitement.php" method="GET">
    ...
</form>
Je crois que je viens de comprendre enfin à quoi sert l'attribut HTML "action". Corrigez-moi si je me trompe : il sert à stocker dans un fichier nommé "traitement.php" les données ainsi que les étiquettes de chaque champ du formulaire afin que ce fichier soit ensuite envoyé vers le serveur pour enregistrer chaque donnée dans une base de données ou pour être traité avant de renvoyer un résultat.

Ces données sont envoyées dans ce fichier avec la méthode GET, c'est-à-dire que chaque valeur et son label est envoyée dans la barre URL avant d'être enregistré dans le fichier. Est-ce que c'est la même chose pour la méthode POST ? Celle-ci n'envoie pas les données dans la barre URL, elle les envoie directement dans le fichier traitement.php ?

Que devient après ce fichier ? Il reste sur le serveur quelques temps avant de disparaître ? Il est stocké définitivement quelque part ?

Merci pour vos explications
Modifié par ObiJuanKenobi (06 Nov 2023 - 09:50)
connecté
Modérateur
Bonjour,

Non, le fichier traitement.php ne contiendra pas les données du formulaire.

Le fichier traitement.php ne sera pas modifié. Il doit contenir un script qui traitera les données du formulaire qui sont stockées dans la mémoire du serveur (dans les tableaux $_GET et $_POST). Et il affichera ensuite une nouvelle page. Et c'est pareil avec les méthodes GET ou POST.

Quand l'attribut action est absent, le script php qui traitera les données du formulaire est le script php qui affiche la page où se trouve le formulaire. L'attribut action permet simplement de spécifier un autre script que celui qui affiche la page en cours pour traiter les données du formulaire et afficher ainsi une autre page.

Amicalement,
connecté
Modérateur
Bonjour,

On suppose qu'on a un script php qu'on va appeler principal.php qui affiche un formulaire. Lorsqu'un internaute clique sur le bouton d'envoi du formulaire, les données du formulaire sont envoyées au serveur qui les stockent dans sa mémoire dans le tableau $_GET si la méthode du formulaire est GET, ou dans $_POST si la méthode du formulaire est POST.

Ensuite, il y a 2 cas :
1) Si la balise du formulaire n'a pas d'attribut action, le serveur exécute à nouveau le script principal.php et envoie le contenu généré au navigateur de l'internaute.

2) Si la balise du formulaire a un attribut action="traitement.php", le serveur exécute le script traitement.php (au lieu du script principal.php) et envoie le contenu généré au navigateur de l'internaute.

Amicalement,
Modérateur
Bonsoir, oups, il y a déjà une réponse Smiley cligne
action représente l'adresse à laquelle le formulaire est envoyé et les données soumises pour qu'elles soient traitées .

Si tu ne les traite pas, elles sont perdues.
Il te faut impérativement un script serveur à l'écoute des données transitant par la méthode post ou get (envoyées par le navigateur à la soumission du formulaire).

C'est à toi de décider quoi en faire.(via un script)

Cdt
Modifié par gcyrillus (06 Nov 2023 - 17:30)
parsimonhi a écrit :
Bonjour,

2) Si la balise du formulaire a un attribut action="traitement.php", le serveur exécute le script traitement.php (au lieu du script principal.php) et envoie le contenu généré au navigateur de l'internaute.

Amicalement,


Pourrais-je connaître l'intérêt d'envoyer un premier fichier et ensuite choisir d'en envoyer un autre ? Pourquoi ne pas envoyer l'autre de suite ?
Je suppose qu'il y a une réponse qui va éclairer mon ignorance, mais je suis pressé Smiley cligne
Modifié par Bongota (06 Nov 2023 - 19:14)
Modérateur
ObiJuanKenobi a écrit :
...ce fichier reçoit les données en plus du script de traitement ?

C'est un peu plus compliqué, c'est le serveur qui reçoit , parmi un tas d'autres informations dont la ressource demandée (ici l'url dans action), les données envoyées par le formulaire.
Les infos reçu par le serveur sont alors disponibles à ce moment là et peuvent être traitée et enregistrées.

Ton fichier ou page en tant que tel ne reçoit rien mais les tableaux de variables $_POST et $_GET (en PHP) sont accessibles (si présentes) , c'est là que tu as besoin d'un script pour les lires et les traitées Smiley cligne

cdt
Modifié par gcyrillus (06 Nov 2023 - 19:27)
ObiJuanKenobi a écrit :
Merci gcyrillus, donc, ce fichier reçoit les données en plus du script de traitement ?


Le fichier "traitement.php" c'est le script en faite. C'est lui qui va contenir le code, la suite logique du traitement des données qui seront envoyé grace à ton formulaire.
JENCAL a écrit :


Le fichier "traitement.php" c'est le script en faite. C'est lui qui va contenir le code, la suite logique du traitement des données qui seront envoyé grace à ton formulaire.


Le script de quoi ?
le code PHP inclus dans la page HTML ?
Modérateur
Bonjour,

Il y a https://www.php.net/manual/fr/tutorial.forms.php et quelques sujets résolus qui pourront t’éclairer sur le traitement d'un formulaire et son script :

au moins deux que je connais que tu pourras reprendre en exemple, mais il y en a surement plein d'autres.
* https://forum.alsacreations.com/topic-20-89608-1.html
* https://forum.alsacreations.com/topic-5-88476-1.html


et non essentiel pour ton sujet simplement en info, complément ,et sans formulaires pour un autre usage qui utilise $_GET (passage des paramètres dans l'url) https://forum.alsacreations.com/topic-1-86724-1.html
Cdt
Modifié par gcyrillus (07 Nov 2023 - 16:38)