Conseils affichage contenu autre page avec Formulaire POST

Petit nouveau ! | 7 Messages

29 janv. 2021, 19:12

Bonjour tout le monde,

Que Me Conseillez Vous pour afficher du contenu distant Avec Formulaire POST :o ?

J'ai une page principale a.php, sur celle-ci, je souhaite afficher les pages b.php et c.php qui contiennent des formulaires POST,
Actuellement, j'utilise un require(); mais le traitement des données POST se font sur a.php et non sur leur pages respectives.

Ce qui cause des problèmes,
:arrow: Affichage des erreurs alors que le formulaire n'est pas soumis
:arrow: Re soumission quand on fait f5 même si le formulaire est déjà soumis.

J'utilise cette solution car au niveau de mon code, cela me permet d'avoir un code plus lisible.
Et puis, je souhaite une solution plus propre car c'est un projet sérieux.

Je pensai a ob_start() et ob_get_flush() mais je ne vous pas trop comment l’utiliser.
L'autre solution, c'est d’afficher sur la page a.php, que le html, et quand il y a soumission, sur a.php je génère une requête sur sur un fichier distant qui comprendra les requêtes.


Merci bien,
Cordialement :D

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 9782 Messages

29 janv. 2021, 19:40

La solution propre est de reproduire ces formulaires et de les envoyer côté serveur avec CURL ou Guzzle en POST, récupérer le retour et l'afficher comme tu le souhaites.
https://github.com/guzzle/guzzle

Si tu veux vraiment faire juste un require du formulaire, tu peux remplacer ton require par un file_get_contents(), et modifier à la volée le code HTML du formulaire récupéré par exemple en injectant un attribut action pour remettre l'url de la page distante b.php.
<form action="http://domaine.com/b.php" method="post">
Quand tout le reste a échoué, lisez le mode d'emploi...

Petit nouveau ! | 7 Messages

30 janv. 2021, 12:07

Bonjour,
J'ai effectue la modification, en mettant les verifications POST sur la même page(avec le HTML) mais quand je soumet un formulaire, les erreurs des autre formulaires se déclenchent car il ont de valeur adéquat...

Comment procéder dans ce cas.
Ex. quand je soumet le formulaire 'a', les erreurs de 'b' s’affiche car il est vide.
if ($_SERVER['REQUEST_METHOD'] === 'POST'):
if (isset($_POST['a']) && !empty($_POST['a'])) {
// ...
} else {$errors = '...';}


if (isset($_POST['b']) && !empty($_POST['b'])) {
// ...
} else {$errors = '...';}

endif;
Merci bien