Foro de elhacker.net

Programación => PHP => Mensaje iniciado por: Anonymatrix en 9 Marzo 2017, 19:22 pm



Título: preg_match
Publicado por: Anonymatrix en 9 Marzo 2017, 19:22 pm
Hola, qué tal, alguien me ayuda porfa? grx =)

Código:
if(!preg_match("/[]+@[]+.[]/", $correo))
{
    echo "estructura incorrecta";
}
else
{
    echo "estructura correcta";
}

Dentro de [] quiero que se pueda escribir cualquier cosa, sin normas.

Ejemplo: ola[{(_-/*@sw5&.Dq1æ♀↓

El problema es que no me funciona.


Título: Re: preg_match
Publicado por: engel lex en 9 Marzo 2017, 21:06 pm
es porque le dices justo lo contrario, que no hay nada

para coincidir cualquier cosa usa . (punto) y luego + par que sea una cosa cualquier o más... ojo que tienes un punto y debes escaparlo

es decir

Código:
.+@.+\..+

recomiendo usar una regla más estricta


Título: Re: preg_match
Publicado por: Anonymatrix en 9 Marzo 2017, 21:30 pm
Gracias, tengo una duda con lo de escapar, si quisiese escapar por ejemplo:

\s (las 2 cosas por separado)

tendria que poner \\s

???

---

Otra pregunta:

En este caso para un correo normal.

Código:
if(!preg_match("/[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]+/", $correo))
{
    echo "estructura incorrecta";
}
else
{
    echo "estructura correcta";
}

Probé a escribir aaa@aaa.a&a

Y me sale que es correcto cuando no deberia de serlo.


Título: Re: preg_match
Publicado por: engel lex en 9 Marzo 2017, 23:00 pm
tu le dijiste a php que buscara basado en

Código:
[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]+

aaa@aaa.a&a

y si lo consiguó, consiguió -> aaa@aaa.a

tienes que hacerlo más estricto... ^ significa inicio de texto y $ fin

Código:
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+\.[a-zA-Z]+$



te recomiendo esto
https://regex101.com/ (https://regex101.com/)


Título: Re: preg_match
Publicado por: Anonymatrix en 13 Marzo 2017, 00:39 am
Gracias.