elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  problemas con el header
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: problemas con el header  (Leído 4,227 veces)
kosis157

Desconectado Desconectado

Mensajes: 186



Ver Perfil
problemas con el header
« en: 8 Enero 2009, 17:30 pm »

Hola a ver si me pueden solucionar, el tema es que tengo un script parecido a eso:
Código
  1. include("conexionBD.php");
  2. .
  3. .
  4. .
  5. header("index.php");
  6.  

y el error
Warning: Cannot modify header information ....

Pues como me daba error, cree una clase BD:
Código
  1. class BaseDatos{
  2. var $hostname,$user,$password,$dtb;
  3.  
  4.    function BaseDatos(){
  5. if($_SERVER['REMOTE_ADDR']=="127.0.0.1"){
  6. $hostname="localhost";
  7. $user="root";
  8. $password="";
  9. $dtb="colegio";
  10. }else{
  11. $hostname="localhost";
  12. $user="***";
  13. $password="**";
  14. $dtb="colegio";
  15. }
  16.        $this->hostname = $hostname;
  17. $this->user = $user;
  18. $this->password = $password;
  19. $this->dtb=$dtb;
  20.    }
  21.  
  22.    function conect(){
  23. $isOk=true;
  24. $conexion = mysql_connect($this->hostname,$this->user,$this->password);
  25. if(!$conexion){
  26. $isOk=false;
  27. }else{
  28. $c=mysql_select_db($this->dtb, $conexion);
  29. if(!$c) $isOk=false;
  30. }
  31. return $isOk;
  32.    }
  33. }
  34.  
  35.  

dentro del archivo pongo:
Código
  1. require("includes/classes/BaseDatos.php");
  2. $bd=new BaseDatos();
  3. $bd->conect();
  4. .
  5. .
  6. .
  7. header("index.php");
  8.  

y me sigue dando el mismo error y no hay ningun echo, también cambie el require por include pero el error sigue


PD: Me gustaría tener un archivo donde haya el usuario, contraseña, bd de la Base de datos por si tengo que cambiar no tenga que ir archivo por archivo.



gracias


En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: problemas con el header
« Respuesta #1 en: 8 Enero 2009, 18:48 pm »

Yo uso al inicio

al inicio : ob_start();
al final : ob_flush();


En línea

kosis157

Desconectado Desconectado

Mensajes: 186



Ver Perfil
Re: problemas con el header
« Respuesta #2 en: 8 Enero 2009, 21:17 pm »

Yo uso al inicio

al inicio : ob_start();
al final : ob_flush();
ok funciona una cosa el ob_flush lo pones al final de la página o antes de que haga el header?
En línea

Hadess_inf
Desesperado
Colaborador
***
Desconectado Desconectado

Mensajes: 2.048


Nueva Vida


Ver Perfil WWW
Re: problemas con el header
« Respuesta #3 en: 9 Enero 2009, 00:49 am »

Es correcto. al final .. xD
En línea

Freeze.


Desconectado Desconectado

Mensajes: 2.732



Ver Perfil WWW
Re: problemas con el header
« Respuesta #4 en: 9 Enero 2009, 00:52 am »

Me podrian explicar mas o menos como es esto del ob_start y ob_flush.

Ya lei la info de PHP pero no entendí.
En línea

WHK
Moderador Global
***
Desconectado Desconectado

Mensajes: 6.589


Sin conocimiento no hay espíritu


Ver Perfil WWW
Re: problemas con el header
« Respuesta #5 en: 9 Enero 2009, 06:14 am »

Lo que sucede es que un header significa "cabezera", cuando tu servidor envía una información a tu explorador este se compone en cabezera y cuerpo, en este caso no puedes poner parte de la cabezera después del cuerpo:


+----------------+
|    CABEZERA    |
+----------------+
|     CUERPO     |
+----------------+
|     TERMINO    |
+----------------+


En este caso algunos servidores utilizan un buffer de termino pero no le prestes atención a eso, solo necesitas saber que no puedes insertar un header después de haber iniciado con las funciones y la página en si ya que el header se envía una sola ves y después solo te irá mostrando errores.

Que quieres hacer escribiendo header('index.php'); ?, solo harás que se incluya en la cabezera pero no hará nada más.

Si te da error al enviar la cabezera es porque lo estás enviando después de escribir algo en el explorador.

Citar
Me podrian explicar mas o menos como es esto del ob_start y ob_flush.
Significa que no enviará nada al explorador hasta cuando declares ob_end_flush y ahi recién se enviará todo, es para evitar mostrar este tipo de errores cuando algo falla antes de que las cabezeras sean enviadas pero no es la idea hacerlo, es algo así como tapar un oyo con paja.
« Última modificación: 9 Enero 2009, 06:18 am por WHK » En línea

Erik#


Desconectado Desconectado

Mensajes: 1.138


Gundam


Ver Perfil
Re: problemas con el header
« Respuesta #6 en: 9 Enero 2009, 14:18 pm »

Tambien, si lo que intentas es una redirección:

Código
  1. header("Location: index.php");
En línea

SaXo

Desconectado Desconectado

Mensajes: 166


Ver Perfil
Re: problemas con el header
« Respuesta #7 en: 9 Enero 2009, 15:21 pm »

Si y no a todo lo dicho.

Es parcialmente correcto.

cuando hacemos un header, lo que estamos haciendo es modificar la cabecera que se ha enviado al cliente. El error se produce cuando se impreso algo por pantalla, como un echo, printf, un error, etc... ya que después de enviar la información al cliente no se puede modificar la cabecera produciendo un error del tipo que comentan más arriba.

ob es el buffer de salida php. Cuando usamos un ob_start lo que estamos haciendo es el uso del buffer salida de php para que el código que se esta ejecutando realize la ejecución en el buffer y una vez terminada obtener la ejecución del buffer y liberarlo. De esta forma, como aún no se enviado información al cliente se puede modificar la cabecera sin problemas después de un echo o un printf.

Un saludo,

SaXo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Problemas con Header para redireccionar
Desarrollo Web
rommel89 1 2,127 Último mensaje 7 Septiembre 2012, 07:15 am
por rommel89
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines