我正在做一个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/
提前感谢!
答案 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!");
}