PHP if语句使用!empty()没有正确检查现有变量

时间:2017-01-04 12:25:31

标签: php angularjs json if-statement

我遇到了一个奇怪的问题,我似乎无法正常调试。 我目前正在使用AngularJS和对PHP文件的JSON请求创建注册表单。以下是我用于调试的输入数据示例。

Registration form

现在发送的请求显然包含调试JSON响应所看到的以下数据。

Debug 1 Debug 2

由于某些原因,即使所有必填字段都是$response['debug-two']$response['debug-info-two']!empty()true也不会添加到响应的JSON中。另外,$reponse['empty-fields']也不是。$response['debug-info']。因此,它必须真正归结为空字段if-statement,但我似乎无法理解或弄清楚原因,因为所有字段都设置为# Prevent XSRF if ($session->checkXSRF()) { # Get POST data $data = json_decode(file_get_contents("php://input")); $fullname = $data->fullname; $email = $data->email; $birthday = $data->bithday; $password1 = $data->password1; $password2 = $data->password2; $agreement1 = $data->agreement1; $agreement2 = $data->agreement2; $response['debug'] = $data; $response['debug-info'] = $fullname.$email.$birthday.$password1.$password2.$agreement1.$agreement2; # Check if empty fields if ( (!empty($fullname)) && (!empty($email)) && (!empty($birthday)) && (!empty($password1)) && (!empty($password2)) && ($agreement1) ) { $response['debug-two'] = $data; $response['debug-info-two'] = $fullname.$email.$birthday.$password1.$password2.$agreement1.$agreement2; } else { # All fields are required $reponse['empty-fields'] = true; } } else { # XSRF Error detected $response['xsrf-invalid'] = true; } # Return JSON response echo json_encode($response);

LoginComponent

1 个答案:

答案 0 :(得分:1)

你有几个错字导致你的问题。

第一个是$birthday = $data->bithday; - 你错过了' r'来自生日'

其次,在$reponse['empty-fields'] = true;,你错过了'来自'回复'。

# Prevent XSRF
if ($session->checkXSRF()) {
    # Get POST data
    $data = json_decode(file_get_contents("php://input"));

    $fullname = $data->fullname;
    $email = $data->email;
    $birthday = $data->birthday;
    $password1 = $data->password1;
    $password2 = $data->password2;
    $agreement1 = $data->agreement1;
    $agreement2 = $data->agreement2;

    $response['debug'] = $data;
    $response['debug-info'] = $fullname.$email.$birthday.$password1.$password2.$agreement1.$agreement2;

    # Check if empty fields
    if ( (!empty($fullname)) && (!empty($email)) && (!empty($birthday)) && (!empty($password1)) && (!empty($password2)) && ($agreement1) ) {
        $response['debug-two'] = $data;
        $response['debug-info-two'] = $fullname.$email.$birthday.$password1.$password2.$agreement1.$agreement2;
    } else {
        # All fields are required
        $response['empty-fields'] = true;
    }
} else {
    # XSRF Error detected
    $response['xsrf-invalid'] = true;
}

# Return JSON response
echo json_encode($response);