Foros del Web » Programando para Internet » PHP »

Ayuda con eregi()

Estas en el tema de Ayuda con eregi() en el foro de PHP en Foros del Web. Haber como me explico... Código PHP: <? if (( eregi ( "[^a-z0-9ñ_-]{5,9}$" ,  $date )) )      {     echo( "Error:" );         exit();     } ?> Bueno este código permite ...
  #1 (permalink)  
Antiguo 25/07/2008, 16:57
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 11 meses
Puntos: 2
Ayuda con eregi()

Haber como me explico...
Código PHP:
<?
if ((eregi("[^a-z0-9ñ_-]{5,9}$"$date)) ) 
    {
    echo(
"Error:");
        exit();
    }
?>
Bueno este código permite letras y números dela a hasta la z, esta parte {5,9}$ se activa si pones de 5 a 9 caracteres ya sena letras o números o símbolos

Quisiera hacer que se activara si el máximo de caracteres pasara de 10 un ejemplo
Si X es mayor de 10 se activara
o también que si pasara de 10
no se como explicarme si no quedo claro por favor preguntar así yo responderé y me podes ayudar gracias
  #2 (permalink)  
Antiguo 25/07/2008, 17:06
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda con eregi()

Pero no estaras ahogandote en un vaso de agua?... podrias hacer algo como:
Código PHP:
if(strlen($date) > 10){
//aca tu codigo

Recuerda que para la x cantidad de caracteres en una cadena, esta esa funcion.

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #3 (permalink)  
Antiguo 25/07/2008, 17:17
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Ayuda con eregi()

Cita:
Iniciado por Marvin Ver Mensaje
Pero no estaras ahogandote en un vaso de agua?... podrias hacer algo como:
Código PHP:
if(strlen($date) > 10){
//aca tu codigo

Recuerda que para la x cantidad de caracteres en una cadena, esta esa funcion.

Suerte!
y como lo introduzco al script?
  #4 (permalink)  
Antiguo 25/07/2008, 17:21
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda con eregi()

Asi:
Código PHP:
if(strlen($date) > 10){
    if ((
eregi("[^a-z0-9ñ_-]{5,9}$"$date))){
        echo(
"Error:");
        exit();
    }

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #5 (permalink)  
Antiguo 25/07/2008, 17:32
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Ayuda con eregi()

Hola Marvin
Mira mi código para que te hagas una idea es un formulario

Código PHP:
$login stripslashes($_POST['login']);
$pass stripslashes($_POST['pass']);
if ((
eregi("[^a-z0-9ñ_-]"$login)) || (eregi("[^a-z0-9ñ_-]"$pass)))
    {
    echo(
"error");
        exit();
    } 
Esto lo que hace es evitar simbolos como <> ' " todos, solo permite letras y lo que tu quieras

Pero quiero hacer lo siguiente:
que si abren el formulario dinamicamente podran alterar el numero máximo de caracteres y poder insertar script sql injection , etc

Para prevenir esto quiero que si hay mas de 10 caracteres en alguna de las dos variables se active como si ponen un símbolo como <>
esto lo ase eregi()

http://es2.php.net/eregi
mira esto y así me podrás ayudar no entiendo mucho de esta pagina
  #6 (permalink)  
Antiguo 25/07/2008, 18:02
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda con eregi()

Mira... lo que entiendo es que quieres mostrar el mismo error que cuando no pasa la prueba de eregi no?...

Haz algo asi:
Código PHP:
$login stripslashes($_POST['login']);
$pass stripslashes($_POST['pass']);
if(
strlen($login) > 10 || strlen($pass) > 10){ //Si alguno es mas largo de 10 caracteres
    
echo("error"); //mostramos error tal como abajo
    
exit();
}else{
    if((
eregi("[^a-z0-9ñ_-]"$login)) || (eregi("[^a-z0-9ñ_-]"$pass))){
        echo(
"error");
        exit();
    }

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
  #7 (permalink)  
Antiguo 25/07/2008, 18:23
Avatar de j84625  
Fecha de Ingreso: junio-2008
Ubicación: Valencia
Mensajes: 170
Antigüedad: 15 años, 11 meses
Puntos: 2
Respuesta: Ayuda con eregi()

Cita:
Iniciado por Marvin Ver Mensaje
Mira... lo que entiendo es que quieres mostrar el mismo error que cuando no pasa la prueba de eregi no?...

Haz algo asi:
Código PHP:
$login stripslashes($_POST['login']);
$pass stripslashes($_POST['pass']);
if(
strlen($login) > 10 || strlen($pass) > 10){ //Si alguno es mas largo de 10 caracteres
    
echo("error"); //mostramos error tal como abajo
    
exit();
}else{
    if((
eregi("[^a-z0-9ñ_-]"$login)) || (eregi("[^a-z0-9ñ_-]"$pass))){
        echo(
"error");
        exit();
    }

Suerte!
Gracias amigo


Otra prgunta:

Como hago si algunaves algun user se pasa de 10 caracteres le saldra dicho error y guarde su ip o nombre de user en algún documento de txt o algo entiendes?
ya me tengo que ir a dormir por que mañana tengo cosas que hacer mañana reviso el foro gracias por todo
  #8 (permalink)  
Antiguo 25/07/2008, 19:31
Avatar de Marvin
Colaborador
 
Fecha de Ingreso: febrero-2005
Ubicación: global $Chile->Santiago;
Mensajes: 1.991
Antigüedad: 19 años, 2 meses
Puntos: 81
Respuesta: Ayuda con eregi()

Algo asi podria servir:
Código PHP:
$login stripslashes($_POST['login']);
$pass stripslashes($_POST['pass']);
if(
strlen($login) > 10 || strlen($pass) > 10){ //Si alguno es mas largo de 10 caracteres
    
$ip $_SERVER['REMOTE_ADDR']; //rescatamos la ip que esta accediendo al sistema
    
$archivo fopen("errorIngreso.txt","a") or die("Problemas en la creacion"); //abrimos o creamos el archivo
    
$fecha date("d-m-Y g:i a"); //calculamos la fecha y hora de hoy
    
fputs($archivo"Entrada incorrecta con Usuario: $login - Ip: $ip - Fecha: $fecha \r\n");//escribimos en el archivo
    
fclose($archivo); //cerramos el archivo
    
echo("error"); //mostramos error tal como abajo
    
exit();
}else{
    if((
eregi("[^a-z0-9ñ_-]"$login)) || (eregi("[^a-z0-9ñ_-]"$pass))){
        echo(
"error");
        exit();
    }

Suerte!
__________________
El que dice "Solo sé que nada sé", esta asumiendo que sabe algo.
Lea las FAQ's!
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 11:41.