Tôi đã là một nhà phát triển PHP trong một thời gian nhưng cho đến hôm nay tôi không tìm thấy một cách đơn giản để xử lý (còn gọi là chuẩn hóa, khử trùng, xác nhận, điền và hiển thị biểu mẫu và các lỗi trường tương ứng).Làm cách nào để đơn giản hóa việc xử lý biểu mẫu bằng PHP?
Tôi biết rằng hầu hết các khung công tác PHP ngày nay làm cho công việc này dễ dàng hơn nhưng bằng cách nào đó tôi không cảm thấy như chuyển tất cả mã của tôi sang một trong các khung này và tôi không thể hiểu được cách xác thực biểu mẫu được triển khai trong Django Ví dụ (tôi biết, đó là Python nhưng tôi thực sự thích cách tiếp cận của họ), vì vậy tôi mặc dù cách tốt nhất để tôi đăng bài ở đây là cách tôi xử lý một biểu mẫu đơn giản và có thể các bạn có thể chỉ cho tôi theo hướng tốt nhất.
<?php
// sample controller
class _sample extends framework
{
// sample action
function contact()
{
if ($this->Is->Post() === true)
{
$errors = array();
if ($this->Is->Set($_POST['name']) === false)
{
$errors['name'] = 'Please fill in your name.';
}
if (($this->Is->Email($_POST['email']) === false) || ($this->Is->Set($_POST['email']) === false))
{
$errors['email'] = 'Please fill in your email address.';
}
if (($this->Is->Phone($_POST['contact']) === false) && ($this->Is->Mobile($_POST['contact']) === false))
{
$errors['contact'] = 'Please fill in your phone (or cell phone) number.';
}
if ($this->Is->Set($_POST['message']) === false)
{
$errors['message'] = 'Please type a message';
}
// no errors, it's valid!
if (empty($errors) === true)
{
// do stuff and redirect to "success"/"thank you" page
}
// load the form view, and let it display the errors
// automatically prefill fields with $_POST values
else
{
$this->View('contact_form', $errors);
}
}
// load the form view for the first time
else
{
$this->View('contact_form');
}
}
}
?>
Như bạn có thể thấy, đây được coi là một hình thức liên lạc đơn giản tuy nhiên phải mất cuộc sống ra khỏi tôi để xác nhận nó, tôi đã được tìm kiếm vào một số mẫu thiết kế (Observer, Nhà máy) nhưng tôi không cảm thấy tự tin nếu và bằng cách nào tôi nên thực hiện chúng.
Nếu bạn cảm thấy như bạn có thời gian, bạn có thể xem cách Django làm điều đó! –