前提・実現したいこと
今登録ページで入力された情報をDBに登録し、ログインページで取得し、メインページで名前を表示していますが、もっと簡単でわかりやすくするにはどうするべきですか?
該当のソースコード
login.php
1if(filter_input(INPUT_SERVER,'REQUEST_METHOD') === 'POST'){ 2 $name = filter_input(INPUT_POST, 'name'); 3 $mail = filter_input(INPUT_POST, 'mail'); 4 $pass = filter_input(INPUT_POST, 'pass'); 5 6 if($name === ''){ 7 $error['name'] = 'ユーザー名は入力必須です。'; 8 } 9 if(strlen($name) > 10){ 10 $error['name'] = '名前は10文字以内です。'; 11 } 12 if($mail === ''){ 13 $error['mail'] = 'メールアドレスは入力必須です。'; 14 } 15 if($pass === ''){ 16 $error['pass'] = 'パスワードは入力必須です。'; 17 } 18 if(!empty($pass) && strlen($pass) < 5){ 19 $error['pass'] = 'パスワードは5文字以上です。'; 20 } 21 22 if(count($error) === 0){ 23 24 try{ 25 26 $pdo = connect(); 27 28 $stmt = $pdo->prepare('SELECT * FROM users WHERE name = ? AND mail = ?'); 29 $params = []; 30 $params[] = $name; 31 $params[] = $mail; 32 33 $stmt->execute($params); 34 35 $rows = $stmt->fetchAll(); 36 37 foreach($rows as $row){ 38 $hash = $row['pass']; 39 $NAME = $row['name']; 40 41 if(password_verify($pass,$hash)){ 42 session_regenerate_id(true); 43 $_SESSION['login'] = $NAME; 44 header('Location:main.php'); 45 return; 46 } 47 } 48 49 }catch(PDOException $e){ 50 $error['login'] = 'ログインに失敗しました。'; 51 echo $e->getMessage(); 52 // die(); 53 } 54 } 55} 56
main.php
1<p>ようこそ<?php echo h($_SESSION['login'], ENT_QUOTES); ?>さん</p>
回答2件
あなたの回答
tips
プレビュー