我有一个带有复选框的表单。我没有设置复选框的值我一直认为值是'开'或''(空)。我将值'on'传递给数据库。问题是,当我取消选中该框时,它不会将数据库中的值更改为“(空)。表单的其余值(如输入框)正在更改。这是我的复选框上的代码
<input type="checkbox" name="form3_one_2" <?php if($form3_one_2 == 'on'){print 'checked="checked"';}?> />
我是否应该在表格中加入一个值???
答案 0 :(得分:1)
您应该跟踪表单中的复选框。发布表单时,请执行类似
的操作<?php
if( 'POST' == $_SERVER[ 'REQUEST_METHOD' ] )
{
/* for security reasons just check
* if it isset and set it to 'on' yourself
* never trust users input, always validate / sanitize
*/
$form3_one_2 = isset( $_POST[ 'form3_one_2' ] ) ? 'on' : '' ;
}
?>
顺便说一下: 无论如何你的$ form3_one_2来自哪里?我觉得你还在使用ini设置register_globals,这也是侏罗纪时代的一个巨大的安全漏洞。请务必为register_globals设置为off进行编程。
答案 1 :(得分:0)
如果您想在浏览器上选择它,就像看起来一样,请使用
<input name="foo" selected="selected" ... />
如果你想得到复选框的结果,当你通过表格传递它时,它确实应该“打开”(或者如果你使用GET则是查询字符串)。