Encontre un ejemplo y funciona correctamente, hago la votacion y me da el porcentaje de los votos, ahora bien, como hago para que solo se pueda votar una vez por persona (ip o como fuese) . alguna manera?
Dejo el codigo que estoy usando.
Código :
<?php
if($_POST['Respuesta'] != ''){
$Respuesta = $_POST['Respuesta'];
/* Nombre del Archivo que contiene los resultados */
$Archivo = "db.txt";
/* Abrimos el archivo como lectura */
$Lectura = fopen($Archivo, "a+");
/* Guardamos la respuesta del usuario y separamos los valores con el signo "|" */
$Gurdado = fputs($Lectura, $Respuesta.'|');
/* Recargamos el Archivo */
$Lectura = fopen($Archivo, "r");
/* Exporamos el contenido del Archivo */
$Resultados_Lectura = fread($Lectura, filesize ($Archivo));
/* Separamos el contenido por el simbolo "|" */
$Contenido = explode("|", $Resultados_Lectura);
/* Contamos el total de Respuestas */
$Total_Respuestas = count($Contenido) - 1;
//for, para sumar ++voto
for($B = 0; $B < $Total_Respuestas; ++$B){
if($Contenido[$B] == "Respuesta 1"){
$Opcion_1++;
}
if($Contenido[$B] == "Respuesta 2"){
$Opcion_2++;
}
if($Contenido[$B] == "Respuesta 3"){
$Opcion_3++;
}
}
/* Redondeamos las respuestas */
$Respuesta_1 = ($Opcion_1 * 100) / $Total_Respuestas;
$Respuesta_2 = ($Opcion_2 * 100) / $Total_Respuestas;
$Respuesta_3 = ($Opcion_3 * 100) / $Total_Respuestas;
$Respuesta_1 = round($Respuesta_1);
$Respuesta_2 = round($Respuesta_2);
$Respuesta_3 = round($Respuesta_3);
echo 'Respuesta 1: '.$Respuesta_1.' %<br />';
echo 'Respuesta 2: '.$Respuesta_2.' %<br />';
echo 'Respuesta 3: '.$Respuesta_3.' %';
}
else{
?>
<form action="#" method="post">
<strong>¿Pregunta?</strong> <br />
<input name="Respuesta" type="radio" value="Respuesta 1"> Respuesta 1 <br />
<input name="Respuesta" type="radio" value="Respuesta 2"> Respuesta 2 <br />
<input name="Respuesta" type="radio" value="Respuesta 3"> Respuesta 3 <br />
<input type="submit" value="Enviar">
</form>
<?php
}
?>
Mas el archivo db.txt .
Se puede agregar la opcion de que solo se vote una vez?