Foros del Web » Programando para Internet » PHP »

error al redireccionar

Estas en el tema de error al redireccionar en el foro de PHP en Foros del Web. Hola, por que me da error al redireccionar con este codigo?: Código PHP: header  ( "Location: http://www.web.com" );  asi lo estoy usando: Código PHP: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> ...
  #1 (permalink)  
Antiguo 09/06/2010, 10:49
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
error al redireccionar

Hola, por que me da error al redireccionar con este codigo?:

Código PHP:
header ("Location: http://www.web.com"); 
asi lo estoy usando:
Código PHP:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>

<body>
</body>
</html>
      
      <?
      
//recibimos las variables enviadas por el formulario      
      
$otro=$_POST['otro'];
      
$mediafire=$_POST['mediafire'];
      
$rapidshare=$_POST['rapidshare'];
      
$megaupload=$_POST['megaupload'];
      
$caratula=$_POST['caratula'];
      
$nombre=utf8_decode($_POST['nombre']);
      
$anio=$_POST['anio'];
      
$idiomautf8_decode($_POST['idioma']);
      
$detalles=utf8_decode($_POST['detalles']);
      
$servidor=$_POST['servidor'];
      
//conectamos a la base
      
$connect=mysql_connect("xxxxx","xxxx","xxxx");
      
//Seleccionamos la base
      
mysql_select_db("xxxx",$connect);
      
//insertamos los registros almacenados en las variables   
     
mysql_query("insert into enlaces(caratula,nombre,anio,megaupload,otro,mediafire,rapidshare,idioma,servidor,detalles) 
     VALUES ('"
.$caratula."','".$nombre."','".$anio."','".$megaupload."','".$otro."','".$mediafire."','".$rapidshare."','".$idioma."','".$servidor."','".$detalles."')",$connect)
     
header ("Location: http://www.web.com"); 
     
?>

Error:
Cita:
Parse error: syntax error, unexpected T_STRING in /homepages/18/d317375696/htdocs/enviar.php on line 31
  #2 (permalink)  
Antiguo 09/06/2010, 10:56
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: error al redireccionar

tienes dos errores:

1. te falta ; (punto y coma) en el mysql_query()
2. el header no va a funcionar puesto que ya se imprimio esto:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Untitled Document</title>
  5. </head>
  6.  
  7. </body>
  8. </html>

antes del header, sugerencia: elimina ese segmento de código html, es innecesario.
  #3 (permalink)  
Antiguo 09/06/2010, 11:01
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: error al redireccionar

Cita:
Iniciado por rpv Ver Mensaje
tienes dos errores:

1. te falta ; (punto y coma) en el mysql_query()
2. el header no va a funcionar puesto que ya se imprimio esto:

Código HTML:
Ver original
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  2. <html xmlns="http://www.w3.org/1999/xhtml">
  3. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  4. <title>Untitled Document</title>
  5. </head>
  6.  
  7. </body>
  8. </html>

antes del header, sugerencia: elimina ese segmento de código html, es innecesario.

ok he eliminado el html, y he puesto las ;

y me ha dado este error:
Cita:
Warning: Cannot modify header information - headers already sent by (output started at /homepages/18/d317375696/htdocs/enviar.php:1) in /homepages/18/d317375696/htdocs/enviar.php on line 20
el 20 es:
Código PHP:
Ver original
  1. header ("Location: http://www.web.com");

Última edición por Most; 09/06/2010 a las 11:07
  #4 (permalink)  
Antiguo 09/06/2010, 11:11
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: error al redireccionar

parece que dejaste espacios en blanco antes de <?, recuerda, para usar la función de cabecera (header), no se debe imprimir nada antes (ni espacios en blanco)
  #5 (permalink)  
Antiguo 09/06/2010, 11:17
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: error al redireccionar

vale, me ha funcionado a la perfeccion, otra cosa, por ejemplo, como podriaa hacer:

El mensage se ha publicado en 5 segundos seras redirigido.
El mensage no se ha mandado compruebe algo.

¿?
  #6 (permalink)  
Antiguo 09/06/2010, 11:39
rpv
 
Fecha de Ingreso: febrero-2010
Mensajes: 275
Antigüedad: 14 años, 2 meses
Puntos: 10
Respuesta: error al redireccionar

al usar redirección desde la función header no puedes imprimir nada antes ni nada después, bueno, la impresión del mensaje se da pero el navegador ya está en otro sitio.

Para hacer lo que necesitas entonces no debes usar redirección del header, podrías usar redirección con la etiqueta meta de (x)html o hacerlo desde javascript.

un ejemplo usando la etiqueta meta:

Código PHP:
Ver original
  1. <?
  2.       //recibimos las variables enviadas por el formulario      
  3.       $otro=$_POST['otro'];
  4.       $mediafire=$_POST['mediafire'];
  5.       $rapidshare=$_POST['rapidshare'];
  6.       $megaupload=$_POST['megaupload'];
  7.       $caratula=$_POST['caratula'];
  8.       $nombre=utf8_decode($_POST['nombre']);
  9.       $anio=$_POST['anio'];
  10.       $idioma= utf8_decode($_POST['idioma']);
  11.       $detalles=utf8_decode($_POST['detalles']);
  12.       $servidor=$_POST['servidor'];
  13.       //conectamos a la base
  14.       $connect=mysql_connect("xxxxx","xxxx","xxxx");
  15.       //Seleccionamos la base
  16.       mysql_select_db("xxxx",$connect);
  17.       //insertamos los registros almacenados en las variables  
  18.      mysql_query("insert into enlaces(caratula,nombre,anio,megaupload,otro,mediafire,rapidshare,idioma,servidor,detalles)
  19.     VALUES ('".$caratula."','".$nombre."','".$anio."','".$megaupload."','".$otro."','".$mediafire."','".$rapidshare."','".$idioma."','".$servidor."','".$detalles."')",$connect);
  20. //     header ("Location: http://www.web.com");<-omitimos el header puesto que ya no va a hacer la redirección aquí.
  21. ?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
  22. <html xmlns="http://www.w3.org/1999/xhtml">
  23. <head>
  24. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  25. <meta http-equiv="refresh" content="5;url=http://www.web.com" /><!--ahora aquí se da la redirección-->
  26. <title>Untitled Document</title>
  27. </head>
  28.  
  29. <body>
  30. aquí pones tu mensaje.
  31. </body>
  32. </html>
  #7 (permalink)  
Antiguo 09/06/2010, 11:54
Avatar de Most  
Fecha de Ingreso: marzo-2009
Mensajes: 642
Antigüedad: 15 años, 1 mes
Puntos: 6
Respuesta: error al redireccionar

muchas gracias compañero

Etiquetas: redireccionar
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:53.