未使用PHP setcookie函数设置Cookie

未使用PHP setcookie函数设置Cookie,php,cookies,setcookie,Php,Cookies,Setcookie,我正在使用setcookiephp函数在浏览器中设置一些cookie。 我尝试在php代码中设置COOKIE,然后使用print\r($\u COOKIE)检查它。 cookie不会显示,但是,如果我尝试在另一个文件中设置cookie,则会显示cookie 将正确显示 if(isset($\u POST['username'])和&isset($\u POST['password'])) { 全局$username,$password; $username=$_POST['username'];

我正在使用
setcookie
php函数在浏览器中设置一些cookie。 我尝试在php代码中设置COOKIE,然后使用
print\r($\u COOKIE)
检查它。 cookie不会显示,但是,如果我尝试在另一个文件中设置cookie,则会显示cookie 将正确显示

if(isset($\u POST['username'])和&isset($\u POST['password']))
{
全局$username,$password;
$username=$_POST['username'];
$password=sha1($_POST['password']);
setcookie('username',$username,time()+3600);//未设置cookie
setcookie('password',$password,time()+3600);//未设置cookie
$database=连接到数据库($db\u路径);
$result=$database->query(“从username='$username'和password='$password'的用户中选择*);
while(true)
{
$response=$result->fetchArray(SQLITE3_ASSOC);
如果(!$response)
{
取消设置($_COOKIE['username']);
取消设置($_COOKIE['password']);
打破
}
if($response['username']=$username)&&&$response['password']=$password)
{
标题(“位置:../index.php”);
}
}
}
我希望设置cookies,但是使用
print\r($\u COOKIE)返回我
array()

笔记
  • Cookie在我的浏览器设置中是允许的
  • $\u POST['username']
    &
    $\u POST['password']
    通过另一页中的表单发送到此页
  • $\u POST['username']
    $\u POST['password']
    设置为真值

确保您拥有服务器和客户端都知道的域
echo$\u服务器['HTTP\u HOST']
应该告诉您浏览器所拥有的域。否则,浏览器将不接受cookie

确保您的服务器和客户端时间完全正确。浏览器将拒绝日期时间错误的cookie

不要编写任何其他代码,只需执行以下操作:

<?php
$cookie_name = "user";
$cookie_value = "John Doe";
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day 
// expiration
echo date("H:i:s d.m.Y")."<br>";
echo $_SERVER['HTTP_HOST']."<br>";
var_dump($_COOKIE);
?>

并刷新页面两次

也可以在以下网址查阅手册:

在代码中使用
ob\u start()和ob\u end\u flush()

`


`

服务器端未设置cookie。它们在客户端设置并通过HTTP头加载。因此,使用setcookie()不会影响同一请求中的$\u COOKIE,因为后者已经加载。另一方面,如果您关心安全性,您确实不应该以这种方式存储密码。使用setcoockie函数中的define path解决了此问题,
ob_start();
setcookie("name", "data");
ob_end_flush();