我试图将登录数据插入登录表中,并且我正在使用此代码:
的login.php
$verify = password_verify($password, $results['user_password']);
if($verify){
$session->logUser($results['user_id']);
header('Location: dashboard.php');
}else{
//Error
}
然后在 session.php 中我有一个会话类:
public function logUser($userId){
$_SESSION['userId'] = $userId;
$token = $this->createToken();
$timestamp = time() + (86400 * 14);
$connection = new Connection;
$db = $connection->openConnection();
$stmt = $db->query("INSERT INTO logins (login_token, login_userId, login_expires) VALUES ('$token', '$userId', '$timestamp')");
$stmt->execute();
}
这是正常工作,正在生成令牌,并且所有数据都是正确的但是当我检查数据库时,它创建了两条记录(相同的但具有不同的auto_increment ID)。
为什么会这样? 提前谢谢。
编辑: 我正在尝试创建持久登录时执行此令牌,我还没有创建cookie,但首先我想要测试登录数据是否正确存储在数据库中。
答案 0 :(得分:4)
您正在执行两次。删除$ stmt-> execute();