未使用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();