php布尔操作导致500错误

时间:2013-11-26 23:25:15

标签: php jquery codeigniter

我正在使用Codeigniter Framework

我在控制器中使用以下代码:

if(isset($_POST['field']) && !empty($_POST['field']) && 
isset($_POST['field2']) && !empty($_POST['field2'])) {
    if(isset($_POST['field3']) && !empty($_POST['field3']))
    //whatever
    else
    //whatever
} else {//whatever}

上面的代码抛出500错误(我使用jquery将发布数据发送到页面)

$.ajax({   
    url: url,   
    type: "POST",
    cache: false,
    contentType: false,
    processData: false,
    data : form,
    success: function(data){
        console.log(data);
        checkResults(data);
    },
    error: function(xhr, textStatus, error){
       alert("Fail");
       alert(textStatus);
       alert(xhr);
       alert(error);
    }
});

jquery工作正常,这是非常奇怪的地方

第一组验证(检查field1和field2)按预期工作,但是检查field3变得非常麻烦

这会引发500错误

 if(isset($_POST['field3']) && !empty($_POST['field3']))

这不是

 if(isset($_POST['field3']))

这不是

 if(isset($_POST['field3']) && empty($_POST['field3']))

这个DOES

 if(isset($_POST['field3']) && (empty($_POST['field3']) == 0))

这个DOES

 if(isset($_POST['field3']) && ($_POST['field3'] == ""))

我无法弄清楚,所有字段在视图中都具有相同的格式:

<input type="text" id="<<ID>>" name="<<NAME>" value="" />

唯一不同的是field3由jquery使用监听器传播

在开始时,它使用jquery .hide()隐藏,然后是一个简单的监听器:

$("#fieldListener").change(function() {
if(this.value == "") 
{
    $("#field3-id").hide("slow");

    $("#field3").removeClass("required");
    $("#field3").val("");

} else {
    $("#field3-id").show("slow");

    $("#field3").addClass("required");
}

1 个答案:

答案 0 :(得分:0)

您不应该将$ _POST与codeigniter一起使用。 http://ellislab.com/codeigniter/user-guide/libraries/input.html

如果您想了解更多信息,请阅读文档:)