我有一个问题,我搜索了一下但在我的特定情况下找不到任何可以帮助我的东西。
我说到了,我创建了一个小函数来记录log(),当然步骤变量$ username和$ password,一切正常。
问题在于昨晚我做了一个小小的改动,在SESSIONS通过后插入了一串代码,后者是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;
}
}
我不明白发生了什么,我希望我能够充分解释,我为我糟糕的英语道歉。
另一个问题是,保护页面安全吗? 有些用户告诉我注册令牌,但不知道该怎么做。
谢谢
答案 0 :(得分:0)
尝试删除
""
发送电子邮件' => $行['电子邮件&#39],
是的,如果没有开始你的会话,请使用
<?php session_start() ?>
答案 1 :(得分:0)
获取PHP会话变量值
会话变量不会单独传递给每个新页面, 相反,它们是从我们在开始时打开的会话中检索的 每页(session_start())
直接来自http://www.w3schools.com/php/php_sessions.asp。在您的情况下,您必须开始session
。您可以使用session_start();
开始会话。但请记住在脚本开头做一次。