1

私は PHP フレームワークを使用して多くの作業を行っていますが、単純なログイン システムをゼロから構築していて、困惑しています。データベースクエリに PDO を使用しています。$_SERVER['PHP_SELF'] を使用して同じページを指す単純なログイン フォームがあります。それから私はこのコードを持っています...

<?php
//LOG IN
if($_POST['login_submit']){
  $username = $_POST['username'];
  $password = $_POST['password'];
  //Query
  $database->query("SELECT * FROM users WHERE username = :username AND password = :password");
  $database->bind(':username',$username);
  $database->bind(':password',$password);
  $rows = $database->resultset();
  $count = count($rows);
  if($count > 0){
    session_start();
    //Assign session variables
    $_SESSION['username']   = $username;
    $_SESSION['password']   = $password;
    $_SESSION['logged_in']  = 1;
} else {
   $login_msg[] = 'Sorry, that login does not work';
}
}

ログインすると、問題ありません。セッションを開始します。しかし、別のページに移動するとすぐにセッションが中断されます。session_start() が if($_POST['login_submit']) 状態にある可能性があると思われます。しかし、私は以前にこのようにやったことがあると断言できます。どんな助けでも素晴らしいでしょう..ありがとう!

4

1 に答える 1

1

コードの最初の行...

if($_POST['login_submit']){

ログインフォームを送信した場合のみ、セッションが開始されます。

そして、他のすべてのページでは、session_start() を呼び出す必要があります ...

于 2013-09-07T20:24:32.017 に答える