در پستهای قبلی با فرم آشنا شدید.
در کدهای بالا دو فایل داشتیم. فایل اول حاوی فرم بود و فایل دوم که اطلاعات فرم به آن پاس داده میشد و با کدهای php روی آن میشد کار کرد.
حالا می خواهیم هر دو کار را در یک فایل انجام دهیم:
PHP:
<!DOCTYPE HTML>
<html>
<head>
</head>
<body>
<?php
// define variables and set to empty values
$name = $email = "";
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
}
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
?>
<h2>PHP Form Validation Example</h2>
<form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>">
Name: <input type="text" name="name">
<br><br>
E-mail: <input type="text" name="email">
<br><br>
<input type="submit" name="submit" value="Submit">
</form>
<?php
echo "<h2>Your Input:</h2>";
echo $name;
echo "<br>";
echo $email;
echo "<br>";
?>
</body>
</html>
فایل بالا را با هر اسمی می توانید ذخیره کنید چون به فایل دیگر پاس نمی دهد و خودش همه کارها را انجام می دهد. ولی پسوند باید php باشد چون حاوی کدهای php هم هست.
شرح کدها:
در کد بالا دو متغیر به نامهای نام و ایمیل تعریف کرده ایم و آنها را خالی مقدار دهی کرده ایم.
PHP:
if ($_SERVER["REQUEST_METHOD"] == "POST")
کد بالا اصل ماجرا است چون وقتی فایل به خودش پاس می دهد این قسمت فاز دوم است.یعنی اگر بعد پاس دادن باشد کدهای بعد شرط فوق اجرا می شود. یعنی این قسمت:
PHP:
$name = test_input($_POST["name"]);
$email = test_input($_POST["email"]);
در کد بالا می بینید که متغیرهایی که ساخته بودیم و خالی کرده بودیم را با مقادیر ارسالی فرم پر کرده. البته بعد پاکسازی با تابع test_input.
تابع test_input را در خطوط بعدی خودمان تعریف کردیم و از سه تابع php برای پاکسازی ورودی ها استفاده می کند:
PHP:
function test_input($data) {
$data = trim($data);
$data = stripslashes($data);
$data = htmlspecialchars($data);
return $data;
}
در کد فوق می بینید چطور تابع تعریف شده. نامی برایش در نظر گرفته شده و بعد کلمه فانکشن نوشته شده و 3 بار با استفاده از توابع php ورودی فرم پاکسازی شده.
خودتان می توانید نام توابع فوق را سرچ کنید و بفهمید چه تغییری روی ورودی می دهد.
ادامه در پست بعد.....