Comunidad de diseño web y desarrollo en internet online

uso de header ??

Citar            
MensajeEscrito el 11 Jun 2008 01:48 pm
Porque tratando de redireccionar una pagina en PHP con header, me saca este warning, ademas de no hacer mas nada . :?
Warning: Cannot modify header information - headers already sent by (output started at C:\AppServ\www\sitio\acciones\contenido\editar_contenido.acc.php:14) in C:\AppServ\www\sitio\acciones\contenido\editar_contenido.acc.php

Código :

header("Location: ../../vista/contenido/contenido.php?id=".$id_contenido);

salu2 ^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 11 Jun 2008 02:02 pm
Zandy, PHP devuelve ese error cuando no puede redirigir la pagina porque no puede modificar el encabezado (la barra de URL), el problema esta porque posiblemente antes de ejecutarse la función header() la pagina ya haya generado contenido HTML ¿me explico?, es decir si antes de ejecutar esa función se muestra algún contenido HTML no funciona ejemplo:

Código :

echo ‘<HTML><body>Algun tipo de contenido</body></HTML>’;

Header(‘location:www.loquesea.com’)


Este ejemplo daría el mismo error
:)

espero que te sirva un saludo

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2008 02:13 pm
wow, pues sí, tenia un echo anteriormente.... Y como puedo redirigir una pagina con contenido HTML mediante PHP :?

gracias nuevamente. ^^

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 11 Jun 2008 02:22 pm
En teoría no se puede y en la practica aun no lo eh conseguido jaja (se ve que la teoría funciona) lo que puedes hacer en redirigirlo con javascript, en ese tema no te puedo ayudar mucho,

en este post exlica como redirigir una pagina pasado cierto tiempo

http://vdomk.blogspot.com/2006/09/vadrotator.html

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2008 02:36 pm
ufff, no queria llegar a eso, pero bueno... por cierto, que extraño que PHP no tenga algo parecido al Response.Redirect de ASP....

:-)

Por Zandy

Claber

1345 de clabLevel

5 tutoriales

Genero:Masculino   Premio_Secretos

firefox
Citar            
MensajeEscrito el 11 Jun 2008 02:52 pm

Zis escribió:

En teoría no se puede y en la practica aun no lo eh conseguido


ERROR
si se puede, me explico:

tienes una informacion en HTML (<table>,<hr>,<b>, etc)

y quieres enviarla por medio de php (location: .......) a otra pagina

debes almacenar todo lo que quieras enviar en una $variable = '.........'

luego la serializas algo asi como: $data = serialize($variable);

la envias con: location: tupagina.php?data=$data

y en tu pagina de llegada la descerializas con $llegada = unserialize($data);

y listo ya has enviado html de un lado a otro U_U

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 11 Jun 2008 03:01 pm
ahora si lo que quieres es pasar de una pagina que tienes con HTML y pasar a otra usando php

para pasar de una pagina a la otra despues de un evento, por ejemplo dar click en un link

Código :

<a href='intermedio.php'>aqui<a />

dentro de intermedio.php colocas el 

Header(‘location: tupagina.php’);



o automaticamente despues de xxxx milisegundos

Código :

echo '<meta http-equiv="refresh" content="5; url=tupagina.php"> '

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 11 Jun 2008 03:19 pm
gracias por tu aporte jpcw pero me parece que la solucion que diste es la misma que yo le pace mediante el vinculo

http://vdomk.blogspot.com/2006/09/vadrotator.html

:wink:

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 11 Jun 2008 03:23 pm
me olvidaba espero que no lo tomes a mal pero reitero que modificar los encabezados con contenido html antes no es posible de ninguna manera

ERROR
si se puede, me explico:

tienes una informacion en HTML (<table>,<hr>,<b>, etc)

y quieres enviarla por medio de php (location: .......) a otra pagina

debes almacenar todo lo que quieras enviar en una $variable = '.........'

luego la serializas algo asi como: $data = serialize($variable);

la envias con: location: tupagina.php?data=$data

y en tu pagina de llegada la descerializas con $llegada = unserialize($data);

y listo ya has enviado html de un lado a otro U_U


lo que explicaste es como pasar los datos html, y no como redireccionar una pagina con html incluido anteriormente ^^

Por Zis

Claber

314 de clabLevel

1 tutorial

Genero:Masculino  

Bell Ville - Cordoba - Argentina

firefox
Citar            
MensajeEscrito el 12 Jun 2008 06:56 am
una pequeña función:

Código :

function redirect($url) 
{
    if (!headers_sent())
   {
        header('Location: '.$url);
   }
    else 
   {
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$url.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
        echo '</noscript>';
    }
}
redirect('http://www.cristalab.com');

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 12 Jun 2008 12:47 pm
c00l, yo uso una igualita, pero que ví hace tiempo, aqui

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 12 Jun 2008 01:22 pm
bueno en definitiva es casi lo mismo, un (meta http-equiv="refresh") ;)

Por jpcw

Claber

1715 de clabLevel

1 tutorial

Genero:Masculino  

AlgoritmicBrainDesigner

firefox
Citar            
MensajeEscrito el 12 Jun 2008 01:43 pm

jpcw escribió:

bueno en definitiva es casi lo mismo, un (meta http-equiv="refresh") ;)


La diferencia, es que si lo haces por php, puedes ser opcional.

Código :

if( $IBelieveICanFly)
{
redirect("www.softpr0n.com");
}
else
{
//quedate aqui y muestra algo
echo "hola";
}

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 12 Jun 2008 04:37 pm
Brillante solución la tuya Maikel. Siempre redireccionaba con JS, pero había leido por ahí algo sobre que no es bueno y no sé que otras yerbas. Pero ahora detectando si lo hace con PHP o JS, es mejor.

:)

Exitos!

Por Necrophasto

Claber

148 de clabLevel



Genero:Masculino  

Diseñador gráfico y web

mozilla
Citar            
MensajeEscrito el 12 Jun 2008 09:48 pm

Dano escribió:

c00l, yo uso una igualita, pero que ví hace tiempo, aqui


es la misma función, solo que edite y copie mal, falto algo. La que queria poner era esta:

Código :

function redirect($url) 
{
    if (!headers_sent())
   {
        header('Location: '.$url);
       exit;
   }
    else 
   {
        echo '<script type="text/javascript">';
        echo 'window.location.href="'.$url.'";';
        echo '</script>';
        echo '<noscript>';
        echo '<meta http-equiv="refresh" content="0;url='.$url.'" />';
        echo '</noscript>';
    }
}
redirect('http://www.cristalab.com');

Es igual, solo que con el exit; que recomienda php poner despues de header Location

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.