2013-10-05 3 views
0

Я хочу разрешить только [^[email protected]_.0-9\'] для принятия функции furthur, поэтому я сделал это. Он работает нормально, но когда я попытался запустить вставку anything.phpПолучение ошибки при санировании Get

Он начал искать имя файла и заканчивается ошибкой. Я уже избегаю нежелательного символа, но все же он дает ошибку!

Я не могу бежать точка (.), Так как многие пользователи используют его

$clean = htmlspecialchars(escapeshellcmd(($_GET["name"]),ENT_QUOTES); 

    if (!preg_match('/[^[email protected]_.0-9\']/', $clean)) 
    { 
    if(empty($clean)){ 

    echo ""; 

    }else{ 

//function 

    } 
} 
+0

FYI: вы можете использовать '\ w', чтобы сократить это на' [\ w^@. '] '. Также почти невозможно сказать, что вы просите. Вы получаете ошибку, или это просто позволяет передавать строки, которые вы * думаете *, должны быть пойманы вашей проверкой? – meagar

+0

Lol невозможно? Извините за мой язык. bro Я хочу, чтобы кто-нибудь вставлял значение. сервер должен разрешить, если строковое значение состоит только из значения A-Z _. @ 9-0, если нет, тогда дайте ошибку, идите дальше к запросу – user2540127

+0

. Тогда ваше регулярное выражение неверно, см. мой ответ ниже. – meagar

ответ

0

Вы просто спросить, если строка содержит один из этих символов, в любом месте в нем. То, что вы хотите спросить, это строка полностью состоит только из только эти символы. Вы должны закрепить оба конца регулярного выражения, а также добавить квантор:

/^[^[email protected]_.0-9\']*$/ 

В ^ матчах начала лин, то $ соответствует концу строки, и * говорит «0 или более».

+0

Эта веб-страница имеет цикл переадресации ... Показана ее ошибка – user2540127

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