Geschrieben von izskisurfer am 12.04.2004, 16:51

Also mal etwas einfaches und zudem sehr nützliches und umfangreiches, was leicht zu erweitern ist ein Dateibasierter Vote:

Als erstes benötigen wir 2 Dateien:
vote.php:

<?
$a="gut";
$b="mittel";
$c="schlecht";
$d="katastrofal";
$e="Abschicken";
$f="vote";
$g="option_";
$h=".db";
$i="";
$j="";
$k="";
$l=""; //ein paar Variablen zum Anfang (Alle die hier benötigt werden, damit man alles lecht editieren kann!

?>
<?
if(isset($vote) && $vote >= 1 && $vote <= 4) { //Hier wird überprüft, ob eine Stimme abgegeben wurde und ob sie zwischen 0 und 5 liegt, da es hier 4 Optionen gibt! Falls ja kommt folgendes:

$i=$g.$vote.$h; //hier wird die entsprechende datei geöffnet in der die anzahl der stimmen für die entsprechende option gespeichert sind (zum beispiel option 3: option_3.db)

$j=fopen($i,"r"); //diese datei wird nun geöffnet
$k=fread($j,6); //es werden 6 zeichen aus der datei ausgelesen (max. können also pro option 999999 stimmen abgegeben werden!) und der Variablen $k zugewiesen!
fclose($j); //Datei schliesen!
$l=$k+1; //Anzahl der Stimmen für die entsprechende option um 1 erhöhen!
$j=fopen($i,"w"); //entsprechende datei zum schreiben öffen!
fwrite($j,$l); //die alte zahl mit der neuen überschreiben!
fclose($j); //datei speichern und schliesen!
?>
Danke für ihre Stimme <a href="results.php">hier</a> das Ergebnis.
<? // der text erklärt sich von selbst! ;-)
}
else { //falls keine stimme abgegeben wurde kommt dies ein einfaches HTML Formular, das die Optionen zur auswahl anzeigt: (<?= kommt einem <? echo gleich!
?>
<p align="center">Ihre Stimme z&auml;hlt:</p>
<form name="<?=$f?>" method="get" action="<?=$f?>.php">
<div align="center">
<table width="200">
<tr>
<td><label>
<input type="radio" name="<?=$f?>" value="1">
<?=$a?>
</label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="<?=$f?>" value="2">
<?=$b?></label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="<?=$f?>" value="3">
<?=$c?></label></td>
</tr>
<tr>
<td><label>
<input type="radio" name="<?=$f?>" value="4">
<?=$d?></label></td>
</tr>
</table>
<input name="<?=$e?>" type="submit" value="vote">
</div>
</form>
<?
}
?>

results.php:

<?
$a="gut";
$b="mittel";
$c="schlecht";
$d="katastrofal";
$e="Abschicken";
$f="vote";
$g="option_";
$h=".db";
$i="";
$j="";
$k="";
$l="";
$m="";
$n="";
$o="";
$p="Stimmen";
$q="";
$r="";
$s="";
$t="";

?>
<?
$i=$g."1".$h; //dateinamen auf option_1.db setzten
$j=fopen($i,"r"); //öffnen der datei option_1.db
$k=fread($j,6); //einlesen des inhalts der option_1.db in die Variable $k
fclose($j); //schliesen der option_1.db
$i=$g."2".$h; //dateinamen auf option_2.db setzten
$j=fopen($i,"r"); //öffnen der datei option_2.db
$l=fread($j,6); //einlesen des inhalts der option_2.db in die Variable $l
fclose($j); //schliesen der option_2.db
$i=$g."3".$h; //dateinamen auf option_3.db setzten
$j=fopen($i,"r"); //öffnen der datei option_3.db
$m=fread($j,6); //einlesen des inhalts der option_3.db in die Variable $m
fclose($j); //schliesen der option_4.db
$i=$g."4".$h; //dateinamen auf option_4.db setzten
$j=fopen($i,"r"); //öffnen der datei option_4.db
$n=fread($j,6); //einlesen des inhalts der option_4.db in die Variable $n
fclose($j); //schliesen der option_4.db
$o=$k+$l+$m+$n; //gesammtzahl der stimmen
$q=$k/$o*"100"; //anzahl der stimme in prozentumwandeln
$q=round($q,2); //und auf 2 nachkommastellen runden
$r=$l/$o*"100"; //anzahl der stimme in prozentumwandeln
$r=round($r,2); //und auf 2 nachkommastellen runden
$s=$m/$o*"100"; //anzahl der stimme in prozentumwandeln
$s=round($s,2); //und auf 2 nachkommastellen runden
$t=$n/$o*"100"; //anzahl der stimme in prozentumwandeln
$t=round($t,2); //und auf 2 nachkommastellen runden
//und es folgt noch eine Tabelle zum anzeigen der Ergebnisse
?>
<div align="center">
<p>
Es wurden
<?=$o?>
<?=$p?>
abgegeben.</p>
<p>&nbsp;</p>
<table border="0" cellspacing="2" cellpadding="5">
<tr>
<td>
<?=$a?>: <?=$q?>%
</td>
<td>(<?=$k?> <?=$p?>)</td>
</tr>
<tr>
<td>
<?=$b?>: <?=$r?>%
</td>
<td>(<?=$l?> <?=$p?>)</td>
</tr>
<tr>
<td>
<?=$c?>: <?=$s?>%
</td>
<td>(<?=$m?> <?=$p?>)</td>
</tr>
<tr>
<td>
<?=$d?>: <?=$t?>%
</td>
<td>(<?=$n?> <?=$p?>)</td>
</tr>
<tr>
<td><a href="vote.php">Stimme abgeben!</a></td>
</tr>
</table>

</div>

Ich hoffe es ist alles verständlich genug!
Bei Hinweisen usw. bitte an vote@zansinger.de.tk mailen!

Optionale Möglichkeiten:
Zeitsperre mit IP Abfrage einbaubar!
Wenn in loginskript eingebunden beschränkung auf eingeloggte User sowie 1 stimme pro user!
Arbeiten mit Arrays um die anzahl der optionen dynamisch festzulegen!
Übertragung auf Datenbankbasierten Vote! (Kommt vielleicht bald unter MySQL Tutorials!)
Leichtes Managment durch adminseite!
...

Viel Spaß beim Coden und weiterentwickeln! Ich bin auch an "neue Versionen" meines Grundgerüstes interessiert!
Alles OpenSource versteht sich ja ;-)!

greetz Ingo!

Bewertung Anzahl
6
66,7 %
2 Bewertungen
1
33,3 %
1 Bewertungen