Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Error incomprensible

Estas en el tema de Error incomprensible en el foro de PHP en Foros del Web. ¡Hola! Tengo un archivo que adjunto en todas mis páginas llamado SiempreAdjunto.php , y que siempre me imprime un cierto HTML. Pues bien, tengo una ...
  #1 (permalink)  
Antiguo 20/03/2016, 11:59
 
Fecha de Ingreso: diciembre-2014
Ubicación: Madrid
Mensajes: 274
Antigüedad: 9 años, 4 meses
Puntos: 5
Error incomprensible

¡Hola!

Tengo un archivo que adjunto en todas mis páginas llamado SiempreAdjunto.php , y que siempre me imprime un cierto HTML. Pues bien, tengo una página en la que se ejecuta una consulta MySQL y, con un header, vuelve a la página anterior. ¿Por qué me da el error que dejo debajo? Gracias
Error

Código:
Warning: Cannot modify header information - headers already sent by (output started at /Applications/XAMPP/xamppfiles/htdocs/aprendamos/Plataforma/Cabecera/CabeceraRol3.php:63) in /Applications/XAMPP/xamppfiles/htdocs/aprendamos/Plataforma/Datos/CursosMaterias/Editar.php on line 19
SiempreAdjunto.php

Código PHP:
Ver original
  1. <?php
  2. // Me conecto a la base de datos con la variable $MyConnect
  3. // También existe en las páginas y se deberá cambiar siempre que se deba en:
  4.     // index.php (Página de login)
  5.     // Acceder.php (tramitador del login)
  6.         if ($_SERVER['HTTP_HOST'] == 'localhost'){
  7.             $MyConnect = new MySQLi('localhost','root','','aprendamos');
  8.         }else{
  9.             $MyConnect = new MySQLi('db612399625.db.1and1.com','dbo612399625','aprendamos','db612399625');
  10.         }
  11. // Inicio la sesión siempre y por sistema en todas las páginas
  12.     session_start();
  13. // Si no existe un usuario de sesión nos iremos al inicio
  14.     if (!isset($_SESSION['NombreUsuario'])){
  15.         if ($_SERVER['HTTP_HOST'] == 'localhost'){
  16.             header ("Location: http://localhost/aprendamos/index.php?Err=2");
  17.         }else{
  18.             header ("Location: http://".$_SERVER['HTTP_HOST']."/index.php?Err=2");
  19.         }
  20.     }
  21. // Compruebo si la página está en modo mantenimiento
  22.     $QuerySP = "SELECT * FROM Status WHERE `Item` = 'ModoMantenimiento'";
  23.     $MyQuerySP = $MyConnect->query($QuerySP);
  24.     $MyFetchSP = $MyQuerySP->fetch_assoc();
  25. // Si está en modo mantenimiento nos vamos fuera con mensaje de advertencia
  26.     if ($MyFetchSP['Informacion'] === 'ON'){
  27.         if ($_SERVER['HTTP_HOST'] == 'localhost'){
  28.             header ("Location: http://localhost/aprendamos/index.php?Err=4");
  29.         }else{
  30.             header ("Location: http://".$_SERVER['HTTP_HOST']."/index.php?Err=4");
  31.         }
  32.     }
  33. // Como ya no puedo echar a nadie de ninguna forma más adjunto la cabecera, la cual variará en función del rol.
  34.     if ($_SERVER['HTTP_HOST'] == 'localhost'){
  35.         include ($_SERVER['DOCUMENT_ROOT']."/aprendamos/Plataforma/Cabecera/CabeceraRol".$_SESSION['RolUsuario'].".php");
  36.     }else{
  37.         include ("http://".$_SERVER['HTTP_HOST']."/Plataforma/Cabecera/CabeceraRol".$_SESSION['RolUsuario'].".php");
  38.  
  39.     }
Editar.php (página de la consulta y donde se da el error)

Código PHP:
Ver original
  1. <?php
  2. // Requiero, y simplemente requiero, el 'siempre-adjunto'
  3.     include_once ("../../../SiempreAdjunto.php");
  4. // Creo el query para guardar los cambios en el ID correspondiente
  5.     $Query = "
  6.     UPDATE
  7.       `Asignaturas`
  8.     SET
  9.       `Asignatura` = '".utf8_decode($_GET['Asignatura'])."',
  10.       `AsignaturaReducida` = '".$_GET['AsignaturaReducida']."',
  11.       `Curso` = '".$_GET['Curso']."',
  12.       `CursoReducido` = '".$_GET['CursoReducido']."',
  13.       `Profesor` = '".$_GET['Profesor']."'
  14.     WHERE
  15.       `ID` = '".$_GET['ID']."'
  16.     ";
  17.     $MyQuery = $MyConnect->query($Query);
  18. // Me voy a la página de inicio
  19.     header ("Location: Inicio.php");
  20. ?>
  #2 (permalink)  
Antiguo 20/03/2016, 15:00
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Error incomprensible

Si lees el manual de header() entenderás la razón del error:
Cita:
Iniciado por http://php.net/manual/es/function.header.php
Recuerde que header() debe ser llamado antes de mostrar nada por pantalla, etiquetas HTML, líneas en blanco desde un fichero o desde PHP. Es un error muy común leer código con funciones como include o require, u otro tipo de funciones de acceso de ficheros que incluyen espacios o líneas en blanco que se muestran antes de llamar a la función header(). Sucede el mismo problema cuando se utiliza un solo fichero PHP/HTML.
Así que de "incomprensible" no tiene nada el error, es muy claro y está documentado.

Si usas un traductor podrías entender lo siguiente:
Cita:
output started at /Applications/XAMPP/xamppfiles/htdocs/aprendamos/Plataforma/Cabecera/CabeceraRol3.php:63
Eso dice que la "salida" se comenzó desde la linea 63 de dicho script, así que por esa razón header() no "funciona".
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: html, mysql, select, variable
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 03:19.