我有一个PHP脚本,我将在下面发布。这是一个投票网站,我的客户只希望一个用户能够根据他们的cookie和IP地址投票一次。
投票一次后,如果检测到cookie或IP相同,它们将被重定向到允许多次投票的虚假投票页面。浏览器在合法投票页面和重复投票页面之间循环。
这是代码,我只是在收到这个错误并在网上看到这可能是原因后才添加了exit和die函数——然而添加这些函数并没有什么区别。
$q = mysql_query("SELECT * FROM votelog");
while($row = mysql_fetch_array($q))
{
if(($ip = $_SERVER['REMOTE_ADDR']) == $row['ip'])
{
$duplicateIP = true;
}//end if
if(($row['pollid'] == 8))
{
$duplicatePoll = true;
}//end if
}//end while
//check cookies
if(isset($_COOKIE['poll']))
{
$cookieCheck = true;
}//end if
if((($duplicateIP == true) && ($duplicatePoll == true)) or ($cookieCheck == true))
{
show this pg
}//end if
else
{
echo '<meta http-equiv="refresh" content="0; url=/polls/legit" />'; //redirect to legal pg
exit();
die();
}//end else
有什么想法吗?另一个页面是相同的,除了if和else被切换,如下所示:
if((($duplicateIP == true) && ($duplicatePoll == true)) or ($cookieCheck == true))
{
echo '<meta http-equiv="refresh" content="0; url=/polls/dupe" />'; //redirect to duplicate
exit();
die();
}//end if
else
{
show this pg
}//end else
p.S-我在Wordpress环境中操作
很难猜测那里发生了什么。但是,如果您的代码很好,我预计您会遇到缓存问题。
正确设置头(header())将有助于解决该问题。但要小心,你可以设置错误的标题,使情况变得更糟。
因此,一个简单的解决方法可能是添加一个?time()到您的url。因此,重定向后的URL每秒都会发生变化。
echo '<meta http-equiv="refresh" content="0; url=/polls/dupe?'.time().'" />'; //redirect to duplicate
只是附带说明:
exit();
die(); // this will never reached, as exit() and die() is the same
关于exit()和die()