我有一个登录脚本,我记录过度失败的用户。在我的调试目的中,我在第一次尝试失败后记录它。
我通过访问它来测试代码。我将文件命名为fail_cookie.php。当我从浏览器访问它时,它设置cookie就好了。但是,如果我在登录表单上名为login.ws并且我有以下代码:
if (!isset($_COOKIE["login"])) {
logUser($_POST['username'], $_POST['password'], time(), $_SERVER['REMOTE_ADDR']);
include "fail.ws";
}
在fail.ws
内,我设置了fail_cookie.php
。我将其包含在<head> .. .. <?php include("fail_cookie.php"); ?> </head>
当我被fail.ws
重定向到login.ws
时,我们永远不会设置Cookie。
此代码用于在我的上一个主机上运行,但它在我当前的主机上不起作用。这是我的主人是问题还是我的?如果是我的,有人可以给我一些建议吗?
感谢。
答案 0 :(得分:2)
在output_buffering
中启用php.ini
。这样你可以在php文件向用户发送输出后设置cookie。 - 实际上输出将被缓冲,并在php脚本结束后发送。
您也可以在 .htccess 文件中启用此功能:
php_flag output_buffering on