PHP复选框无法在编辑页面上显示

时间:2016-03-26 12:20:31

标签: php checkbox

在编辑页面上显示选中复选框时出现问题。 我的代码如下:

SSC<input type="checkbox"  name="ssc"class="form-control" value="SSC"

<?php if(isset($ssc)) echo ($data[6] == 'SSC') ? 'checked':''; ?>/>

HSC<input type="checkbox"  name="hsc" class="form-control" value="HSC"

<?php if(isset($hsc)) echo ($data[6] == 'HSC') ? 'checked':''; ?>/>

2 个答案:

答案 0 :(得分:1)

你在哪里分配$ hsc / $ ssc?你为什么不这样做:

if(isset($data[6]) && $data[6] == 'SSC') echo 'checked';

if(isset($data[6]) && $data[6] == 'HSC') echo 'checked';

用于其他复选框

答案 1 :(得分:0)

好的,让我们抛出问题

  • mysql函数已弃用
  • 目前攻击者可能会因为传递变量的方式而注入恶意SQL
  • 因为您的$data变量始终包含education
  • 复选框的值仅在已选中时才会发送,否则它甚至不会设置
  • educatio列目前可以包含三个值,但它们都不等于您的数据
    • SSC
    • SSC HSC
    • HSC

解决方案:

  • 使用mysqli函数代替mysql
  • 使用预准备语句和参数化查询。
  • 如果您的选择查询定义了列,则不要检查列是否已设置
  • 始终检查复选框值是否与isset一起发送,或者在复选框上方添加一个具有相同名称和空值的隐藏输入,这样如果未选中此框,则会发送隐藏输入的值
  • 检查字符串是否包含&#34;单词&#34; (strpos($a, 'SSC') !== false - 如果不是假的话,那是真的)

(并且不要使用答案部分来提供更新您的问题的附加数据)