投票问题

时间:2012-01-13 14:26:09

标签: php html post

我正在做一个facemash模拟,我遇到了一个问题。当我投票给第二张图片时,无论如何,获胜者是第一张。哪里有问题?网站:http://facemash123.shimansky.ru

<form METHOD=POST ACTION="rate.php">
<table width="auto" align="center">
    <tr align="center" width="auto" valign="top">
        <td><img src="images/<?=$images[0]->filename?>" /></td>
        <td><img src="images/<?=$images[1]->filename?>" /></td>
    </tr>
    <tr>
        <td><input type="submit" name="winner" value="Vote"></td>
        <td><input type="submit" name="winner" value="Vote"><td>

        <input type="hidden" name="first" value="<?=$images[0]->image_id?>">
        <input type="hidden" name="second" value="<?=$images[1]->image_id?>">
    </tr>
    <tr>
        <td><center>Wins: <?=$images[0]->wins?>, Fails: <?=$images[0]->losses?></center></td>
        <td><center>Wins: <?=$images[1]->wins?>, Fails: <?=$images[1]->losses?></center></td>
    </tr>
</table>
</form>

rate.php http://jsfiddle.net/Rg7vf/ index.php http://jsfiddle.net/ad3PM/

提前感谢!

1 个答案:

答案 0 :(得分:6)

您的两个提交按钮提交相同的值,并且无法区分这两个图像。

可能将代码更改为:

    <td><input type="submit" name="winner" value="Vote for Img #1"></td>
    <td><input type="submit" name="winner" value="Vote for Img #2"><td>

然后在投票处理代码中:

switch($_POST['winner']) {
    case "Vote for Img #1":
        $vote_id = $_POST['first'];
        break;
    case "Vote for Img #2":
        $vote_id = $_POST['second'];
        break;
    default:
        die("VOTER FRAUD! CALL THE FEC!");
}