我正在尝试编写调试脚本来测试我的cookie,但由于某种原因,它总是运行脚本删除所有cookie,即使条件不满足。这是我的代码 - 它都是html和php:
<form id="cookietest" name="CookieTest" method="post">
<input type="submit" name="createcookie" value="Create cookie" />
<input type="submit" name="removecookie" value="Remove cookie" />
<input type="submit" name="removeallcookies" value="Remove all cookies" />
</form>
<?php
$Domain = thedomain.com
if($_POST['createcookie'] == TRUE)
{
$expire = 60*60*24*14 + time();
setcookie('TestCookie', 'IExist', $expire, '/', $Domain);
echo 'TestCookie should have been created. See its value below.<br />';
}
if($_POST['removecookie'] == TRUE)
{
$expire = time() - 60*60*24*14;
setcookie('TestCookie', 'IExist', $expire, '/', $Domain);
echo 'TestCookie should have been deleted. See its value below.<br />';
}
if($_POST['removeallcookies'] == TRUE);
{
$expire = time() - 60*60*24*14;
setcookie('TestCookie', 'IExist', $expire, '/', $Domain);
setcookie('Cookie1', '', $expire, '/', $Domain); // destroys persistent cookie
setcookie('Cookie2', '', $expire, '/', $Domain); // destroys persistent cookie
setcookie('Cookie3', '', $expire, '/', $Domain); // destroys persistent cookie
echo 'All specified cookies should have been removed. <br />';
}
if($_POST['createcookie'] == FALSE && $_POST['removecookie'] == FALSE)
{
echo 'Neither the cookie create nor cookie remove button was clicked.<br />';
}
echo "The contents of 'TestCookie':";
echo "${_COOKIE['TestCookie']}<br />";
echo "The cookie array<br />";
echo "<pre>";
print_r($_COOKIE);
echo "</pre>";
?>
答案 0 :(得分:5)
如果条件导致你的if块未被执行,那么你已经添加了semi-colon
if($_POST['removeallcookies'] == TRUE); //<<< semi-colon
答案 1 :(得分:3)
我认为您应该使用 isset 而不是仅使用==
if(isset($_POST['createcookie']) )
{
}
答案 2 :(得分:0)
正如@Cthulhu所说的相反使用:
检查是否已设置:
if(isset($_POST[index])){
// do something
}
检查未设置:
if(!isset($_POST[index])){
// do something
}