2
私はajaxで電子メールの検証を実行しようとしていますが、メール変数は途中で失われてしまいます。私は時間の多くのタイプミスを探しに行ってきたし、何も見つけることができません。だから私は何が起こっているのか分からない。そして私はこのようなエラーメッセージで終わります。変数値が失われるPHP、ajax
"警告:するpreg_match()function.pregマッチ]:正規表現にNULLバイト /var/www/rajohan.no/php/functions.phpのライン上の301 偽"
AJAX呼び出しから生成されたURLは、この
のように見えます<input placeholder="Din email adresse" name="contact_mail" id="contact_mail" class="contact_input" type="text" tabindex="2">
次のように入力フィールドがあります210
それは、このPHPスクリプト
if(isset($_GET['contact_mail'])) {
$contact_mail = $_GET['contact_mail'];
if(empty($contact_mail)) {
echo "false";
}
elseif(!validate_mail($contact_mail)) {
echo "false";
}
else {
echo "true";
}
}
に渡さ取得し、そのスクリプトは、メールを検証し、結果を返すために、こののfuctionを呼び出します。
function validate_mail($data) {
$pattern = "/^(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){255,})(?!(?:(?:\x22?\x5C[\x00-\x7E]\x22?)|(?:\x22?[^\x5C\x22]\x22?)){65,}@)(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22))(?:\.(?:(?:[\x21\x23-\x27\x2A\x2B\x2D\x2F-\x39\x3D\x3F\x5E-\x7E]+)|(?:\x22(?:[\x01-\x08\x0B\x0C\x0E-\x1F\x21\x23-\x5B\x5D-\x7F]|(?:\x5C[\x00-\x7F]))*\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-[a-z0-9]+)*\.){1,126}){1,}(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-[a-z0-9]+)*)|(?:\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))\]))$/iD";
return preg_match($pattern, $data);
}
'if-else'コードと機能コードが同じファイルにありますか? –
異なるファイルはありません。関数ファイルはファイルの先頭にif、elseコードとともに含まれます。私はこの中でさらに4つのpreg_matchesを取得しています。これらはすべて動作しますが、このエラーが返されます。 – Rajohan