Foros del Web » Programando para Internet » PHP »

Redirección automática, cómo?

Estas en el tema de Redirección automática, cómo? en el foro de PHP en Foros del Web. Tengo un código que hasta hace poco funcionaba: setcookie("registrado",$registrado, time()-7776000,"/",""); header ("location: index.php"); exit; Lo que hace es borrar una cookie y 'expulsar' al usuario ...
  #1 (permalink)  
Antiguo 18/10/2004, 11:16
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Mensaje Redirección automática, cómo?

Tengo un código que hasta hace poco funcionaba:

setcookie("registrado",$registrado, time()-7776000,"/","");
header ("location: index.php");
exit;

Lo que hace es borrar una cookie y 'expulsar' al usuario hacia la página principal...

El detalle está enque antes funcionaba pero ahora me dá el error:

Warning: Cannot modify header information - headers already sent by (output started at c:\documents and settings\juan\mis documentos\misite\index.php:219) in c:\documents and settings\juan\mis documentos\misite\panel.php on line 171

Como sabéis no puede existir ninguna salida al navegador antes de enviar la cabecera, pues bien, ¿no había un código que se insertaba al principio de la página para que funcionara de todas maneras?

Saludos.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #2 (permalink)  
Antiguo 18/10/2004, 11:52
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
...mmm te refieres al que se utliza para confirmar si se han enviado cabeceras?

Yo se de esta instruccion, probablemente tu ya la conoces y si no, te ayudo un poco...

Código PHP:
// Si no se han enviado cabeceras, enviar una
if (!headers_sent()) {
    
header('Location: http://www.tupagina.com/');
    exit;
}
  
// Un ejemplo del uso de las parametros opcionales archivo y linea, a
// partir de PHP 4.3.0.
// Note que $nombre_archivo y $num_linea son pasados para su uso posterior.
// No les asigne valores con anterioridad.
if (!headers_sent($nombre_archivo$num_linea)) {
    
header('Location: http://www.tupagina.com/');
    exit; 
bueno, nos vemos... je je je
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
  #3 (permalink)  
Antiguo 18/10/2004, 11:58
 
Fecha de Ingreso: julio-2003
Ubicación: España
Mensajes: 723
Antigüedad: 20 años, 8 meses
Puntos: 0
Gracias ProgramadorMax

Gracias ProgramadorMax, pero me refería a esto:

<?
ob_start();
?>

y

<?
ob_end_flush();
?>

Ahora ya funciona como antes pero aún tengo la duda de porqué dejó de funcionar...

Saludos y gracias de nuevo.
__________________
Solo nosotros podemos decidir qué hacer con el tiempo que se nos ha dado. (Gandalf)
  #4 (permalink)  
Antiguo 18/10/2004, 13:03
Avatar de ProgramadorMax  
Fecha de Ingreso: diciembre-2003
Ubicación: Ciudad de Mexico.
Mensajes: 47
Antigüedad: 20 años, 4 meses
Puntos: 0
haaaa !!!!!!, ya entiendo, esto es para este tipo de casos...

Código PHP:
ob_start()//Aqui almacenas tu cookie sin causar errores
setcookie("registrado",$registradotime()-7776000,"/","");
ob_end_flush();//y aqui ya das salida
header ("location: index.php"); 
Muy interesante, he aprendido un poco mas... je je je
__________________
Tonto es aquel que tiene el conocimiento y no sabe como usarlo...
Solo destripando creo mostruos de soluciones.
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 17:19.