表单上的错误如果没有第二个参数则提交

时间:2015-02-20 15:24:54

标签: php codeigniter

当我提交表单时,如果第二个参数为空。

会抛出错误。

  

消息:in_array()期望参数2为数组,给定为null   文件名:user / Users_groups.php行号:250

我知道没有第二个参数。 $这 - >会话而>用户数据( '修改')

if (!in_array('user/users_groups', $this->session->userdata('modify'))) {
$this->error['warning'] = 'You do not have permission to modify';
}

如果没有第二个参数$this->session->userdata('modify')

,当用户或我尝试提交表单时,是否会让它停止抛出该错误

但仍然有那段代码。

3 个答案:

答案 0 :(得分:1)

首先尝试检查参数是否有效:

<?php

    if(is_array($this->session->userdata('modify')) && !empty($this->session->userdata('modify')))
    {
        if (!in_array('user/users_groups', $this->session->userdata('modify')))
        {
            $this->error['warning'] = 'You do not have permission to modify';
        }
    }else{/* handle errors */}
?>

答案 1 :(得分:1)

在if语句之前用空数组替换null值:

可以使用这样的三元运算符:

$array = (is_array($this->session->userdata('modify'))) 
    ? $this->session->userdata('modify') 
    : Array()

如果它是一个数组,它将使用'modify'数组,否则将传递一个空数组

答案 2 :(得分:0)

我还会检查array_search()函数,因为如果设置了不规则参数,它可以与NULL进行比较。

  

5.3.0 As with all internal PHP functions as of 5.3.0, array_search() returns NULL if invalid parameters are passed to it.