Для школьного проекта нам нужно создать php-проект, содержащий регистрационную форму, написанную на PHP на ООП. Но я застрял с обработкой ошибок моей формы.
Следующие работы:
- Я сделал форму в моем файле register.php
- Я отправляю данные на мой
Файл user.class.php
- Проверяет форму в моей функции .inc.php
файл благодаря моей
canRegister()
функции
Это отлично работает; если форма не заполнена правильно, она не добавит данные в мою базу данных. Проблема, с которой я столкнулся, связана с исключениями в моем интерфейсе (register.php).
Таким образом, Исключение в настоящее время перехвачено в моем User.class.php, но я не знаю, как я могу «перенести» эти данные из моего класса в мой файл register.php, так как данные снова находятся в ситуации try catch .
Файл Functions.inc.php:
{
if ($item1 != $item2) {
throw new Exception('Passwords are not matching');
return false;
}
return true;
}
function canRegister($email, $password1, $password2)
{
try {
isEqual($password1, $password2);
} catch (Exception $e) {
return $e;
}
}
Файл User.class.php:
public function register()
{
$password = Security::hash($this->password);
if (canRegister($this->email, $this->password, $this->passwordConfirmation)) {
try {
$conn = Db::getInstance();
$statement = $conn->prepare('INSERT INTO user(firstName, lastName, userName, email, password) values (:firstName, :lastName, :userName, :email, :password)');
$statement->bindParam(':firstName', $this->firstName);
$statement->bindParam(':lastName', $this->lastName);
$statement->bindParam(':userName', $this->userName);
$statement->bindParam(':email', $this->email);
$statement->bindParam(':password', $password);
$result = $statement->execute();
return $result;
} catch (Exception $e) {
return false;
}
} else {
}
}
файл register.php:
if (!empty($_POST)) {
$user = new User();
$user->setFirstName($_POST['firstName']);
$user->setLastName($_POST['lastName']);
$user->setUserName($_POST['userName']);
$user->setEmail($_POST['email']);
$user->setPassword($_POST['password']);
$user->setPasswordConfirmation($_POST['passwordConfirmation']);
if ($user->register()) {
$_SESSION['user'] = $user->getEmail();
//header('location: index.php');
} else {
$result = $e->getMessage();
}
}
Я ожидаю получить результат в моей переменной $ result, чтобы я мог передать ее моему внешнему интерфейсу.
Заранее спасибо,
Wannes