Как правильно реализовать отправку $_POST данных и возвращение ошибки? В общем, есть маленькая mvc, пишу на ней. Сейчас пишу регистрацию, и возникло "размышление": Метод register принимает введенные данные с инпута - что мне дальше делать? Ну, т.е - проверить на корректность веденных данных и пустоту, и если все норм - передаю данные в метод(модель) reg и там уже делаю все что нужно(добавление в бд) или же, лучше передавать веденные данные в модель(сразу) и там уже проверять, если ошибка - возвращаю return false и проверяю if(!Auth::reg($_POST['login'].....) $this->error('Не верно введены данные') ? И еще, как лучше будет делать условие if($_POST['submit']) ?
Для реализации отправки данных через $_POST метод и возвращения ошибок в маленьком MVC проекте, можно следовать следующему подходу:
В методе контроллера register принимать данные из $_POST массива и проводить базовую проверку на корректность и заполненность данных.Если данные прошли базовую проверку, передавать их в метод модели reg для дальнейшей обработки (например, добавление в базу данных).В методе модели проводить дополнительную проверку данных (например, уникальность логина), и при наличии ошибок возвращать false.В контроллере проверять результат выполнения метода модели и в случае ошибки выводить сообщение об ошибке с помощью метода error.
Пример:
// Контроллер public function register() { if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit'])) { $login = $_POST['login']; $password = $_POST['password']; // Проведем базовую проверку данных if (!empty($login) && !empty($password)) { $result = $this->model->reg($login, $password); if (!$result) { $this->error('Ошибка при регистрации'); } } else { $this->error('Не все данные были заполнены'); } } } // Модель public function reg($login, $password) { // Проверяем уникальность логина, например, в базе данных if ($this->isLoginUnique($login)) { // Добавляем данные пользователя в базу данных // Возвращаем true в случае успешной регистрации return true; } else { // Возвращаем false в случае ошибки return false; } }
Что касается условия if($_POST['submit']), его следует проверять для определения того, что была отправлена форма. В данном случае, проверка if(isset($_POST['submit'])) будет более надежной, так как она будет true только в случае нажатия кнопки submit на форме.
Для реализации отправки данных через $_POST метод и возвращения ошибок в маленьком MVC проекте, можно следовать следующему подходу:
В методе контроллера register принимать данные из $_POST массива и проводить базовую проверку на корректность и заполненность данных.Если данные прошли базовую проверку, передавать их в метод модели reg для дальнейшей обработки (например, добавление в базу данных).В методе модели проводить дополнительную проверку данных (например, уникальность логина), и при наличии ошибок возвращать false.В контроллере проверять результат выполнения метода модели и в случае ошибки выводить сообщение об ошибке с помощью метода error.Пример:
// Контроллерpublic function register() {
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['submit'])) {
$login = $_POST['login'];
$password = $_POST['password'];
// Проведем базовую проверку данных
if (!empty($login) && !empty($password)) {
$result = $this->model->reg($login, $password);
if (!$result) {
$this->error('Ошибка при регистрации');
}
} else {
$this->error('Не все данные были заполнены');
}
}
}
// Модель
public function reg($login, $password) {
// Проверяем уникальность логина, например, в базе данных
if ($this->isLoginUnique($login)) {
// Добавляем данные пользователя в базу данных
// Возвращаем true в случае успешной регистрации
return true;
} else {
// Возвращаем false в случае ошибки
return false;
}
}
Что касается условия if($_POST['submit']), его следует проверять для определения того, что была отправлена форма. В данном случае, проверка if(isset($_POST['submit'])) будет более надежной, так как она будет true только в случае нажатия кнопки submit на форме.