取消设置cookie时出现意外行为


Unexpected behaviour while unsetting cookie

在php中取消设置cookie后出现问题。这是我的代码

controller.php

setcookie("alert",'String',time()+3600,'/');
header("Location: ../home.php");

home.php

if(!empty($_COOKIE['alert']) && $_COOKIE['alert'] != ''){
    malert($_COOKIE['alert']);
    $_COOKIE['alert'] = '';
    setcookie('alert', '', time()-1000);
    setcookie('alert', '', time()-1000, '/');           
print_r($_COOKIE);
   }

当主页加载时,函数malert起作用。但我希望它在再次刷新页面时跳过if条件。。问题甚至是再次刷新home.php后,进入if条件。我在页面刷新中遗漏了关于cookie的任何信息吗。?

print_r输出为

Array ( [PHPSESSID] => xxx [alert] => String )
Array ( [PHPSESSID] => xxx [alert] => )

注意:由于我在此文件夹中使用.htpassword,因此无法使用SESSION

您在print_r()之后调用setcookie()。输出内容后不能调用setcookie(),因为标头已经发送。

只需尝试setcookie('alert', '', 1);