Test Foro de elhacker.net SMF 2.1

Programación => Desarrollo Web => PHP => Mensaje iniciado por: SrTrp en 1 Julio 2018, 20:10 PM

Título: [Resuelto] Permitir caracteres que quiera
Publicado por: SrTrp en 1 Julio 2018, 20:10 PM
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:
Código (php) [Seleccionar]

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
Título: Re: Permitir caracteres que quiera
Publicado por: #!drvy en 2 Julio 2018, 00:53 AM
Esa función esta bien y cumple su objetivo que es detectar cualquier carácter que no sea A-Z a-z o 0-9, eso quiere decir que todo lo demás es "ilegal" incluidos los espacios. Para lo que buscas, solo tendrias que añadir el resto de caracteres:

Código (php) [Seleccionar]
if (!preg_match("/^[0-9a-zA-Z$#-_]+$/",$_POST['campo'])) {


Saludos
Título: Re: Permitir caracteres que quiera
Publicado por: SrTrp en 2 Julio 2018, 07:09 AM
Cierto ya probe y si me funciona así ahora tengo un detalle quiero implementar muchos mas caracteres que sería así:
Código (php) [Seleccionar]

if (!preg_match("/^[0-9a-zA-Z#$%&/()?_;:.,<>+-*ªº=[]{}¿!ç\'~]+$/",$_POST['campo'])) {

pero al momento que lo corro me da esa alvertencia quite unos caracteres ()'[] por si afectaban pero no siguio dandome esa alvertencia.. alguna idea?

Warning: preg_match(): Unknown modifier '(' in C:\...dircion.. on line N
Título: Re: Permitir caracteres que quiera
Publicado por: #!drvy en 3 Julio 2018, 00:14 AM
Eso es porque en REGEX (que es lo que estas usando), algunos caracteres son especiales. Dichos caracteres los has de escapar con \ (barra invertida).

Código (php) [Seleccionar]
if (!preg_match("/^[0-9a-zA-Z#$%&\/\(\)\?_;:\.,<>\+\-*ªº\=\[\]\{\}¿!ç\\'~]+$/",$_POST['campo'])) {

Saludos
Título: Re: Permitir caracteres que quiera
Publicado por: SrTrp en 3 Julio 2018, 05:19 AM
 ;-) ;-) ;-) muchísimas gracias me ah servido.