8768 sujets

Développement web côté serveur, CMS

Bonjour à vous tous,

Je suis au chapitre du PHP et les formulaires. Je me demande pourquoi faut-il saisir les instructions PHP dans un fichier de traitement appelé par l'attribut action (par exemple action ="traitement.php"), dans la structure HTML du formulaire et utilisant la méthode get ? Est-ce que c'est parce qu'on utilise la méthode get ? Si on utilise la méthode post on n'a pas besoin de fichier de traitement et on peut directement ajouter les instructions PHP dans la structure HTML ?
Salut

Un formulaire, il se submit. Pour qu'il se ce submit correctement il lui faut au minimum quelques attributs

l'action => c'est le fichier php où les infos saisie dans le formulaire vont aller afin d'être traité
la méthod => get ou post, si on précise get alors les infos seront envoyé dans l'url, si on précis post alors les infos seront envoyé en mode invisible.

dans tout les cas, il faut du php pour traiter le fomulaire, sinon ce n'est pas un "vrai" formulaire.

C'est toujours mieux de découper les fichiers un maximum pour pouvoir débugger plus tard où pour faire évoluer la chose.
Modifié par JENCAL (11 Apr 2022 - 10:04)
Merci Jencal pour tes explications.
Mais considérons le formulaire suivant très simple :

<form method="get" action="traitement.php">
<input type="text" name="prenom">
<input type="submit" name="ok">
</form>

Si l'internaute saisi le champ, la valeur est enregistrée dans la RAM de l'ordinateur après avoir cliqué sur le bouton de validation. Et pour la récupérer en PHP, pour un éventuellement traitement, on utilise la variable externe $_GET['prenom']; ou $_POST['prenom']; selon qu'on utilise la méthode get ou post.

Ainsi, on peut utiliser une structure conditionnelle qui vérifie si le champ a bien été saisi avant d'envoyer au traitement. On aurait alors la condition suivante :

$prenom = $_GET['prenom'];
if(empty($prenom)){
echo 'Vous n\'avez pas renseigné votre prénom';
}else{
echo 'Votre prénom est ' . $prenom;
}

Mais ce que je me demande c'est pourquoi cette condition doit être placée dans un fichier PHP externe ? Pourquoi on ne peut pas directement placer cette condition dans la structure HTML contenant le formulaire ?
Modifié par ObiJuanKenobi (11 Apr 2022 - 15:22)
Bonjour,

Il n'y a pas d'obligation à placer ta vérification dans un autre fichier, tu peux très bien placer ton traitement au début du fichier qui contient le formulaire et modifier l'action du formulaire pour l'envoyer vers la même page, ça fonctionnera pareil.
Mais je suis tout à fait d'accord avec JENCAL, il vaut mieux découper afin de rendre les choses plus lisibles, cela te permettra aussi de séparer plus facilement le traitement de l'interface lorsque tes formulaires deviendront plus longs et complexes ou auront des traitements plus compliqués à gérer.
Meilleure solution
Oui voila, comme gillesr, aucune obligation, mais découper ça permet de mieux lire ton code quand même Smiley smile
OK, je comprends mieux. C'est comme pour le HTML et le CSS. Au début, tout était mélangé dans la même page HTML et puis on a préféré séparer la structure de la mise en forme. Merci pour vos explications et à la prochaine.