私は問題がありますが、私はちょっと調べましたが、私の特別なケースで私を助けるものは何も見つかりませんでした。PHPのログインとセッションの確立
私はlog()をログに記録するための小さな関数を作成しましたが、変数$ usernameと$ passwordを変数に入れて、すべて動作します。
問題は、昨夜、セッションの経過後にコードの文字列を挿入したり、setcookieなどのコードを挿入したりして、ユーザーの接続が長時間続くことを信じていたためです私は専門家ではない)。
今朝はセッションがタイムリーに行われましたが、新しいログインが行われましたが、データは渡されません。 (したがって、ユーザーアカウントボックスはユーザー名などで更新されません)。
私はいくつかのコード投稿します:
class User {
private $db;
private $username;
private $password;
/**
* Construct
* @param type $pdo
*/
function __construct($pdo){
$this->db = $pdo;
}
public function login($username, $password){
$this->db->query("SELECT * FROM users WHERE username = :username AND status = :status LIMIT 1");
$this->db->bind(':username', $username);
$this->db->bind(':status', 1);
$row = $this->db->single();
$count = $this->db->rowCount();
if ($count > 0) {
if (password_verify($password, $row['password'])) {
$_SESSION['session'] = [
'id' => $row['id'],
'username' => $row['username'],
'email' => $row['email'],
];
return true;
} else {
return false;
}
}
}
public function isLoggedIn() {
if (isset($_SESSION['session'])) {
return true;
}
}
を私は何が起こったのか理解していない、私は私の悪い英語のために謝罪、私は最大限に説明することを願っています。
また別の質問ですが、ページを保護するのに十分安全ですか? トークンを登録するように指示されたユーザーもいますが、その操作方法はわかりません。
は
フレームワークを使用していますか? –
いいえ、このクラスのPDOをクエリに使用します:http://culttt.com/2012/10/01/roll-your-own-pdo-php-class/ –