gpt4 book ai didi

php - setcookie 不起作用

转载 作者:行者123 更新时间:2023-12-04 05:23:27 26 4
gpt4 key购买 nike

我看到很多人问过类似的问题,所以如果我重复了,但我在其他帖子中找不到答案,请见谅。

这只是一个测试页面,在本地主机上运行。我有一个 HTML 登录页面,将表单数据发送到 PHP 脚本,该脚本正在检查 MySQL 数据库中的详细信息。尝试设置带有结果的 cookie,但无法使其正常工作。

$user = $_POST['USER'];
$pass = $_POST['PASS'];

$res = $con->query("SELECT * FROM users WHERE username = '".$user."' AND password = '".$pass."'");
$row_no = $res->num_rows;
if ($row_no > 0) {
$row = $res->fetch_assoc();
$username = $row['username'];
$password = $row['password'];

setcookie('cookie1', $user, time() + 3600);

if (isset($_COOKIE['cookie1'])) {
echo "cookie set";
}
else {
echo 'cookie not set';
}

echo "Hello " . $username . ', your password is ' . $password;
}
else {
echo "Sorry, either your username or password is wrong";
}

我想我知道 cookie 在设置它的页面上不可用,但即使我重新加载页面,$_COOKIE 变量也是空的。 isset的结果脚本的一部分始终是“未设置 cookie”。我还尝试将 cookie 上的域设置为“/”。

感激地收到任何帮助。

(ps MySQL部分工作正常)

最佳答案

做类似的事情

setcookie(...);
var_dump($_COOKIE[...]);

总是会失败。

在处理用户请求的默认状态下 $_COOKIE superglobal 表示从浏览器随请求发送的所有 cookie 的数据数组。 setcookie()函数不会为当前正在处理的请求更改此数组。

但是,它应该出现在用户的下一个请求中。

如果出于某种原因,您希望当前的请求处理逻辑“理解”已经设置了与响应头一起发回的 cookie,您可以手动设置 $_COOKIE 中的值。数组如:
setcookie(...);
$_COOKIE[...] = 'some value';
var_dump($_COOKIE);

在使用 setcookie() 之前,您还需要验证您没有向浏览器发送任何输出。 .如果您正在使用 display_errors 进行开发在和 error_reporting(E_ALL)你应该看到一个警告。您还可以查看浏览器的基本 Web 开发工具,以检查响应 header 以查看是否正在发送 cookie。

关于php - setcookie 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463239/

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