2013-09-19 3 views
0

Я использую preg_match, чтобы ограничить ввод пользователя, и он хорошо работает, за исключением того, что он не позволит использовать специальный символ «&». Я попытался убежать от персонажа, но preg_match все равно не пропустит его. Я знаю, что остальная часть кода работает с его тестированием без символа «&».preg_match отклоняет символ '&'

function validateInput($name){ 
    if (preg_match("/^[A-Za-z0-9]+[A-Za-z0-9 \(\)\&\',\.-]{0,75}$/", $name) === 1){ 
     $val = 1; 
    } else { 
     $val = 0; 
     echo 'Invalid input: <strong>'.$name.'</strong>. Only letters, numbers, and certain characters (,\' . () & -) are allowed.<br>'; 
    } 
    return $val; 
} 
+1

Этот код работает для меня, как и предполагалось. –

+1

Каков ваш тестовый ввод, который терпит неудачу? –

+0

Вы уверены, что не отправляете функцию '&'? –

ответ

0

Проблема была с htmlentities(), используемыми при хранении входа в переменном.

При замене mysqli_real_escape_string() он работает.

Смежные вопросы