Como puedo permitir caracteres que yo quiera ejemplo números y letras y estos caracteres $#-_ pero si ponen algo como /' que detecte estaba pensando en un ciclo for ir leyendo carácter por carácter y compararlos en un arreglo que tenga los caracteres que quiero pero sería muy tardado, investigue esta función:
if (!preg_match("/^[0-9a-zA-Z]+$/",$_POST['campo'])) {
echo "hay un carácter no valido";
}else{
echo "todo bien";
}
pero al parecer no funciona según esa función debería solo aceptar números y letras pero meto cualquier tipo de carácter y no surge nada