更改数据库中复选框的值

时间:2009-08-28 23:35:42

标签: checkbox

我有一个带有复选框的表单。我没有设置复选框的值我一直认为值是'开'或''(空)。我将值'on'传递给数据库。问题是,当我取消选中该框时,它不会将数据库中的值更改为“(空)。表单的其余值(如输入框)正在更改。这是我的复选框上的代码

<input  type="checkbox" name="form3_one_2" <?php if($form3_one_2 == 'on'){print 'checked="checked"';}?> />

我是否应该在表格中加入一个值???

2 个答案:

答案 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则是查询字符串)。