¿Qué es este error de header?

Hola:
EL la página que estoy haciendo en un botón hago lo figuiente:
<input type="button" name="button" value="<?php echo $_SESSION['med17'] ; ?>" onClick="window.location.href='nopersonado.php?cip=<?php echo $consC[$i] ; ?>&med=<?php echo $consM[$i]; ?>&dia=<?php echo $consD[$i];?>&hora=<?php echo $consH[$i] ;?>'">
Lo que quiero hacer es que al pinchar este botón me vaya a una página (nopersonado.php) que haga lo siguiente:
$_GET['cip'];
$_GET['med'];
$_GET['dia'];
$_GET['hora'];
$c= $_GET['cip'];
$med= $_GET['med'];
$dia= $_GET['dia'];
$hora= $_GET['hora'];
$a='NO';
$id=mysql_connect("localhost","","");
mysql_select_db("bd_proyecto2",$id);
$consulta="update cita_med set personado='$a' where cip='$c' and hora='$hora' and dia='$dia' and codmed='$med'";
$resultado=mysql_query($consulta,$id);
//echo "$med $dia $hora $c ";
$pagina= 'MED-LISt-CITAS.php';
header("Location:" . $pagina );
Es decir que m haga el update de la base de datos y recargue la pag anterior (q es usuario no vea esta página nopersonado.php), pero me da el siguiente error:
Warning: Cannot modify header information - headers already sent by (output started at C:\Archivos de programa\Apache Group\Apache2\htdocs\saci\nopersonado.php:9) in C:\Archivos de programa\Apache Group\Apache2\htdocs\saci\nopersonado.php on line 29
Y no tengo ni idea de lo q significa ¿sabrías decirme q es lo q falla?
Muchísimas gracias por leer mi pregunta y por tu tiempo.
Un saludo.
Scialfa

1 respuesta

Respuesta
1
Cuando se ejecuta una página web en php se procesa en el servidor y se envían los datos al cliente, es decir, al navegador del usuario. Antes de enviar el restultado de la página se envía la cabecera para que el navegador sepa interpretarlo. Esta cabecera se envía en el momento en que se envía el primer dato al navegador. Por tanto, tienes que evitar enviar algún dato antes de redirigir a la página que deseas.
¿Lo más habitual suele ser dejar algún espacio en blanco o salto de línea antes de <?php, o hacer algún echo o print antes de la sentencia header.
Tu código podría quedar de la siguiente forma:
<?php
$c= $_GET['cip'];
$med= $_GET['med'];
$dia= $_GET['dia'];
$hora= $_GET['hora'];
$a='NO';
$id=mysql_connect("localhost","","");
mysql_select_db("bd_proyecto2",$id);
$consulta="update cita_med set personado='$a' where cip='$c' and hora='$hora' and dia='$dia' and codmed='$med'";
$resultado=mysql_query($consulta,$id);
//echo "$med $dia $hora $c ";
$pagina= 'MED-LISt-CITAS.php';
header("Location:" . $pagina);
?>
Esta todo bien ya que has anulado la sentencia echo que tienes antes de definir $pagina. ¿Asegúrate de no dejar espacios en blanco en el archivo .php antes de poner <?php. Dentro del bloque de sentencias php si puedes dejar espacios y líneas en blanco.
Hola.. MUCHÍSIMAS GRACIAS, ya me va, tuve que quitar lo de doctipe, head, body, y poner el código php sin nada más en la página y función.
Gracias por contestar tan rapido, ya vi la respuesta el sbado pero no lo pude probar hasta hoy.
Un saludo
Scialfa

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas