私のmysqlデータベースには、自動インクリメント列であるuserIDという主キー列を持つusersというテーブルがあります。ログインしているユーザーのこの列の値をセッション配列内に取得したいと思います。現在の配列は次のようになります。
array(4) { ["loggedIn"]=> bool(true) ["username"]=> string(9) "user" ["password"]=> string(3) "123" ["userID"]=> NULL }
これは私のログインフォームのコードです:
session_start();
$usr = new Users;
$usr->storeFormValues( $_POST );
if( $usr->userLogin() ) {
header( 'Location: cursos.php' ) ;
$_SESSION["loggedIn"] = true;
$_SESSION['username'] = $_POST['username'];
$_SESSION['password'] = $_POST['password'];
$_SESSION['userID'] = $_POST['userID'];
これは私のログイン機能です:
public function userLogin() {
$success = false;
try{
$con = new PDO( DB_DSN, DB_USERNAME, DB_PASSWORD );
$con->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
$sql = "SELECT * FROM users WHERE username = :username AND password = :password LIMIT 1";
$stmt = $con->prepare( $sql );
$stmt->bindValue( "username", $this->username, PDO::PARAM_STR );
$stmt->bindValue( "password", hash("sha256", $this->password . $this->salt), PDO::PARAM_STR );
$stmt->execute();
$valid = $stmt->fetchColumn();
if( $valid ) {
$success = true;
}
$con = null;
return $success;
必要なのは、セッション配列の最後に、["userID"]=>
ログに記録されたユーザーのテーブル ユーザーから列 userID の値を取得することです。これはどのように達成できますか?誰かが助けてくれれば幸いです。ありがとうございました。