Ver Mensaje Individual
  #8 (permalink)  
Antiguo 22/02/2003, 18:01
Cluster
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 22 años, 3 meses
Puntos: 129
Ya te avisé q te iva a pasar eso:

Cita:
Si metes este sistema de votaciones en alguna pagina via include() por ejemplo con mas HTML por delante te va a dar problemas de cabeceras este redireccionamiento via header(). Para solucionarlo usa redirecionamiento javascript o saca ese bloque de código (el condicional: if($submit && !isset($HTTP_COOKIE_VARS["encuesta"])) { ) fuera de ese punto de tu código y ejecutalo antes de tu <html> q pudieras tener ..
Tienes que sacar fuera del "include" la parte del código de ese concional que hace el setcookie() y el header .. Ponlo antes de tu HTML de la pagina q lo llamas.

Código PHP:
<?
if($submit && !isset($HTTP_COOKIE_VARS["encuesta"])) {

// se contabiliza el voto en el archivo de texto plano...
$fp=fopen("$archivo","a+");
$w=fputs($fp,"$voto#");

// se crea la cookie
setcookie("encuesta","encuesta",time()+3600*24*7);

// redireccionar a si mismo la pagina .. sino no estará disponible la cookie
header("Location: $PHP_SELF");
exit;
}
?>
<html>
<head>
</head>
<body>
<?
// donde corresponda el include de tu include("encuesta.php"); .. sin el condicional q ya hemos sacado...
?>
</body>
</html>
Hay otra forma de solucionar tu problema con cabeceras sin tocar el "include" de tu encuesta .. Se trata de usar el buffer de salida de PHP (ob_start() funciones y afines ...)

Personalmente creo q es mas recomendable estructurar bien tu código pensando en que se va a usar cabeceras o cookies que en "parchear" usando esas técnicas ...

En realidad lo q tendras q convertir tu "encuesta" en funciones y llamarlas segun las requieras .. una funcion sería la que ya medio se ha hecho al separar ese "condicional" aparte ... otras seria el resto del script prácticamente ..

De esa forma harias tu:

<?
include("encuesta");
include("deotracosas");


encuesta_chekea($parametros);
?>

tu HTML comun ..

<?
encuesta_mostrar($parametros);
?>

resto de HTML .. etc ...

Y de ahí a OOP solo quedaria un paso (. o dos xD)

Un saludo,

Última edición por Cluster; 22/02/2003 a las 18:08