note 130584 added to reserved.variables.post
| From: | DominiqueDuLoiret@gmail.com | Date: | Thu, 18 Dec 2025 20:42:34 +0000 |
| Subject: | note 130584 added to reserved.variables.post | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-222467@lists.php.net to get a copy of this message | ||
Voici comment gérer un formulaire en POST dans l'architecture MVC que tu étudies, en
suivant l'exemple de la création d'un produit tel que décrit dans ton TD.
Le flux est le suivant : la Vue envoie les données au Contrôleur, qui utilise le Modèle
pour enregistrer en base de données, puis le contrôleur affiche une vue de confirmation.
1. La Vue : Le Formulaire (addProduct.php)
C'est ici que l'utilisateur saisit les informations. Le formulaire pointe vers la route
correspondante au contrôleur et à la méthode de traitement.
<form action="<?= CFG['siteURL'] ?>Product/addProduct"
method="post">
<label>Nom : <input type="text" name="name"
required></label>
<label>Prix : <input type="number" step="0.01"
name="price" required></label>
<label>Quantité : <input type="number" name="quantity"
required></label>
<button type="submit">Ajouter le produit</button>
</form>
2. Le Contrôleur : Le Traitement (Product.php)
La méthode addProduct() récupère les données du tableau superglobal $_POST, crée une
entité et demande au dépôt (Repository) de l'enregistrer.
<?php
// app/controller/Product.php
namespace app\controller;
use app\model\entity\ProductEntity;
use app\model\repository\DbProductRepository;
class Product {
private $repository;
public function __construct() {
$this->repository = new DbProductRepository();
}
public function addProduct() {
// 1. Récupération des données du formulaire
$product = new ProductEntity();
$product->setName($_POST['name']);
$product->setPrice((float)$_POST['price']);
$product->setQuantity((int)$_POST['quantity']);
// 2. Appel du modèle pour la persistance
$newProduct = $this->repository->add($product);
// 3. Affichage du résultat (on passe l'objet à la vue)
if ($newProduct) {
require "view/displayProduct.php";
} else {
echo "Erreur lors de l'ajout.";
}
}
}
?>
----
Server IP: 206.189.2.9
Probable Submitter: 2001:660:7220:385:193:52:103:33
----
Manual Page -- https://php.net/manual/en/reserved.variables.post.php
Edit -- https://main.php.net/note/edit/130584
Del: integrated -- https://main.php.net/note/delete/130584/integrated
Del: useless -- https://main.php.net/note/delete/130584/useless
Del: bad code -- https://main.php.net/note/delete/130584/bad+code
Del: spam -- https://main.php.net/note/delete/130584/spam
Del: non-english -- https://main.php.net/note/delete/130584/non-english
Del: in docs -- https://main.php.net/note/delete/130584/in+docs
Del: other reasons-- https://main.php.net/note/delete/130584
Reject -- https://main.php.net/note/reject/130584
Search -- https://main.php.net/manage/user-notes.php