Foros del Web » Programando para Internet » PHP »

Problema con Header() y include()

Estas en el tema de Problema con Header() y include() en el foro de PHP en Foros del Web. Hola amigos, pues la cosa está así. Tengo una página index2.php y en él tengo un include(anketa.php) Pero el problema es que en el archivo ...
  #1 (permalink)  
Antiguo 21/10/2006, 16:32
Avatar de Yamilskate  
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 0
Problema con Header() y include()

Hola amigos, pues la cosa está así.

Tengo una página index2.php y en él tengo un include(anketa.php) Pero el problema es que en el archivo anketa.php tiene un header() por lo que cuando entro en mi página index2.php me da el clasico error:


Warning: Cannot modify header information - headers already sent by (output started at /www/sites/1/iespana.es/y/a/yamilds/site/index2.php:342) in /www/sites/1/iespana.es/y/a/yamilds/site/anketa.php on line 58

Ya intente poniendo el <? ob_start(); ?> al inicio y el otro code al final, pero sigue dando error. Cómo le puedo hacer.

Éste es el código de anketa.php:

Código HTML:
#################################################################
#             Script written 19.09.2004 by Pavol Srna           #
#             Version: 1.0                                      #
#			  Info:([email protected])                           #
#################################################################
include("var.php");
include ("configu.php");

//do premennej $hl*N sa vlozia nove udaje pre jednotlive moznosti
if (isset($_POST["odpoved"])) {
  if ($_POST["odpoved"] == "A") {$a = 1;} else {$a = NULL;} 
  if ($_POST["odpoved"] == "B") {$b = 1;} else {$b = NULL;}
  if ($_POST["odpoved"] == "C") {$c = 1;} else {$c = NULL;}
  if ($_POST["odpoved"] == "D") {$d = 1;} else {$d = NULL;}
  if ($_POST["odpoved"] == "E") {$e = 1;} else {$e = NULL;}
  
  $hl1N=$hl1+$a;
  $hl2N=$hl2+$b;
  $hl3N=$hl3+$c;
  $hl4N=$hl4+$d;
  $hl5N=$hl5+$e;}
################################################################################################
//Zapisu sa nove udaje poctov hlasov pre jednotlive moznosti do suborov hl*.txt

if (isset($_POST["Submit"]) && isset($_POST["odpoved"]) && !isset($_COOKIE['hlasovanie'])) {

$fp=fopen($subor1,"w");
fwrite($fp, $hl1N);
fclose($fp);

$fp=fopen($subor2,"w");
fwrite($fp,$hl2N);
fclose($fp);

$fp=fopen($subor3,"w");
fwrite($fp,$hl3N);
fclose($fp);

$fp=fopen($subor4,"w");
fwrite($fp,$hl4N);
fclose($fp);

$fp=fopen($subor5,"w");
fwrite($fp,$hl5N);
fclose($fp);

$fp=fopen($subor_hlasov,"w");
fwrite($fp,$hlasov+1);
fclose($fp);

setcookie('hlasovanie','ANO',time()+$timeout);

header("Location: vysledky.php");
$sprava="Hlasovanie prebehlo uspesne";} 
elseif (isset($_COOKIE['hlasovanie'])) { header ("Location: vysledky.php");
$sprava="Uz ste hlasovali!";}
if (!isset($_POST["odpoved"]) &&isset($_POST["Submit"])) {$sprava="Nezvolili ste Vasu odpoved!";}
################################################################################################## 
echo '<body bgcolor="',$pagebgcolor,'"></body>';
//formular ankety:
 echo '<table width="',$tableWidth,'" border="',$border,'" bgcolor="',$bgcolor,'" cellspacing="0" bordercolor="',$bordercolor,'">
  <tr>
    <td>
