الرئيسية › الدروس › PHP: الاستمارات (formulaires)
PHP: الاستمارات و$_GET و$_POST والتثبّت من المعطيات
استقبل المعطيات متاع formulaire بـ $_POST و $_GET، ثبّت فيها، واربط برشا صفحات بـ require، روابط و redirections.
دروس هذا الفصل
- نبعثو formulaire
- نثبّتو في المعطيات
- برشا صفحات
الدرس 31.1 : نبعثو formulaire
الـ formulaire HTML يبعث الـ champs متاعو لصفحة PHP. الـ attribut action يقول أنهي صفحة تاخذهم، و method كيفاش (post ولا get)، وكل champ يتحطّ تحت الـ attribut name متاعو.
<form action="traitement.php" method="post">
<input type="text" name="prenom">
<input type="submit" name="envoyer" value="Envoyer">
</form>
<?php
$prenom = $_POST["prenom"];
echo "Bonjour $prenom";
?>
method="post": القيم توصل في$_POST، ما يظهروش في العنوان.method="get": في$_GET، يظهرو في العنوان (traitement.php?prenom=Rim).- الـ case à cocher ما تتبعث كان كي تكون مأشّرة: نجرّبوها بـ
isset($_POST["tva"]). - الـ boutons radio اللي عندهم نفس الـ
nameيبعثو الـvalueمتاع اللي تختار؛ والقائمة<select name="ville">تبعث الـvalueمتاع الاختيار.
انتبه : الاسم في $_POST["..."] لازمو يكون بالضبط الـ attribut name متاع الـ champ. وإلّا PHP يكتب « Warning: Undefined array key ».
بـ PHP
شغّل السيت، عمّر الـ formulaire وابعثو: traitement.php تاخو الـ champs. زيد champ ville للـ formulaire وورّيه في traitement.php.
<?php
$nom = $_POST["nom"];
$prenom = $_POST["prenom"];
echo "<h1>Merci $prenom $nom</h1>";
echo '<p><a href="index.html">Retour au formulaire</a></p>';
?>
الدرس 31.2 : نثبّتو في المعطيات
الـ serveur عمرو ما يثق في اللي يوصلو: الـ champ ينجم يكون فارغ، فيه espaces، ولا نص في بلاصة عدد. نثبّتو قبل ما نستعملو.
trim($ch)تنحّي الـ espaces في الأوّل والآخر.empty($x)صحيحة كان$xفارغ (ولا"0").is_numeric($x): هل هو عدد؟strlen($ch): طول chaîne.- الـ formulaire ينجم يتبعث لنفس الصفحة متاعو (
action=""): نجرّبو وقتهاisset($_POST["envoyer"])باش نعرفو كان تبعث توّا.
<?php
$prenom = trim($_POST["prenom"]);
$note = $_POST["note"];
if (empty($prenom)) {
echo "Le prénom est obligatoire";
} elseif (!is_numeric($note)) {
echo "La note doit être un nombre";
} else {
echo "Merci $prenom";
}
?>
نصيحة : الـ JavaScript يثبّت زادا في الـ formulaire قبل ما يتبعث، أما ينجم يتعدّى: التثبيت بـ PHP، في الـ serveur، هو اللي يحسب.
بـ PHP
هوني الـ formulaire يتبعث لنفس الصفحة متاعو. ابعثو فارغ، وبعد بعدد مكتوب بالحروف، وبعد بالصحيح.
<!DOCTYPE html>
<html lang="fr">
<head><meta charset="utf-8"><title>Contrôle</title></head>
<body>
<form action="" method="post">
<p>Prénom : <input type="text" name="prenom"></p>
<p>Note : <input type="text" name="note"></p>
<p><input type="submit" name="envoyer" value="Envoyer"></p>
</form>
<?php
if (isset($_POST["envoyer"])) {
$prenom = trim($_POST["prenom"]);
$note = $_POST["note"];
if (empty($prenom)) {
echo "<p>Le prénom est obligatoire</p>";
} elseif (!is_numeric($note)) {
echo "<p>La note doit être un nombre</p>";
} else {
echo "<p>Merci $prenom</p>";
}
}
?>
</body>
</html>
الدرس 31.3 : برشا صفحات
ندخّلو fichier: require
require "fonctions.php"; يدخّل fichier PHP آخر في البلاصة هاذيكا: الـ fonctions والمتغيّرات متاعو يوليو ينجمو يتستعملو. نحطّو فيه اللي يخدم في برشا صفحات (الاتصال بالـ base، الـ fonctions المشتركة). كان الـ fichier ناقص، الصفحة توقف.
روابط بـ paramètres
<?php
echo '<a href="detail.php?id=3">Voir le produit 3</a>';
?>
الرابط ينجم يهزّ قيم: detail.php?id=3. الصفحة detail.php تقراهم في $_GET["id"]. هكّا قائمة توصّل للصفحة متاع كل عنصر.
نحوّلو: header
<?php
header("Location: accueil.php");
exit;
?>
انتبه : header("Location: …") يبعث المتصفّح لصفحة أخرى. حطّ exit; بعدو مباشرة: وإلّا باقي السكريبت يتخدم زادا.
بـ PHP
شغّل السيت: index.php تستعمل fonction من fonctions.php، وكل رابط يحلّ detail.php بالـ id متاعو. زيد منتوج للجدول متاع fonctions.php.
<?php
require "fonctions.php";
echo "<h1>Nos produits</h1>";
foreach (produits() as $id => $p) {
echo '<p><a href="detail.php?id=' . $id . '">' . $p . '</a></p>';
}
?>
تدرّب مجانًا
كل درس فيه 3 تمارين مجانية مع تلميحات باش تطبّق الفصل هذا مع هنّيبوت.
← الفصل اللي قبل : PHP: أوّل السكريبتات · الفصل اللي بعد : PHP و MySQL →
كل الفصول · شوف فروض 2 تكنولوجيا المصلّحة
الدروس كتبناها لـ Mission Carthage على أساس البرنامج الرسمي. الأستاذ متاعك يبقى المرجع.