第128回:PHPでログイン機能開発。ver6.0
こんにちは。NGE16です。
前回に引き続き、エラー処理を行なっていきましょう。
errorsオブジェクトの作成
Controller.phpにエラー情報を格納するため、_errorsオブジェクトを作成してプライベートプロパティを宣言します。
private $_errors;
初期化を行うために、以下の記述を加えていきます。
public function __construct() {
$this->_errors = new \stdClass();
}
setErrorsメソッドの処理内容をつくっていくために、以下の記述を加えていきます。
protected function setErrors($key, $error) {
$this->_errors->$key = $error;
}
getErrorsメソッドの処理内容をつくっていくために、以下の記述を加えていきます。
public function getErrors($key) {
return isset($this->_errors->$key) ? $this->_errors->$key : '';
}
hasErrorメソッドの処理内容をつくっていくために、以下の記述を加えていきます。
protected function hasError() {
return !empty(get_object_vars($this->_errors));
}
Webブラウザで確認を行い、メールアドレスが間違っていると、このような表示になります。
メールアドレスが正しいが、パスワードが無い場合は、このような表示になります。
valuesオブジェクトの作成
Controller.phpにViewと値を受け渡すために、_valuesオブジェクトを作成してプライベートプロパティを宣言します。
private $_values;
初期化を行うために、以下の記述を加えていきます。
$this->_values = new \stdClass();
setValuesメソッドの処理内容をつくっていくために、以下の記述を加えていきます。
protected function setValues($key, $value) {
$this->_values->$key = $value;
}
getValuesメソッドの処理内容をつくっていくために、以下の記述を加えていきます。
public function getValues() {
return $this->_values;
}
valuesオブジェクトにemailの値を入れるために、Signup.phpに以下の記述を加えていきます。
$this->setValues('email', $_POST['email']);
viewで表示するために、signup.phpに以下の記述を加えていきます。
<input type="text" name="email" placeholder="email" value="<?= isset($app->getValues()->email) ? h($app->getValues()->email) : ''; ?>">
Webブラウザで、メールアドレスの入力後にエラーが発生してもメールアドレスは表示されたままであることを確認します。
今回は以上になります。
次回は、CSRF対策とユーザーの新規登録について進めていきたいと思います。
"PHPでログイン機能開発。ver6.0" へ続く。
この記事が気に入ったらサポートをしてみませんか?