<p align="center"><font face="',$face,'" color="',$fontcolor,'" size="',$fontsizeAO,'"><b>',$anketnaOtazka,'</b></font></p>
<form name="form1" method="post" action="">

    <p style="margin-top: 0; margin-bottom: 0">

    <input type="radio" name="odpoved" value="A">
 <font face="',$face,'" color="',$fontcolor,'" size="',$fontsize,'">',$ot1,'</font> 
    </p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>

    <p style="margin-top: 0; margin-bottom: 0">

    <input type="radio" name="odpoved" value="B">
 <font face="',$face,'" color="',$fontcolor,'" size="',$fontsize,'">',$ot2,'</font> 
    </p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>

    <p style="margin-top: 0; margin-bottom: 0">

    <input type="radio" name="odpoved" value="C">
 <font face="',$face,'" color="',$fontcolor,'" size="',$fontsize,'">',$ot3,'</font> 
    </p>
    <p style="margin-top: 0; margin-bottom: 0"> </p>

    <p style="margin-top: 0; margin-bottom: 0">

    <input type="radio" name="odpoved" value="D">
  <font face="',$face,'" color="',$fontcolor,'" size="',$fontsize,'">',$ot4,'</font></p>
    <p style="margin-top: 0; margin-bottom: 0"></p>

    <p style="margin-top: 0; margin-bottom: 0">

    <input type="radio" name="odpoved" value="E">
  <font face="',$face,'" color="',$fontcolor,'" size="',$fontsize,'">',$ot5,'</font></p>
    </p>
  <p align="center">
    <input type="submit" name="Submit" value="Votar">
</td>
  </tr>
  </form>
</table>'
;
######################################################################################################
PD: Sí no lo soluciono en unos días me corren y ponen a otro. AYUDA PORFAVOR

Última edición por Yamilskate; 21/10/2006 a las 16:43
  #2 (permalink)  
Antiguo 21/10/2006, 17:17
AlvaroG
Invitado
 
Mensajes: n/a
Puntos:
¿y qué hay en la página que llama a este archivo?
  #3 (permalink)  
Antiguo 21/10/2006, 19:03
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 2 meses
Puntos: 4
Lo ke sucede es ke no puedes enviar NADA antes de modificar las cabeceras (con funciones como setcookie(), header() o session_start()). Posiblemente tengas un espacio antes o después de abrir/cerrar el modo de PHP, concretamente en el archivo index2.php, en la línea 342. Corrige akello y veras ke se soluciona todo.

Saludos
  #4 (permalink)  
Antiguo 21/10/2006, 19:13
Avatar de Seppo  
Fecha de Ingreso: marzo-2005
Ubicación: Buenos Aires, Argentina
Mensajes: 1.284
Antigüedad: 19 años, 1 mes
Puntos: 17
Más simple aún...
la salida está en
/www/sites/1/iespana.es/y/a/yamilds/site/index2.php en la línea 342, fíjate q hay ahí...
  #5 (permalink)  
Antiguo 22/10/2006, 10:48
Avatar de Yamilskate  
Fecha de Ingreso: septiembre-2006
Mensajes: 94
Antigüedad: 17 años, 7 meses
Puntos: 0
Ah pues ya me fije y en esa línea esta un
<? } ob_end_flush(); ?>
Ya que ya había utilizado ese código al principio de la página index2.php
(Es decir al principio de todo puse <? ob_start(); ?> y en la línea 342 está el <? } ob_end_flush(); ?>)
(Ésto es para un sistema de login al foro phpbb desde la página index)

Bueno espero me puedan ayudar, no se a que se deba el error

Porfavor!!!
  #6 (permalink)  
Antiguo 22/10/2006, 11:29
Avatar de elkkbron  
Fecha de Ingreso: enero-2002
Ubicación: Puebla
Mensajes: 195
Antigüedad: 22 años, 3 meses
Puntos: 0
Todo lo que son COOKIES , HEADERS, SESSIONS, los tienes que hacer antes de dar una salida, el error obviamente existe en index2.php

en index2.php no debe existir nada de html para que anketa.php funcione
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:33.