Я работаю в PHP и JSON в API для своего мобильного приложения. Я попытался написать модуль регистрации, но часть моих условных операторов не работает должным образом.
Если утверждение 1:
if(!isset($_GET['username']) || !isset($_GET['password']) || !isset($_GET['imei']) || !isset($_GET['imie']) || !isset($_GET['nazwisko']) || !isset($_GET['email']) || !isset($_GET['zgoda']) || !isset($_GET['telefon']) || !isset($_GET['zgoda2']) || !isset($_GET['kraj'])); { $returning = array('error' => 'Invalid query'); echo json_encode($returning); break; }
Он должен дать ошибку, если аргумент отсутствует, но он всегда дает ошибку.
Мой запрос:
username=konrad12&password=xxx&imei=000000000000000&nazwisko=Potter&imie=Ronald&email=xxx@xxx.pl&zgoda=1&telefon=000&zgoda2=1&kraj=Poland
Если утверждение 2:
if(strlen($c) != 15 || !validEmail($f) || strlen($g) != 1 || strlen($i) != 1 || wez_id_kraju($j) == 0) { $returning = array('error' => 'Invalid query'); echo json_encode($returning); break; }
Он должен давать ошибку, когда значения var неверны, но всегда дает ошибку.
Мои переменные:
$z = mysql_real_escape_string($_GET['username']); $b = mysql_real_escape_string($_GET['password']); $c = mysql_real_escape_string($_GET['imei']); $d = mysql_real_escape_string($_GET['nazwisko']); $e = mysql_real_escape_string($_GET['imie']); $f = mysql_real_escape_string($_GET['email']); $g = mysql_real_escape_string($_GET['zgoda']); $h = mysql_real_escape_string($_GET['telefon']); $i = mysql_real_escape_string($_GET['zgoda2']); $j = mysql_real_escape_string($_GET['kraj']);
Если утверждение 3:
if($g != 0 or 1 || $i != 0 or 1) { $returning = array('error' => 'Invalid query'); echo json_encode($returning); break; }
Он должен давать ошибку, когда значение $ g или $ i не равно 1 или 0, но оно всегда дает ошибку.
Пожалуйста, помогите мне, я пробовал много чего, но я не могу найти решение
@Редактировать :
Моя действительная функция электронной почты:
function validEmail($email) { $isValid = true; $atIndex = strrpos($email, "@"); if (is_bool($atIndex) && !$atIndex) { $isValid = false; } else { $domain = substr($email, $atIndex+1); $local = substr($email, 0, $atIndex); $localLen = strlen($local); $domainLen = strlen($domain); if ($localLen < 1 || $localLen > 64) { // local part length exceeded $isValid = false; } else if ($domainLen < 1 || $domainLen > 255) { // domain part length exceeded $isValid = false; } else if ($local[0] == '.' || $local[$localLen-1] == '.') { // local part starts or ends with '.' $isValid = false; } else if (preg_match('/\\.\\./', $local)) { // local part has two consecutive dots $isValid = false; } else if (!preg_match('/^[A-Za-z0-9\\-\\.]+$/', $domain)) { // character not valid in domain part $isValid = false; } else if (preg_match('/\\.\\./', $domain)) { // domain part has two consecutive dots $isValid = false; } else if (!preg_match('/^(\\\\.|[A-Za-z0-9!#%&`_=\\/$\'*+?^{}|~.-])+$/', str_replace("\\\\","",$local))) { // character not valid in local part unless // local part is quoted if (!preg_match('/^"(\\\\"|[^"])+"$/', str_replace("\\\\","",$local))) { $isValid = false; } } if ($isValid && !(checkdnsrr($domain,"MX") || ↪checkdnsrr($domain,"A"))) { // domain not found in DNS $isValid = false; } // I add that text ... mysql_connect(DB_HOST, DB_USERNAME, DB_PASSWORD); mysql_select_db(DB_BASE); $q = "SELECT * FROM `system_domeny`"; $a = mysql_query($q); while($wynik = mysql_fetch_array($a)) { if($domena == $wynik[1]) $isValid = false; } // ... } return $isValid; }