Que mas panas aki estoy otra ves con el royo de las encuestas, decidi trabajar mejor con archivos de texto, y hasta ahora me han salido bien, pero ahora el detalle que tngo es que cuando vacio los archivos y comienzo la encuesta de nuevo, la primera vez q voto me sale el siguiente error:
Código HTML:
Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\AppServ\www\nuevo\encuesta.php on line 6
Warning: fread() [function.fread]: Length parameter must be greater than 0 in C:\AppServ\www\nuevo\encuesta.php on line 9
Esto solo pasa la primera vez que el usuario va a votar, luego q vota por segunda vez en adelante desaparece el error y contabiliza, suma y muestra los resultados bien. EL cogido del script es este:
Código PHP:
<?php
//cargo el numero de respuestas de un fichero de texto
$f=fopen("encuesta.txt","r");
-->$todas=fread($f,filesize("encuesta.txt"));
$respuestas=explode(",",$todas);
$g=fopen("encuesta2.txt","r");
-->$todas2=fread($g,filesize("encuesta2.txt"));
$respuestas2=explode(",",$todas2);
fclose($f);
fclose($g);
if ($respuesta) {
//incremento la respuesta y la guardo en el fichero
$respuestas[$respuesta-1]++;
$f=fopen("encuesta.txt","w");
$todas=$respuestas[0].",".$respuestas[1].",".$respuestas[2].",".$respuestas[3];
fwrite($f,$todas,strlen($todas));
fclose($f);
}
if ($respuesta2) {
//incremento la respuesta y la guardo en el fichero
$respuestas2[$respuesta2-1]++;
$g=fopen("encuesta2.txt","w");
$todas2=$respuestas2[0].",".$respuestas2[1].",".$respuestas2[2].",".$respuestas2[3];
fwrite($g,$todas2,strlen($todas2));
fclose($g);
}
$total=$respuestas[0]+$respuestas[1]+$respuestas[2]+$respuestas[3];
$total2=$respuestas2[0]+$respuestas2[1]+$respuestas2[2]+$respuestas2[3];
if($total==0) {
$porcentaje[0]=0;
$porcentaje[1]=0;
$porcentaje[2]=0;
$porcentaje[3]=0;
} else {
$porcentaje[0]=sprintf("%1.2f",(($respuestas[0]/$total)*100));
$porcentaje[1]=sprintf("%1.2f",(($respuestas[1]/$total)*100));
$porcentaje[2]=sprintf("%1.2f",(($respuestas[2]/$total)*100));
$porcentaje[3]=sprintf("%1.2f",(($respuestas[3]/$total)*100));
}
if($total2==0) {
$porcentaje2[0]=0;
$porcentaje2[1]=0;
$porcentaje2[2]=0;
$porcentaje2[3]=0;
} else {
$porcentaje2[0]=sprintf("%1.2f",(($respuestas2[0]/$total2)*100));
$porcentaje2[1]=sprintf("%1.2f",(($respuestas2[1]/$total2)*100));
$porcentaje2[2]=sprintf("%1.2f",(($respuestas2[2]/$total2)*100));
$porcentaje2[3]=sprintf("%1.2f",(($respuestas2[3]/$total2)*100));
}
?>
el codigo q puse es el que hace todos los calculos, porq el resto lo que hace es mostrar resultados. Las lineas q tienen las flechas son las que me lanzan el error... Espero que me puedan ayudar!!