??? advanced poll ??? - PHP - Programmation
Marsh Posté le 27-09-2002 à 12:35:15
Ce message d'erreur indique tu envoie du code HTML avant de faire un appel à des sessions ou des cookies.
Il s'agit d'une erreur classique en PHP.
As tu recuperé le script tel quel ou as tu fais des modifs dedans ?
Sinon mets les 15 premières lignes du fichier en question pour voir.
++
cyruss
Marsh Posté le 27-09-2002 à 13:27:59
non pas de modif je vous balances le code du pollheader.php...
les 70 1ere ligne :
( vers la ligne 40 //qui deconne// )
$config_file = "pollphp/pollconfig.php"; // path to config file
$poll_dat = "pollphp/polldata.txt"; // path to poll data file
$poll_ip = "pollphp/poll_ip.txt"; // path to poll ip file
//////////////////////////////////////////////////////
require "$config_file";
$found=0;
$total=0;
function sort_keys($a,$b) {
if ($a == $b) return 0;
return ($a > $b) ? -1 : 1;
}
function checkIP($rem_addr,$voting) {
global $poll_ip,$lock_timeout,$found;
$ip_array = @file($poll_ip);
$this_time = time();
if ($voting==1) { $ip_table = fopen($poll_ip,"w+" ); }
for ($i=0; $i<sizeof($ip_array); $i++) {
list($ip_addr,$time_stamp) = split("\|",$ip_array[$i]);
if ($this_time < ($time_stamp+3600*$lock_timeout)) {
if ($ip_addr == $rem_addr) {
$found=1;
if ($voting==0) { break;}
}
if ($voting==1) { fwrite($ip_table,"$ip_addr|$time_stamp" ); }
}
}
if ($voting==1) {
fwrite($ip_table,"$rem_addr|$this_time\n" );
fclose($ip_table);
}
}
if ($check_vote>=1 && $status==1) {
$cookie_name = "AdvancedPoll";
if(isset($AdvancedPoll)==1){
$found=1;
}
else {
if ($check_vote==2) {
checkIP($REMOTE_ADDR,0);
}
if ($vote_for && $found==0) {
setcookie($cookie_name, "1", time()+(3600*$lock_timeout)); // ligne qui deconne //
if ($check_vote==2) { checkIP($REMOTE_ADDR,1); }
}
}
}
if (isset($vote_for) && $found==0 && $status==1) {
$line = file($poll_dat);
$count_dat = fopen($poll_dat,"r+" );
for ($i=1; $i<sizeof($line); $i++) {
list($name,$vote,$color) = split("\|",$line[$i]);
if ($name == "$vote_for" ) {
$vote += 1;
}
$poll[$name] = $vote;
$gif[$name] = $color;
$total += $vote;
}
fwrite($count_dat,$line[0]);
for(reset($poll); $key=key($poll); next($poll)) {
fwrite($count_dat,"$key|$poll[$key]|$gif[$key]" );
}
fclose($count_dat);
}
else {
$line = file($poll_dat);
for ($i=1; $i<sizeof($line); $i++) {
list($name,$vote,$color) = split("\|",$line[$i]);
$poll[$name] = $vote;
$gif[$name] = $color;
$total += $vote;
Marsh Posté le 27-09-2002 à 13:44:31
ok, tu envoies un cookie à la ligne 70.
Rien en peut avoir été envoyé avant...
qu'as tu as la ligne 16 de main.php ?
Marsh Posté le 27-09-2002 à 15:45:22
ethernal a écrit a écrit : ok, tu envoies un cookie à la ligne 70. Rien en peut avoir été envoyé avant... qu'as tu as la ligne 16 de main.php ? |
je n'ai pas de main.php ...
Marsh Posté le 01-10-2002 à 15:46:50
Verifie qu'il n'y a pas d'espaces ou de retour à la ligne à la fin des fichiers que tu inclues.
Le problème vient de la. Pour envoyer des cookies et des sessions il faut que PHP n'ait rien renvoyé avant.
Et donc un simple espace ou retour à la ligne (hors des <??> ) voire echo qui se trouverait avant le setcookie va tout casser.
++
cyruss
Formateur PHP
http://formation.kaptive.com/php/
Marsh Posté le 26-09-2002 à 14:42:04
qqun l'utilise ?
j'ai la version 1.25 qui est tres bien mais ... un mess d'erreur :
Warning: Cannot add header information - headers already sent by (output started at /var/www/free.fr/7/a/n/i/m/animangaka/main.php:16) in poll_header.php on line 47
le blem c'est que je ne veux pas passer a la version 2.02 ( la derniere ... ) y'a trop de truc ( je cherche un truc simple
qqun aurait une version en dessous ? pour moi ? svp