PHPでログイン画面を作っています。以下のようにしても$_SESSION['staff_name'].'さんログイン中'のところで名前が出ません。エラーは出ていません。どこかおかしいでしょうか。
staff_login_check.php
1<?php 2require_once('../helpers/db_helper.php'); 3 4if($_SERVER['REQUEST_METHOD']==='POST'){ 5$staff_code=get_post('code'); 6$staff_pass=get_post('pass'); 7$dbh=get_db_connect(); 8$staff_name=find_staff_name($dbh, $staff_code, $staff_pass); 9} 10<!DOCTYPE html> 11<body> 12<?php if($staff_name===false):?> 13<p>スタッフコードかパスワードが間違っています。</p> 14<?php else: 15session_start(); 16$_SESSION['login']=1; 17$_SESSION['staff_code']=$staff_code; 18$_SESSION['staff_name']=$staff_name; 19header('Location:staff_top.php'); 20exit(); 21endif; 22?> 23</body> 24
staff_top.php
1<?php 2require_once('../helpers/db_helper.php'); 3 4session_start(); 5session_regenerate_id(true); 6if(isset($_SESSION['login'])==false){ 7echo'ログインされていません。<br>'; 8echo'<a href="../staff_login/staff_login.php">ログイン画面へ</a>'; 9exit(); 10}else{ 11echo $_SESSION['staff_name'].'さんログイン中'.'<br><br>'; 12}
db_helper.php
1function get_post($key){ 2 if(isset($_POST[$key])){ 3 $var=trim($_POST[$key]); 4 return $var; 5 } 6 } 7 8function find_staff_name($dbh, $staff_code, $staff_pass){ 9 $sql="SELECT * FROM mst_staff WHERE code=:code"; 10 $stmt=$dbh->prepare($sql); 11 $stmt->bindValue(':code', $staff_code, PDO::PARAM_INT); 12 $stmt->execute(); 13 if($stmt->rowCount>0){ 14 $rec=$stmt->fetch(PDO::FETCH_ASSOC); 15 if(password_verify($staff_pass, $rec['password'])){ 16 return $rec['name']; 17 }else{ 18 return false; 19 } 20 return false; 21 } 22}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。