我根据本教程制作的5星级评分脚本http://php.about.com/od/finishedphp1/ss/rating_script.htm 我根据对提到的网站的评论稍微改了一下,但脚本仍有一些问题。 当我评价某些内容时,脚本会刷新网站并在查询字符串中添加所需的参数,但脚本的其余部分不会被它触发。
Echo "Rate ";
Echo "<a href=".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."?mode=vote&voted=1&id=".$data[id].">1</a> | ";
Echo "<a href=".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."?mode=vote&voted=2&id=".$data[id].">2</a> | ";
Echo "<a href=".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."?mode=vote&voted=3&id=".$data[id].">3</a> | ";
Echo "<a href=".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."?mode=vote&voted=4&id=".$data[id].">4</a> | ";
Echo "<a href=".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."?mode=vote&voted=5&id=".$data[id].">5</a>";
这件事几乎被忽略了。
$mode = $_GET['mode'];
$voted = $_GET['voted'];
$id = $_GET['id'];
if ($mode=='vote')
{
if(isset($_COOKIE['146829gigapuding']))
{
Echo "Sorry You have already ranked that site";
}
else
{
$month = 2592000 + time();
setcookie('146829gigapuding',Voted,$month);
mysql_query ("UPDATE searchengine SET rating = rating+$voted, votes = votes+1 WHERE id = $id");
Echo "Your vote has been cast";
}
}
sql连接,查询和一堆其他代码都存在,但没有问题,我尝试移动代码顺序但没有。
令我担心的另一件事是有一种方法可以在投票时删除?mode = vote ...参数。
提前tnx。答案 0 :(得分:3)
正如我在这里看到的那样
".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."?mode=vote&voted=1&id=".$data[id]."
你有吗? (问号)两次,这使你的网址无效。尝试将其更改为
".$_SERVER['PHP_SELF'].'?'.$_SERVER['QUERY_STRING']."&mode=vote&voted=1&id=".$data[id]."
看看会发生什么:)
p.s。:变化是什么?到&amp;在模式之前