Как правильно реализовать отправку $_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 на форме.