Comunidad PHPeros
Lenguajes => PHP => Tutoriales PHP => Mensaje iniciado por: Revancha en 02 de Julio de 2007, 20:11:40 pm
-
Recién he desarrollado este simple sistema de encuesta, en el código está toda la explicación.
OJO que la ip puede votar todas las veces que quiere (Tengo que agregar un sistema para que pueda votar sólo una vez al día o algo por el estilo).
encuesta.php
<?
//Desarrollado por Revancha
$opcion = $_POST['opcion'];
//Configuracion
$extencion = ".txt";
$opcion1 = "opcion1".$extencion;
$opcion2 = "opcion2".$extencion;
$opcion3 = "opcion3".$extencion;
if ($_GET['act'] == "votar") //
{
$leer = @file_get_contents($opcion.$extencion); //Leemos el archivo de la opcion votada
$sumar = $leer + 1; //Sumamos 1
$abrir = fopen($opcion.$extencion,'w+'); //Abrimos el archivo en modo de escritura y lectura, si el archivo no existe lo crea
fwrite($abrir, $sumar); //Le sumamon un voto
fclose($abrir); //Cerramos el archivo
header('Location: encuesta.php?act=resultados'); //Redireccionamos a los resultados
}
elseif ($_GET['act'] == "resultados")
{
$op1 = @file_get_contents($opcion1); //Leemos la 1 opcion
$op2 = @file_get_contents($opcion2); //Leemos la 2 opcion
$op3 = @file_get_contents($opcion3); //Leemos la 3 opcion
$contar_votos = $op1 + $op2 + $op3; //Sumamos todo los votos
echo "Resultados: <br />";
echo "Opcion 1: ".$op1."<br />"; //Mostramos los votos de la opcion 1
echo "Opcion 2: ".$op2."<br />"; //Mostramos los votos de la opcion 2
echo "Opcion 3: ".$op3."<br />"; //Mostramos los votos de la opcion 3
echo "Votos totales: ".$contar_votos; //Mostramos la suma de todo los votoa
}
else
{
//Mostramos el formulario para votar
echo '<form action="encuesta.php?act=votar" method="POST">
<select name="opcion" onchange="this.form.submit()">
<option value="">Elije la opcion</option>
<option value="opcion1">Algo 1</option>
<option value="opcion2">Algo 2</option>
<option value="opcion3">Algo 3</option>
</select>
</form>
<a href="encuesta.php?act=resultados">Ver resultados</a>';
}
/*
Para agregar mas opciones debes hacer lo siguiente:
En configracion debes agregar una nueva variable:
Ejemplo: $opcion4 = "opcion4".$extencion;
Agregas $opcion y el numero de la opcion
Luego para mostrar los resultados debes crear una nueva variable
$op4 = @file_get_contents($opcion4);
Los mismo que anteriormente $op + el numero de la opcion y luego @file_get_contents($opcion4);
Y en el echo colocas
echo "Opcion 4: ".$op4."<br />";
Finalmente en el formulario agregas <option value="opcion4">Algo 4</option>
en value="" colocas opcion + el n° de la votacion y luego la Votacion
*/
?>
Si no entiendes algo, si quieres dar una sugerencia, una mejora o un Karma, dime.
Saludos!
-
Buen tutorial ;)
KARMA +
-
Karma +1 ;)
Aunque yo creo que es mejor hacerlo con mysql ;)
-
Karma +1 ;)
Aunque yo creo que es mejor hacerlo con mysql ;)
Sí, tienes razón pero esto lo hize en mi tiempo de "ocio"
Gracias por los Karmas
-
YO buscaba unO!! mErCI NENG!! :O
pero me han dicho que es mejor con BD, pro aver si me sirve =.
NOTA MOD "G2K": Porvador prueva de no citar mensajes tan largos como el inicial que contiene un codigo inmenso ;)
-
NOTA MOD "G2K": Porvador prueva de no citar mensajes tan largos como el inicial que contiene un codigo inmenso ;)
??? k no cite mensajes tan largos??
es largo el mensaje k havia puesto?? xDDD :-*
-
GRDESIGN se referia a un mensaje que ha debido de editar y ya no se ve... Sigamos con el tema "Simple sistema de encuesta".
-
Hola,
¿Y para poner el titulo de la encuesta?, donde lo coloco?. Esque yo pongo el siguiente código:
echo "el titulo que le ponga".$titulo."<br>";
al principio del todo y nada, me sale el titulo arriba pero al votar me sale:
Warning: Cannot modify header information - headers already sent by (output started at /home/virtual/sitio135293/www/encuesta.php:2) in /home/virtual/sitio135293/www/encuesta.php on line 34
.
Ayudenme pliz