gpt4 book ai didi

PHP setcookie() 奇怪的行为

转载 作者:行者123 更新时间:2023-11-29 05:33:39 27 4
gpt4 key购买 nike

quys,我的 PHP 应用程序有问题。

我有 2 个页面用于登录和注册。两个页面都使用通用的 cookies 类。一切正常,除了一件事:setcookie() 仅适用于 /signin 页面(cookie 值进入数据库,并且出现 cookie 'rwt')。

在注册页面上,cookie 值进入数据库,但 setcookie() 不起作用。

请帮忙。

附言这是唯一的问题,一切都适用于本地主机,但不适用于生产域

P.P.S $DBH 是PDO变量,包含正确的数据库信息。

登录页面

$cookie = new Cookies($DBH);
........

if ($signin->remember=="yes") {
$cookie->account_set($signin->user);
}

注册页面

  $cookie = new Cookies($DBH);
.........
........

if ($signup->check_availability()) {

$signup->save();

$cookie->account_set($signup->user);

header("Location:/");

} else {
$msgText = "This username already exists";
echo "<div class=\"orangeMsg\">$msgText</div>";
}

cookies

 class Cookies
{
private $_DBH, $cookie_domain;
function __construct(PDO $DBH)
{
$this->_DBH=$DBH;
$this->cookie_domain=$_SERVER['HTTP_HOST'];

}
public function account_set($value)
{
$cookie_value=uniquestr();
// function from common.func.php
$this->_DBH->query("UPDATE accounts SET cookie='$cookie_value' WHERE user='$value'");
setcookie('rwt', $cookie_value, time()+60*60*24*7 , '/', $this->cookie_domain);
}
public function account_unset($value)
{
if (isset($_COOKIE['rwt'])) {
$cookie_value=$_COOKIE['rwt'];
setcookie("rwt", $cookie_value, time()-2592000, '/', $this->cookie_domain);
$this->_DBH->query("UPDATE accounts SET cookie=DEFAULT WHERE user='$value'");
}
}
}

最佳答案

您应该始终header('Location: ...') 调用之后直接调用exit。否则您的脚本将继续运行直到结束,结果可能会出现一些意外行为。

我的猜测是您稍后会在注册脚本中以某种方式取消设置 cookie。

关于PHP setcookie() 奇怪的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12555452/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com