Complete Form Example

این مثال یک فرم کامل با فیلدهای Name, E-mail, Website, Comment, Gender است که:

  • فیلدهای ضروری (required fields) بررسی می‌شوند.

  • ایمیل و URL اعتبارسنجی می‌شوند.

  • ورودی‌ها امن (sanitize) می‌شوند.

🔹 کد کامل

<!DOCTYPE html> <html> <head> <style> .error {color: red;} </style> </head> <body> <?php // تعریف متغیرها و پیام خطا $name = $email = $website = $comment = $gender = ""; $nameErr = $emailErr = $websiteErr = $genderErr = ""; // تابع پاکسازی داده‌ها function test_input($data) { $data = trim($data); // حذف فاصله‌ها $data = stripslashes($data); // حذف اسلش‌ها $data = htmlspecialchars($data); // جلوگیری از XSS return $data; } // بررسی ارسال فرم if ($_SERVER["REQUEST_METHOD"] == "POST") { // ✅ نام if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = test_input($_POST["name"]); if (!preg_match("/^[a-zA-Z-' ]*$/", $name)) { $nameErr = "Only letters and spaces allowed"; } } // ✅ ایمیل if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = test_input($_POST["email"]); if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; } } // ✅ وبسایت if (empty($_POST["website"])) { $website = ""; } else { $website = test_input($_POST["website"]); if (!filter_var($website, FILTER_VALIDATE_URL)) { $websiteErr = "Invalid URL format"; } } // ✅ نظر if (!empty($_POST["comment"])) { $comment = test_input($_POST["comment"]); } // ✅ جنسیت if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = test_input($_POST["gender"]); } } ?> <h2>PHP Complete Form Example</h2> <p><span class="error">* required field</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]); ?>"> Name: <input type="text" name="name" value="<?php echo $name; ?>"> <span class="error">* <?php echo $nameErr; ?></span> <br><br> E-mail: <input type="text" name="email" value="<?php echo $email; ?>"> <span class="error">* <?php echo $emailErr; ?></span> <br><br> Website: <input type="text" name="website" value="<?php echo $website; ?>"> <span class="error"><?php echo $websiteErr; ?></span> <br><br> Comment: <textarea name="comment" rows="5" cols="40"><?php echo $comment; ?></textarea> <br><br> Gender: <input type="radio" name="gender" value="female" <?php if ($gender=="female") echo "checked"; ?>> Female <input type="radio" name="gender" value="male" <?php if ($gender=="male") echo "checked"; ?>> Male <input type="radio" name="gender" value="other" <?php if ($gender=="other") echo "checked"; ?>> Other <span class="error">* <?php echo $genderErr; ?></span> <br><br> <input type="submit" value="Submit"> </form> <?php // نمایش داده‌های کاربر بعد از اعتبارسنجی if ($_SERVER["REQUEST_METHOD"] == "POST" && !$nameErr && !$emailErr && !$websiteErr && !$genderErr) { echo "<h2>Your Input:</h2>"; echo "Name: $name<br>"; echo "Email: $email<br>"; echo "Website: $website<br>"; echo "Comment: $comment<br>"; echo "Gender: $gender<br>"; } ?> </body> </html>

🔹 عملکرد

  1. اگر کاربر فرم را خالی ارسال کند → پیام خطا کنار هر فیلد نمایش داده می‌شود.

  2. اگر ایمیل یا URL نادرست باشد → پیام خطای معتبر نبودن نشان داده می‌شود.

  3. وقتی همه درست باشند → اطلاعات کاربر در پایین فرم نمایش داده می‌شود.

✅ نکات مهم

  • از ()test_input برای امن کردن ورودی‌ها استفاده می‌کنیم.

  • فیلدهای اجباری با * مشخص شده‌اند.

  • اعتبارسنجی ایمیل با filter_var(..., FILTER_VALIDATE_EMAIL)

  • اعتبارسنجی URL با filter_var(..., FILTER_VALIDATE_URL)