在 PHP 中创建和打印 cookie


creating and printing cookies in PHP

我正在尝试在PHP中创建cookie而不使用会话。这就是我创建它们的方式:

echo 'Successfully registered :)';
$name = $_POST['user_name'];
setcookie("name", $name); 

完成所有操作后,这将位于页面底部。我看到页面上的回声线,我也知道 $_POST['user_name'];包含一个值。所以应该设置饼干。在同一页面顶部的<body>标签正下方,我echo $_COOKIE['name'];.当我重新加载页面时,我看不到任何内容,它是一个空白页面。我可以粘贴整个页面,但它是~150行。

正如您在 PHP 手册中读到的,在进行任何输出之前必须调用 setcookie()

顺便说一句,这有可能创建一个漂亮的XSS,在将其反映为cookie内容之前,您应该真正过滤POST变量。

cookie 与其余的 HTTP 标头一起发送,这意味着它需要在任何页面标记或其他任何内容之前设置。PHP Cookie Docs

此外,您需要清理任何用户输入以防止任何恶意行为。从 PHP 5.2 开始,引入了filter_var,可以在这种情况下使用。