这是我用于登录功能的脚本。但是如果我想在会话中添加一个计时器,它会忽略它。我已经在10秒或1分钟内尝试过它。但它似乎没有用。有人知道出了什么问题吗?
这是我用于计时器的代码行:session_set_cookie_params(3600,"/");
感谢正手。
public function login($username, $password) {
$salt="";
$this->user_id=0;
$this->status=0;
$salt_query=$this->mysqli->query(
<<<EOT
SELECT salt
FROM xxxxx
WHERE username="{$username}"
EOT
);
$salt_query = $salt_query->fetch_row();
$salt = $salt_query[0];
$hash = hash('sha512', $password.= $salt);
$result = $this->mysqli->query(
<<<EOT
SELECT werknemer_id,status
FROM xxxxx
WHERE username="{$username}" AND password="{$hash}"
EOT
);
$rij =$result->fetch_row();
if ((empty($rij)) || (empty($rij[0]))) return(1);// Invalid combination
if (($rij[1]<1) || ($rij[1]>2)){
return(2); // Inactive account
}
$this->user_id=intval($rij[0]);
$this->status=intval($rij[1]);
session_regenerate_id();
$_SESSION['werknemer_id']=$this->user_id;
session_set_cookie_params(3600,"/");
return(0); // login
}
答案 0 :(得分:1)
从手册中。我没有使用它,但它确实说你必须在每个脚本中使用它。此外,您必须在start_session之前执行此操作。我认为这就是你的问题。
设置
php.ini
文件中定义的cookie参数。此功能的效果仅持续脚本的持续时间。因此,您需要在调用session_set_cookie_params()
之前为每个请求调用session_start()
。