Foros del Web » Programando para Internet » PHP »

error con eregi!! que estoy haciendo mal!SOLUCIONADO!!!

Estas en el tema de error con eregi!! que estoy haciendo mal!SOLUCIONADO!!! en el foro de PHP en Foros del Web. No se que estoy haciendo mal porque como veo esta todo bien, en teroria .... pero en la practica no funca quiro validar un nombre ...
  #1 (permalink)  
Antiguo 26/04/2010, 08:20
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
De acuerdo error con eregi!! que estoy haciendo mal!SOLUCIONADO!!!

No se que estoy haciendo mal porque como veo esta todo bien,
en teroria .... pero en la practica no funca

quiro validar un nombre ingresado desde un fomrulario... para lo cual uso eregi,
pero cuando le meto un caracter con acento no funciona me muestra el mensaje
de error -->error nombre... sin embargo yo veo todo bien....

Código PHP:

//valido que sean solo alfa.. y espacios. 

if (!eregi("^[a-záéíóúñ ]{4,20}$"$nombre_ingresado))
    {
 
  
$error_nombres1="error nombre";
   
$error_stop=1;
    } 
Bueno antes que me comience a suicidar les pregunto

que estoy haciendo mal??

saludos!!

Última edición por zerpico_01; 27/04/2010 a las 02:43 Razón: solucionado!
  #2 (permalink)  
Antiguo 26/04/2010, 08:21
Colaborador
 
Fecha de Ingreso: octubre-2009
Ubicación: Tokyo - Japan !
Mensajes: 3.867
Antigüedad: 14 años, 6 meses
Puntos: 334
Respuesta: error con eregi!! que estoy haciendo mal!

de partida estas usando eregi, eso esta mal x'D ya que esta deprecated..

Revisa la información de PCRE
en la Documentacion de PHP

saludos!
__________________
More about me...
~ @rhyudek1
~ Github
  #3 (permalink)  
Antiguo 26/04/2010, 08:38
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: error con eregi!! que estoy haciendo mal!

Cita:
Iniciado por Hidek1 Ver Mensaje
de partida estas usando eregi, eso esta mal x'D ya que esta deprecated..

Revisa la información de PCRE
en la Documentacion de PHP

saludos!
Ya veo hay muchas que estan deprecated... oye y debo usar
asi no me ando buscando
que te parece si uso preg_match o ereg

saludos!!
  #4 (permalink)  
Antiguo 26/04/2010, 08:55
Avatar de darkasecas  
Fecha de Ingreso: marzo-2005
Ubicación: SantaCata, NL, Mexico
Mensajes: 1.553
Antigüedad: 19 años, 1 mes
Puntos: 77
Respuesta: error con eregi!! que estoy haciendo mal!

ereg tambien es obsoleta, como las demas eregi_*/ereg_* >_>
como dice Hidek1, para expresiones regulares usa las funciones preg_*, en este caso preg_match() seria la alternativa :)
  #5 (permalink)  
Antiguo 26/04/2010, 09:07
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: error con eregi!! que estoy haciendo mal!



gracias

lo deje asi

Código PHP:
if (preg_match('/^[a-záéíóúñ\ ]{4,20}$/i'$nombre_ingresado)) 
    {
 
  
$error_nombres1="error nombres";
   
$error_stop=1;
    } 
y FUNCIONA DE MARAVILLAS


gracias por sus respuestas!!!
  #6 (permalink)  
Antiguo 26/04/2010, 10:44
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: error con eregi!! que estoy haciendo mal!

no no funciona

me habia olvidado de meter el ! antes del preg_match...

no entiendo que jorak pasa, funciona con caracteres sin acentuar pero con caracteres acentuados no me funciona ....

alguna sugerencia, estoy habierto a cualquier cable
  #7 (permalink)  
Antiguo 27/04/2010, 00:11
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: error con eregi!! que estoy haciendo mal!



pues ahora creo que encontre la forma pero no se si esto sera seguro el asunto es que si agrego a la expresion los caracteres & y ; funiona para ñ y acentos
claro ya que á seria á y una ñ seria ñ
el problema es que esto permitira tambien usar < o >

en fin lo dejado asi y funciona :

Código PHP:
if (!preg_match('/^[a-z\&;  ]{4,20}$/i'$nombre_ingresado)) 
    {
 
  
$error_nombres1="error nombres";
   
$error_stop=1;
    } 
que problema puedo tener ??

  #8 (permalink)  
Antiguo 27/04/2010, 02:41
Avatar de zerpico_01  
Fecha de Ingreso: enero-2008
Ubicación: Wilde - Avellaneda -
Mensajes: 421
Antigüedad: 16 años, 3 meses
Puntos: 13
Respuesta: error con eregi!! que estoy haciendo mal!

solucionado!! definitivamente....

bueno me respondo solo

la solucion que encontre pensando y pensando, recorde que yo habi post un codigo para acentos asi que lo busque y asi quedo mi validador (en parte ya que el codigo sigue luego le aplico htmlentities y un filtro para sacar lo que no quiero....

Código PHP:

$nombres
=@strtolower(@htmlspecialchars($_POST['nombres']));
function 
reemplazaMe($text) {
utf8_encode($text);
$codigo= array("á","é","í","ó","ú","ü","ñ","Á","&0acute;","É","Í","Ú");
$cambiar = array("á","é","í","ó","ú","ü","ñ","Á","Ó","É","Í","Ú");
$text str_replace($codigo$cambiar$text);
//pongo primera en mayusculas ya que es nombre
$textucwords(strtolower($text));
return 
$text;
}
$nombres=reemplazaMe($nombres);
if (!
preg_match('/^[a-z\áéíóúñü ]{3,25}$/i'$nombres)) 
    {
  
$error_nombres="error nombres";
  
$error_stop=1;
    } 

espero que le sea de utilidad!!!

gracias!!

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 05:09.