投票问题

Pav*_*sky 0 html php 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>
Run Code Online (Sandbox Code Playgroud)

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

提前致谢!

Mar*_*c B 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>
Run Code Online (Sandbox Code Playgroud)

然后在投票处理代码中:

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!");
}
Run Code Online (Sandbox Code Playgroud)

  • 也可以使用两个不同的`name`,只发送提交的一个.测试`value`可能会被i18n弄乱. (3认同)