Cat*_*yst 1 php cookies if-statement isset
我试图检查第一个是否$_COOKIE['one']存在或第二个$_COOKIE['two']存在,如果不存在则重定向用户。
当该脚本运行时,这两个 cookie 中只会存在一个。
if (!isset($_COOKIE['one']) || !isset($_COOKIE['two'])) {
header('Location: ./');
} else {
...
}
Run Code Online (Sandbox Code Playgroud)
我尝试了很多事情,但每次我遇到这个问题时,如果其中一个cookie总是存在的话。
这是一个简单的逆逻辑案例。正如马克指出的,您需要使用布尔 && (AND) 运算符。您正在尝试查看两者是否都不存在,然后发送标头。目前,如果其中任何一个存在,您无论如何都会发送标头。
只是改变if (!isset($_COOKIE['one']) || !isset($_COOKIE['two'])) {
到
if (!isset($_COOKIE['one']) && !isset($_COOKIE['two'])) {
如果语句的左侧或右侧为 true,则 Or (||) 返回 true。仅当语句的两个部分都为 true 时,and (&&) 才返回 true。Not(!) 运算符反转 true->false 和 false->true。
isset告诉你 cookie 是否存在。如果cookie存在,则返回true。您在此处使用 not 是正确的,因为您希望它告诉您 cookie 是否不存在(相反)。但是,您只想在两个 cookie 都不存在时发送标头。或者如果不存在则将其发送。
| 归档时间: |
|
| 查看次数: |
17429 次 |
| 最近记录: |