【发布时间】:2011-05-11 06:43:10
【问题描述】:
我想要网页上的两个单选按钮(用 php 编写)代表“是”和“否”。当我加载页面时,我希望它从 mysql 数据库中获取一个值并设置相应的单选按钮。当我点击另一个按钮时,我希望它更新数据库并重新加载页面。
我正在尝试使用简单的 html 表单来执行此操作,但没有运气。我到目前为止的代码(根本不起作用:(是:
if (!isset($_POST['submit'])) {
$sql = "SELECT challenge_me FROM contestants WHERE id=$id";
$res = (mysql_fetch_assoc(mysql_query($sql, $db)));
$challenge_me = $res["challenge_me"];
}else{
$sql = "UPDATE contestants SET challenge_me='" . $_POST['YesNo'] . "' WHERE id='$id'";
if(!mysql_query($sql, $db))
echo mysql_error(), "<br/>Query '$sql'";
$challenge_me = $_POST['YesNo'];
}
echo'<form method="post" action="' . $PHP_SELF . '">';
echo '<input type="hidden" name="submit" value="submit">';
if($challenge_me == 1){
echo'<input type="radio" name="YesNo" value="1" onClick="this.form.submit();" checked>Yes ';
echo'<input type="radio" name="YesNo" value="0" onClick="this.form.submit();">No ';
}else{
echo'<input type="radio" name="YesNo" value="1" onClick="this.form.submit();">Yes ';
echo'<input type="radio" name="YesNo" value="0" onClick="this.form.submit();" checked>No ';
}
echo'</form>';
【问题讨论】:
-
不是您问题的真正答案,但您不应该使用字符串连接来构建 SQL 查询。您的脚本目前很容易受到基于使用
$_POST['YesNo']的 SQL 注入攻击,而无需至少对其进行转义或使用 mysql 语句。 -
怎么不工作了?发生了什么?
-
嗯,好像我解决了。如果隐藏的帖子被命名为“提交”,它就不起作用。当我单击单选按钮时,这阻止了表单执行任何操作。将其重命名为其他名称效果很好...感谢您对 sql 注入的评论!
标签: php html forms radio-button