热搜:NVER 

一个cookie的有关问题,希望大神们帮小弟我一上,多谢,说一上错在哪里

2024-04-30 12:31:11
 一个cookie的有关问题,希望大神们帮小弟我一上,多谢,说一上错在哪里

一个cookie的问题,希望大神们帮我一下,谢谢,说一下错在哪里?

PHP code
<?php if(empty($_COOKIE['lastVisit'])){
        //如果为空为第一次登录
        echo "您好,您是第一次登录!";
        //记录下首次登录时间
        setcookie("lastVisit",date('Y-m-d H:i:s'),time()+30*24*3600);
    }else{
        echo "您上一次访问时间是".$_COOKIE['lastVisit'];
        //更新为这一次登录的时间
        setcookie("lastVisit",date('Y-m-d H:i:s'),time()+30*24*3600);
    }

?>

报错:
您好,您是第一次登录!
Warning: Cannot modify header information - headers already sent by (output started at D:\LAMP\AppServ\www\cookie\lastVisit.php:4) in D:\LAMP\AppServ\www\cookie\lastVisit.php on line 6


------解决方案--------------------
这么改一下代码...另外如果是utf-8 编码文档注意不要有B头

PHP code

$first = FALSE;
if (empty($_COOKIE['lastVisit'])) {
    $first = TRUE;
    setcookie("lastVisit", date('Y-m-d H:i:s'), time() + 30 * 24 * 3600);
} else {
    $first = FALSE;
    setcookie("lastVisit", date('Y-m-d H:i:s'), time() + 30 * 24 * 3600);
}
if ($first) {
    echo "您好,您是第一次登录!";
} else {
    echo "您上一次访问时间是" . $_COOKIE['lastVisit'];
}

------解决方案--------------------
在header之前有输出导致的,开启缓冲 ob_start();