Foros del Web » Programando para Internet » PHP »

Redireccion segun condicion if

Estas en el tema de Redireccion segun condicion if en el foro de PHP en Foros del Web. Hola a tod@s tengo un problema, desde un formulario de otra pagina, envio los datos para hacer las modificaciones en mi base de datos, llamando ...
  #1 (permalink)  
Antiguo 31/12/2005, 07:31
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 74
Antigüedad: 19 años, 8 meses
Puntos: 0
Redireccion segun condicion if

Hola a tod@s
tengo un problema, desde un formulario de otra pagina, envio los datos para hacer las modificaciones en mi base de datos, llamando a esta pagina, las modificaciones las realiza perfectamente, el problema es que una vez modificado, directamente me gustaria volver a cargar la pagina anterior, la del formulario desde donde he enviado los datos, y solo en el caso de que hubiese un error y no se realizasen las modificaciones, imprimir el error en esta pagina.
para conseguirlo he puesto una condicion con la redireccion, pero no me la realiza.

Código PHP:
if($result) {  
header("location:http://www.paginaanterior.com");
} else {   
echo 
"No se han podido enviar los datos. Mysql dijo:".mysql_error();   

Porque no realiza esta redireccion si carga bien los datos en la base de datos?
en lugar de poner la direccion completa existe alguna forma de que vaya a la pagina anterior?

os muestro el codigo entero de la pagina

Código PHP:
<?
$link 
mysql_connect("servidor","usuario","password") or die (mysql_error()); 
mysql_select_db("base_datos",$link) or die (mysql_error()); 

 

$bpempresa $_POST['bpempresa'];
$bpdireccion $_POST['bpdireccion'];   
$bpcpostal $_POST['bpcpostal'];   
$bppoblacion $_POST['bppoblacion'];   
$bpprovincia $_POST['bpprovincia'];   
$bptelefono $_POST['bptelefono'];   
$bpfax $_POST['bpfax'];   
$bpmovil $_POST['bpmovil'];  
$bpemail $_POST['bpemail'];   
$bpweb $_POST['bpweb'];  
$ID $_POST['ID'];  
$bpcontacto $_POST['bpcontacto'];  
$bpcargo $_POST['bpcargo'];  
$bpoperador $_POST['bpoperador'];   
$bpnlineas $_POST['bpnlineas']; 
$bpantiguedad $_POST['bpantiguedad']; 
$bppcportatil $_POST['bppcportatil'];   
$bphorario $_POST['bphorario'];   
$bpresultado $_POST['bpresultado'];   
$bphorallamada $_POST['bphorallamada'];   
$bpfechallamada $_POST['bpfechallamada'];
$fecha $_POST['fecha']; 
$nombre $_POST['nombre'];   
$sede $_POST['sede'];   
$departamento $_POST['departamento'];

$sql="UPDATE `bdpotencial` SET `bpfechallamada` =  '$bpfechallamada', `bphorallamada` =  '$bphorallamada', `bpcontacto` =  '$bpcontacto', `bpcargo` =  '$bpcargo', `bpweb` =  '$bpweb', `bpemail` =  '$bpemail', `bpmovil` =  '$bpmovil', `bpfax` =  '$bpfax', `bpoperador` =  '$bpoperador', `bpnlineas` =  '$bpnlineas', `bpantiguedad` =  '$bpantiguedad', `bppcportatil` =  '$bppcportatil', `fecha` =  '$fecha', `bphorario` =  '$bphorario', `bpresultado` =  '$bpresultado', `nombre` =  '$nombre', `sede` =  '$sede', `departamento` =  '$departamento'  WHERE `ID` =' $ID' "
$result =@mysql_query($sql,$link);  

if(
$result) {  
header("location:http://www.paginaanterior.com");
} else {   
echo 
"No se han podido enviar los datos. Mysql dijo:".mysql_error();   
}  
?>
Espero vuestra respuesta, Gracias y saludos
  #2 (permalink)  
Antiguo 31/12/2005, 10:19
Avatar de jerkan  
Fecha de Ingreso: septiembre-2005
Mensajes: 1.607
Antigüedad: 18 años, 7 meses
Puntos: 19
Pues es problable que sea por la sintaxis. Prueba a poner Location (con la L mayúscula) y la dirección separada de los dos puntos tal que así:

Código PHP:
header("Location: url"); 
  #3 (permalink)  
Antiguo 31/12/2005, 10:22
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 7 meses
Puntos: 1
Creo que la L o los : dan igual. Se te ha ocurrido mirar si puede ser por SQL? es decir, la varibale $result.
__________________
Mi página personal: Julián Urbano
  #4 (permalink)  
Antiguo 31/12/2005, 10:45
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 74
Antigüedad: 19 años, 8 meses
Puntos: 0
Lo he intentado cambiando location por Location y no me direcciona.
La variable $result, a que te refieres? de subir los datos los sube perfectamente, si hago lo mismo pero en vez de direccionar pongo algo asi

Código PHP:
if($result) {  
echo 
"Los datos del cliente han sido modificados con exito";   
} else {   
echo 
"No se ha podido completar la actualizacion. Mysql dijo:".mysql_error();   

si que funciona, imprime el echo, es cuando intento hacerlo con la redireccion que no la hace
  #5 (permalink)  
Antiguo 31/12/2005, 12:21
Avatar de caerolus  
Fecha de Ingreso: agosto-2004
Ubicación: Madrid, España
Mensajes: 280
Antigüedad: 19 años, 7 meses
Puntos: 1
Prueba a poner esto:
Código PHP:
if($result){
  
header("Location: http://www....)";
  exit;
}... 
__________________
Mi página personal: Julián Urbano
  #6 (permalink)  
Antiguo 31/12/2005, 12:49
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 74
Antigüedad: 19 años, 8 meses
Puntos: 0
Tampoco me da el resultado esperado.
  #7 (permalink)  
Antiguo 31/12/2005, 17:55
 
Fecha de Ingreso: diciembre-2005
Mensajes: 9
Antigüedad: 18 años, 3 meses
Puntos: 0
Prestale atencion a esto

Tenes que tener en cuanta que no deben haber ninguna linea en blanco antes de empezar tu programa si no el Header("Location: destino") no funciona.... Prestale atencion a eso que es un error muy comun...
  #8 (permalink)  
Antiguo 02/01/2006, 15:30
Usuario no validado
 
Fecha de Ingreso: agosto-2004
Mensajes: 74
Antigüedad: 19 años, 8 meses
Puntos: 0
he eliminado las lineas en blanco y no hace nada. existe otro sistema con php de redireccionar sin utilizar header? primero necesito que me haga el UPDATE y si lo realiza dirigirme a la pagina anterior.

Gracias
  #9 (permalink)  
Antiguo 02/01/2006, 16:42
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
estoy casi seguro que el header lo tienes que tener al comienzo de todo tu código...
  #10 (permalink)  
Antiguo 02/01/2006, 16:45
Avatar de mauled  
Fecha de Ingreso: marzo-2005
Ubicación: Cd. de México.
Mensajes: 3.001
Antigüedad: 19 años, 1 mes
Puntos: 33
checa el manual de esa función header()
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 16:35.