ログインフォームをMVCモデルで作成しました.
こちらはViewのファイルになっています。
Adminとの振り分けなど、結構工夫することがあったけど、なんとか完成。
PHPというコードも結構慣れてきたこの頃ですがバリバリ掛けるかと言えばそうとも言えず・・・
まだまだ道のりは遠いですね・・・
<?php
require_once(ROOT_PATH .’Controllers/UserController.php’);
session_start();
$user = new UserController();
$errors = [];
// ログイン処理
if ($_SERVER[‘REQUEST_METHOD’] === ‘POST’) {
$email = $_POST[’email’];
$password = $_POST[‘password’];
if (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
$errors[] = “有効なメールアドレスを入力してください。”;
}
if (strlen($password) < 9) {
$errors[] = “パスワードは9文字以上で入力してください。”;
}
if (empty($errors)) {
$params = $user->login();
error_reporting(0);
if (password_verify($password, $params[‘password’])) {
$role = $user->checkUserRole($email);
if ($role === 0) {
$_SESSION[‘country_id’] = $params[‘country_id’];
header(“Location: index2.php”); // 一般ユーザーの場合
exit;
} elseif ($role === 1) {
header(“Location: index.php”); // Adminユーザーの場合
exit;
}
}else{
$errors[] = “メールアドレスかパスワードが間違っています。”;
}
}
}
?>
<!DOCTYPE html>
<html lang=”ja”>
<head>
<meta charset=”UTF-8″>
<meta http-equiv=”X-UA-Compatible” content=”IE=edge”>
<meta name=”viewport” content=”width=device-width, initial-scale=1.0″>
<title>Worldcup ログインページ</title>
<link rel=”stylesheet” type=”text/css” href=”/css/style.css”>
<link rel=”stylesheet” type=”text/css” href=”/css/base.css”>
</head>
<body>
<div class=”login1″>ログインページ</div></br></br>
<?php if(count($errors) > 0):?>
<?php foreach($errors as $error):?>
<p class=”error”></p><?php echo $error ?></p>
<?php endforeach ?>
<?php endif ?>
<div class=”formbox”>
<form method=”POST” action=””>
<label class=”login3″>emailを入力してください。</label></br>
<input type=”text” name=”email” value=”” class=”inputform”></br></br>
<label class=”login3″>passwordを入力してください。</label></br>
<input type=”password” name=”password” value=”” class=”inputform”></br></br>
<input type=”submit” name=”login” value=”ログイン” class=”login_bottom”>
</form>
<div>
</br><a href=”/newcreate.php”>新規登録をする</a>
</div>
</div>
</body>
</html>