Originariamente inviato da lorenz_italy
voglio consentire esclusivamente (_) e (-).

Io prensavo così:

Codice PHP:
$user "stringa qualunque";

$num1 strlen(str_replace("%","",$user));
$num2 strlen(str_replace("$","",$user));
$num3 strlen(str_replace("\","",$user));
$numn = strlen(str_replace..........;

if(
$num1 != strlen($user)) || $num2 != strlen($user) || $num3 != strlen($user)){
echo "
mi dispiace caratteri non validi";

così funziona.

Però pensavo ci fosse una scorciatoia.
E poi ci sono comunque dei carateeri sconosciuti che vorrei evitare fossero inseriti.
Come @, ç, #...insomma ce ne sono tanti.
allora fai il contrario invece che controllare quelli che nn vuoi che ci siano
controlla quelli che vuoi che siano usati e se sono solo quelli che vuoi tu fai andare avanti altrimenti no