Tengo una incognita acerca de unos scripts que estoy haciendo, los cuales hacen una encuesta web, ayudados de un archivo .txt el cual solo debe de tener 0,0,0 como primer valor y de ahi solo se incrementa. les dejo el codigo de las 2 paginas para poder decirles luego el error;
Esta es la primera llamada vote.php
Código PHP:
<?php
setcookie("check", 1);
if (isset($_POST['submit'])) {
setcookie("voted", 1);
}
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encuesta de opinion</title>
</head>
<body>
<h1>Encuesta</h1>
<h3>Que opinas acerca del nuevo DVD de <b><i>Héroes del Silencio</i></b> - Tour 2007 "Edición limitada"</h3>
<form action=<?php echo $_SERVER['PHP_SELF']; ?> method="post">
<input type="radio" name="reply" value="0" />
Pues me parece perfecto, simplemente son geniales, soy su fan desde que se llamaban "Zumo de Vidrio".<br />
<input type="radio" name="reply" value="1" />
Yo esperaba mas de este DVD edicion "Especial", le faltaron los chones de un integante.<br />
<input type="radio" name="reply" value="2" />
Quienes son estos Vatos?
<br /><br />
<?php
if(empty($_POST['submit']) && empty($_COOKIE['voted'])) {
// Mostrar el boton Submit solo si el formulario todavia
// no se ha enviado y el usuario no ha votado.
?>
<input name="submit" type="submit" value="Vota!" />
<?php
} else {
echo "<p>Gracias por tu voto.</p>\n";
// Formulario enviado? Cookies activas? Pero todavia no se ha votado?
if(isset($_POST['reply']) && isset($_COOKIE['check']) && empty($_COOKIE['voted'])) {
// Guardar nombre de archivo en la variable
$file = "results.txt";
$fp = fopen($file, "r+");
$vote = fread($fp, filesize($file));
// Descomponer la string del archivo en array con coma como separador
$arr_vote = explode(",", $vote); // Explode convierte la string en array
// Que valor se ha seleccionado en el formulario?
// El recuento aumenta en 1!
$reply = $_POST['reply'];
$arr_vote[$reply]++;
// Volver a montar la string
$vote = implode(",", $arr_vote); // implode vincula elementos de la array a string
rewind($fp);
// Escribir nueva string en el archivo
fputs($fp, $vote);
fclose($fp);
}
}
?>
</form>
<p>
[ <a href="results.php" target="_blank">Ver resultados de la encuesta</a> ]
</p>
</body>
</html>
Y esta es la segunda llamada results.php
Código PHP:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Encuesta de Opinion</title>
</head>
<body>
<h1>Resultado de la encuesta</h1>
<?php
$file = "results.txt";
$fp = fopen($file, "r");
$vote = fread($fp, filesize($file));
fclose($fp);
// Se divide la string, se crea la array
$vote = explode(",", $vote);
// Cantidad total de votos
$allvotes = $vote[0] + $vote[1] + $vote[2];
// Longitud maxima de la barra
$length = 400;
// Cuota de la opcion 1 (valor indice 0)
$length0 = $vote[0] * $length / $allvotes;
// Cuota de la opcion 2 (valor indice 1)
$length1 = $vote[1] * $length / $allvotes;
// Cuota de la opcion 1 (valor indice 0)
$length2 = $vote[2] * $length / $allvotes;
// Redondeo de valores
$length0 = round($length0);
$length1 = round($length1);
$length2 = round($length2);
// Calcular y redondear porcentaje de 0
$percent0 = 100 * $vote[0] / $allvotes;
$percent0 = round($percent0, 0);
// Calcular y redondear porcentaje de 1
$percent1 = 100 * ($vote[1] / $allvotes);
$percent1 = round($percent1, 0);
// Calcular y redondear porcentaje de 2
$percent2 = 100 * $vote[2] / $allvotes);
$percent2 = round($percent2, 0);
// Mostrar solo para fines de prueba:
// Echo "length0 $length1 $length2";
?>
<p>Total de votos: <?php echo $allvotes; ?></p>
<h3>Resultados</h3>
<table border="0">
<tr>
<td><b>Opcion 1</b></td>
<td> </td><td width="<?php echo $length0; ?>" bgcolor="red"> </td>
<td> <?php echo "$percent0%"; ?> (<i><?php echo $vote[0]; ?></i>)</td>
</tr>
<tr>
<td><b>Opcion 2</b></td>
<td> </td><td width="<?php echo $length1; ?>" bgcolor="green"> </td>
<td> <?php echo "$percent1%"; ?> (<i><?php echo $vote[1]; ?></i>)</td>
</tr>
<tr>
<td><b>Opcion 3</b></td>
<td> </td><td width="<?php echo $length2; ?>" bgcolor="black"> </td>
<td> <?php echo "$percent2%"; ?> (<i><?php echo $vote[2]; ?></i>)</td>
</tr>
</table>
</body>
</html>
NOTA: el archivo .txt se debe de llamar results.txt y como es de entenderse encontrarse en la misma carpeta q estos 2 anteriores.
Bien el problema q tengo es q todo corre bien pero en results al momento de mostrar la grafica las 3 lineas me aparecen llenas completamente aunque tienen los valores diferentes. la verdad no se cual es el error. alguien lo ve?
de antemano muchas gracais foreros.