PHP - header location en php5

 
Vista:

header location en php5

Publicado por Jarlis Pereira (1 intervención) el 04/11/2009 21:54:44
Hola amigos
Tengo una aplicacion en php4 y me funcioa a la perfencion todo, pero cuando la pasa a un servidor que tiene php5 me da problema en los header location yo se que el problema esta aqui

header("Location: ver_polizas.php");
quisira que me ayudaran y me dijieran como poner ese header en php5



Gracias


Jarlis Pereira
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:header location en php5

Publicado por Diego Romero (1450 intervenciones) el 05/11/2009 07:36:14
Dices que te da problemas pero no dices de qué problema se trata.
Ya desde el principio estás usando incorrectamente header(). Debes pasarle la URI absoluta y no solo el nombre del script. Algunos navegadores no entienden bien el encabezado Location de la forma que la tienes y algunos servidores web tampoco parsean bien de esa forma.

Te sugiero que hagas algo como esto:

<?php
function URIBase() {
$host = $_SERVER['HTTP_HOST'];
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\');
return "http://" . $host . $uri . "/";
}
$pagina = "ver_polizas.php";
header("Location: ".URIbase().$pagina);
?>

Aquí la función URIbase te devolverá la URI absoluta del lugar donde está el script que ejecuta el header. Puedes poner esa función en una biblioteca de funciones para que puedas usarla donde haga falta.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:header location en php5

Publicado por smith (1 intervención) el 14/08/2010 08:00:29
este error Warning: Cannot modify header information sale porque no se puede modificar las cabeceras y se debe a que una vez que haya una salida en pantalla, ya sea un echo, print o cualquier otra forma, el header no puede modificar el contenido del <head> para evitar ese error debes de quitar cualquier salida a pantalla antes del header(location:'') o de lo contrario utilizar el ob_start() y ob_end_flush() como dice gvargas.
Código PHP:
<?php
ob_start();//al inicio de la página
//aquí todo tu codigo
ob_end_flush();//al final de la página
?>
explicacion:
el ob_start().- indica al servidor que la página en cuestion será almacenada en el buffer, y
el ob_end_flush().- le dice al servidor que libere el contenido del buffer, con esto te aseguras de que al estar la página en el buffer es posible modificar las cabeceras con el header.

se que esto te va ayudar pues a mi me soliciono es eproblema por version de php 4 a php5
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar