评级脚本问题

时间:2011-05-27 00:50:11

标签: php mysql html

我根据本教程制作的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。

1 个答案:

答案 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;在模式之前