Foros del Web » Programando para Internet » PHP »

Por que este error REG_EBRACK

Estas en el tema de Por que este error REG_EBRACK en el foro de PHP en Foros del Web. Este el mensaje de Error Warning: ereg_replace() [function.ereg-replace]: REG_EBRACK: in c:\AppServ\www\Azuldiseno\sql.php on line 6 Francisco/ y la linea que marca es esta.. $gnombre = ereg_replace("/", ...
  #1 (permalink)  
Antiguo 22/12/2004, 13:46
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
Por que este error REG_EBRACK

Este el mensaje de Error
Warning: ereg_replace() [function.ereg-replace]: REG_EBRACK: in c:\AppServ\www\Azuldiseno\sql.php on line 6
Francisco/



y la linea que marca es esta..

$gnombre = ereg_replace("/", "", $_POST["nombre"]);


Ahora bien.. no hay una funcion que permita hacer este tipo de oprecion pero con todos los elementos de un form... tengo 4 elementos más y tendria que hacer una linea distinta para cada elemento y tantas como caracteres quiera restringir... Grax
__________________
Buena Vida...
Francisco
  #2 (permalink)  
Antiguo 22/12/2004, 14:24
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
el error es por que tu expresión regular es incorrecta para el reg engine. Si adivino lo que querías hacer, lo correcto sería:
Código PHP:
foreach ( $_POST as $index => $value ) {
    $
$index str_replace("/","",$_POST[$index]);

esto te quita todos los caracteres '/' de cada variable post recibida, asi mismo te crea variables con los nombres de los indices de POST, es decir, si por post recibes $_POST['nombre'], automaticamente te crea la variable $nombre, como si tuvieras la directiva register_globals habilitada, lo cual no es recomendado :)
  #3 (permalink)  
Antiguo 22/12/2004, 14:50
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
sism82, tengo una consulta sobre lo que me contestaste...

tengo 3 input nombre, mail, mensaje.

si luego quiero hacer un echo.. cómo lo hago..

lo hago asi echo $_POST["nombre"];


cómo sé a que index le corresponde a nombre??
__________________
Buena Vida...
Francisco
  #4 (permalink)  
Antiguo 22/12/2004, 14:54
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
como te mencioné, el ciclo foreach del código que te puse, genera variables con el mismo nombre de la llave de la variables $_POST. Por ejemplo, para $_POST['nombre'], genera una variable llamada $nombre con el contenido casi igual, la unica diferencia del contenido es por str_replace();

sintesis:
si $_POST['nombre'] tiene como contenido '\pedro \ paramo'
entonces $nombre tiene como contenido 'pedro paramo'
entonces echo $nombre; o echo $_POST['nombre'] son casi lo mismo, solo sin la diagonales que elimina str_replace.

saludos
  #5 (permalink)  
Antiguo 22/12/2004, 14:56
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
es que segun lo que pude leer hice esto

foreach ( $_POST as $index => $value ) {
$$index = str_replace("/","",$_POST[$index]);
}

echo $_POST['nombre'];

Pero igual me imprime esto

^Francisco/[>

osea no le sacó el /
__________________
Buena Vida...
Francisco
  #6 (permalink)  
Antiguo 22/12/2004, 14:58
Avatar de sism82  
Fecha de Ingreso: octubre-2003
Ubicación: Guadalajara
Mensajes: 865
Antigüedad: 20 años, 6 meses
Puntos: 1
claro, lee bien los mensajes que te pongo, $_POST['nombre'] es la variable 'original', sin cambios. Para ver los cambios haces echo $nombre
  #7 (permalink)  
Antiguo 22/12/2004, 14:59
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
aaah ok.. eso no lo comprendi.. gracias...
__________________
Buena Vida...
Francisco
  #8 (permalink)  
Antiguo 22/12/2004, 15:13
 
Fecha de Ingreso: marzo-2003
Ubicación: onde toy?
Mensajes: 1.437
Antigüedad: 21 años, 1 mes
Puntos: 9
Hey y si quiero reemplazar más de un caracter??

hice esto pero no funca..

$patron = '(<>[/*^)';
foreach ( $_POST as $index => $value ) {
$$index = eregi_replace($patron, "",$_POST[$index]);


Cómo deberia ser?

Gracias
__________________
Buena Vida...
Francisco
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 20:13.