未使用 PHP setcookie 函数设置 Cookie
Cookies not set using PHP setcookie function
我正在使用 setcookie
php 函数在我的浏览器中设置一些 cookie。
我尝试在我的 php 代码中设置 cookie,然后我使用 print_r($_COOKIE)
检查它。
不显示 Cookie,但是如果我尝试在另一个文件中设置 cookie,它们
将正确显示。
if (isset($_POST['username']) && isset($_POST['password']))
{
global $username,$password;
$username = $_POST['username'];
$password = sha1($_POST['password']);
setcookie('username', $username, time()+3600); //cookie not set
setcookie('password', $password, time()+3600); //cookie not set
$database = connect_to_database($db_path);
$result = $database->query("SELECT * FROM users WHERE username = '$username' AND password = '$password'");
while (true)
{
$response = $result->fetchArray(SQLITE3_ASSOC);
if (!$response)
{
unset($_COOKIE['username']);
unset($_COOKIE['password']);
break;
}
if (($response['username'] == $username) && $response['password'] == $password)
{
header("location: ../index.php");
}
}
}
我希望设置 cookie,但使用 print_r($_COOKIE);
returns 我 array()
备注
- 我的浏览器设置允许使用 Cookie
$_POST['username']
& $_POST['password']
通过另一页的表单发送到此页
$_POST['username']
& $_POST['password']
设置为真值。
确保您有一个服务器和客户端都知道的域。 echo $_SERVER['HTTP_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);
?>
并刷新页面两次。
我正在使用 setcookie
php 函数在我的浏览器中设置一些 cookie。
我尝试在我的 php 代码中设置 cookie,然后我使用 print_r($_COOKIE)
检查它。
不显示 Cookie,但是如果我尝试在另一个文件中设置 cookie,它们
将正确显示。
if (isset($_POST['username']) && isset($_POST['password']))
{
global $username,$password;
$username = $_POST['username'];
$password = sha1($_POST['password']);
setcookie('username', $username, time()+3600); //cookie not set
setcookie('password', $password, time()+3600); //cookie not set
$database = connect_to_database($db_path);
$result = $database->query("SELECT * FROM users WHERE username = '$username' AND password = '$password'");
while (true)
{
$response = $result->fetchArray(SQLITE3_ASSOC);
if (!$response)
{
unset($_COOKIE['username']);
unset($_COOKIE['password']);
break;
}
if (($response['username'] == $username) && $response['password'] == $password)
{
header("location: ../index.php");
}
}
}
我希望设置 cookie,但使用 print_r($_COOKIE);
returns 我 array()
备注
- 我的浏览器设置允许使用 Cookie
$_POST['username']
&$_POST['password']
通过另一页的表单发送到此页$_POST['username']
&$_POST['password']
设置为真值。
确保您有一个服务器和客户端都知道的域。 echo $_SERVER['HTTP_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);
?>
并刷新页面两次。