У меня возникла странная проблема, которую я не могу отлаживать должным образом. В настоящее время я создаю регистрационную форму, используя запросы AngularJS и JSON для файлов PHP. Вот пример входных данных, которые я использовал для отладки.PHP, если инструкция using! Empty() не правильно проверяет существующие переменные
Теперь запрос отправлен, очевидно, содержит следующие данные, замеченные отладки ответ JSON.
Теперь по какой-то причине, $response['debug-two']
или $response['debug-info-two']
не добавляется отвечающему JSON, даже если все поля, необходимые являются !empty()
или true
. Также нет $reponse['empty-fields']
. Поэтому он действительно должен сводиться к пустым поля if-statement, но я не могу понять, почему, поскольку все поля заданы как $response['debug-info']
.
# 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);
В этой строке есть опечатка; '$ reponse ['empty-fields'] = true;' - должен быть '$ response ['empty-fields'] = true;' (вы пропустили 's'). Что вы на самом деле пытаетесь проверить с помощью оператора if? – Tom
@thebluefox О, да, это заставило пустые поля уйти, но почему это так? Когда все поля являются пустыми(), а соглашение1 верно? – PhyCoMath
Сделайте небольшую отладку и посмотрите, какое из этих выражений ложно. 'var_dump ((! empty ($ fullname)). '&&'. (! empty ($ email)). '&&'. (! empty ($ birthday)). '&&'. (! empty ($ password1)) . '&&'. (! empty ($ password2)). '&&'. ($ agreement1)); ' – Tom