在include(“文件”)之后设置cookie

时间:2011-03-11 13:18:48

标签: php

我有一个登录脚本,我记录过度失败的用户。在我的调试目的中,我在第一次尝试失败后记录它。

我通过访问它来测试代码。我将文件命名为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。

此代码用于在我的上一个主机上运行,​​但它在我当前的主机上不起作用。这是我的主人是问题还是我的?如果是我的,有人可以给我一些建议吗?

感谢。

1 个答案:

答案 0 :(得分:2)

output_buffering中启用php.ini。这样你可以在php文件向用户发送输出后设置cookie。 - 实际上输出将被缓冲,并在php脚本结束后发送。

您也可以在 .htccess 文件中启用此功能:

php_flag output_buffering on