Филтриране на символи

uphero

Registered
PHP:
if (empty($_POST["username"]) or strlen($_POST["username"])<=3) 
{ $errMsg = "<div class='error'>Псевдонима, който сте въвели е прекалено кратък или не сте въвели такъв.</div>"; 
}
elseif (strlen($_POST["username"])>=3) { 
$user = htmlspecialchars($_POST["user"]); }
сега ползвам този код при регистрация но нещо не филтрира скоби и други специални символи,идея как ще стане да допуска само латински букви и цифри и да няма празни места
 
PHP:
if (empty($_POST["username"]) or strlen($_POST["username"])<=3) 
{ $errMsg = "<div class='error'>Псевдонима, който сте въвели е прекалено кратък или не сте въвели такъв.</div>"; 
}
else { 
$user = htmlspecialchars($_POST["user"]);
if (preg_match('/^[a-z0-9]+(_)?[a-z0-9]+$/i',$user)) {
$errMsg = "<div class='error'>Непозволени символи</div>
}
else {

други проверки,или направо заявка за добавяне


}
}
 
Tака сега ще ти дам пример който можеш да премахнеш всички твои проверки около потребителското име и всичко да стане с 1 проверка

PHP:
$username = htmlspecialchars(addslashes(trim($_POST['username']))); // Взимаме стойността въведена в полето и слагаме някои защити
if(preg_match('/^[a-zA-Z0-9_\.]{3,32}$/', $username)) { 
$sql = "INSERT .....";
}

Тук позволените символи са a-Z(малки и големи), цифрите от 0 до 9, долна черта и точка и позволеното което може да се въведе в полето е от 3 до 32 символа(ти си го правиш както искаш).
 

Back
Горе