الجزء السادس – التعامل مع نماذج البيانات (Forms) في PHP – سلسلة FSWD – PHP

نموذج البيانات (Form) هو أداة تتيح للمستخدمين إدخال البيانات (مثل النصوص، الأرقام، إلخ) التي يتم إرسالها إلى الخادم (Server) لمعالجتها. في PHP، يمكننا استخدام النماذج للتفاعل مع البيانات المدخلة من قبل المستخدمين باستخدام الطرق المختلفة مثل $_GET
و $_POST
.
أولاً: إرسال البيانات باستخدام Forms
هناك طريقتان رئيسيتان لإرسال البيانات من HTML إلى PHP:
-
الطريقة GET (
$_GET
): تُستخدم عندما تكون البيانات صغيرة ولا تُعتبر حساسة. -
الطريقة POST (
$_POST
): تُستخدم عندما تكون البيانات أكبر أو حساسة (مثل كلمات المرور).
1. إرسال البيانات باستخدام $_GET
طريقة GET تُستخدم في الغالب عندما نريد إرسال البيانات عبر الـ URL، مثل البحث في محرك بحث أو تصفية قائمة.
مثال:
HTML Form (index.html)
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>نموذج GET</title>
</head>
<body>
<h2>إرسال البيانات باستخدام GET</h2>
<form action="process.php" method="get">
<label for="name">الاسم:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="age">العمر:</label>
<input type="text" id="age" name="age" required><br><br>
<input type="submit" value="إرسال">
</form>
</body>
</html>
PHP Form Handler (process.php)
<?php
if (isset($_GET['name']) && isset($_GET['age'])) {
$name = $_GET['name'];
$age = $_GET['age'];
echo "الاسم المدخل: $name <br>";
echo "العمر المدخل: $age <br>";
} else {
echo "الرجاء إدخال جميع البيانات.";
}
?>
شرح:
-
في هذا المثال، أرسلنا البيانات عبر الطريقة
GET
إلىprocess.php
. -
في
process.php
استخدمنا$_GET
للحصول على القيم التي تم إرسالها من النموذج. -
دالة
isset()
تُستخدم للتحقق مما إذا كانت البيانات موجودة أم لا.
2. إرسال البيانات باستخدام $_POST
طريقة POST تُستخدم لإرسال البيانات من النماذج بشكل آمن، حيث تُرسل البيانات في الجسم (body) وليس في الـ URL.
مثال:
HTML Form (index.html)
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>نموذج POST</title>
</head>
<body>
<h2>إرسال البيانات باستخدام POST</h2>
<form action="process.php" method="post">
<label for="name">الاسم:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="email">البريد الإلكتروني:</label>
<input type="email" id="email" name="email" required><br><br>
<input type="submit" value="إرسال">
</form>
</body>
</html>
PHP Form Handler (process.php):
<?php
if (isset($_POST['name']) && isset($_POST['email'])) {
$name = $_POST['name'];
$email = $_POST['email'];
echo "الاسم المدخل: $name <br>";
echo "البريد الإلكتروني المدخل: $email <br>";
} else {
echo "الرجاء إدخال جميع البيانات.";
}
?>
شرح:
-
في هذا المثال، أرسلنا البيانات عبر الطريقة
POST
إلىprocess.php
. -
في
process.php
استخدمنا$_POST
للحصول على القيم المرسلة.
ثانيًا: التحقق من البيانات (Validation)
من الضروري التحقق من صحة البيانات المدخلة من قبل المستخدم قبل معالجتها. في PHP، يمكننا استخدام دوال مثل isset()
, empty()
, is_numeric()
, وغيرها للتحقق من صحة المدخلات.
1. استخدام isset()
للتحقق من وجود البيانات
دالة isset()
تُستخدم للتحقق مما إذا كانت قيمة المتغير موجودة وتم تعيينها
<?php
if (isset($_POST['name'])) {
echo "الاسم المدخل: " . $_POST['name'];
} else {
echo "الاسم غير موجود.";
}
?>
2. استخدام empty()
للتحقق من كون المتغير فارغًا
دالة empty()
تُستخدم للتحقق مما إذا كان المتغير فارغًا (أي لا يحتوي على قيمة أو يحتوي على قيمة افتراضية مثل ""
أو 0
).
<?php
if (!empty($_POST['name'])) {
echo "الاسم المدخل: " . $_POST['name'];
} else {
echo "الرجاء إدخال الاسم.";
}
?>
3. التحقق من نوع البيانات باستخدام is_numeric()
دالة is_numeric()
تُستخدم للتحقق مما إذا كانت القيمة رقمًا
<?php
if (isset($_POST['age'])) {
$age = $_POST['age'];
if (is_numeric($age)) {
echo "العمر المدخل هو: $age";
} else {
echo "العمر يجب أن يكون رقمًا.";
}
}
?>
4. التحقق من البريد الإلكتروني باستخدام filter_var()
يمكننا أيضًا استخدام دالة filter_var()
للتحقق من صحة البريد الإلكتروني.
<?php
if (isset($_POST['email'])) {
$email = $_POST['email'];
if (filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "البريد الإلكتروني المدخل: $email";
} else {
echo "البريد الإلكتروني غير صالح.";
}
}
?>
مثال كامل: نموذج مع التحقق من البيانات
HTML Form (index.html):
<!DOCTYPE html>
<html lang="ar">
<head>
<meta charset="UTF-8">
<title>نموذج التحقق من البيانات</title>
</head>
<body>
<h2>نموذج التحقق من البيانات</h2>
<form action="process.php" method="post">
<label for="name">الاسم:</label>
<input type="text" id="name" name="name" required><br><br>
<label for="age">العمر:</label>
<input type="text" id="age" name="age" required><br><br>
<label for="email">البريد الإلكتروني:</label>
<input type="email" id="email" name="email" required><br><br>
<input type="submit" value="إرسال">
</form>
</body>
</html>
PHP Form Handler (process.php):
<?php
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$age = $_POST['age'];
$email = $_POST['email'];
// التحقق من أن البيانات ليست فارغة
if (empty($name) || empty($age) || empty($email)) {
echo "الرجاء تعبئة جميع الحقول.";
} else {
// التحقق من أن العمر رقم
if (!is_numeric($age)) {
echo "العمر يجب أن يكون رقمًا.";
} else {
// التحقق من صحة البريد الإلكتروني
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
echo "البريد الإلكتروني غير صالح.";
} else {
echo "الاسم: $name <br>";
echo "العمر: $age <br>";
echo "البريد الإلكتروني: $email <br>";
}
}
}
}
?>
شرح المثال:
-
النموذج: يحتوي النموذج على ثلاثة حقول: الاسم، العمر، والبريد الإلكتروني.
-
التحقق: في
process.php
، نتحقق من أن الحقول ليست فارغة باستخدامempty()
، وأن العمر رقم باستخدامis_numeric()
، وأن البريد الإلكتروني صالح باستخدامfilter_var()
.
💰 هل تبحث عن طريقة سهلة للربح من الإنترنت؟
ابدأ الآن واكسب أموالًا حقيقية من خلال خطوات بسيطة! 🌟
اضغط وابدأ الربح