Diesen Umfrage Code habe ich selbst geschrieben.
Es ist mir klar das er für einige nicht perfekt oder professionell wirkt,
dennoch wollte ich euch den Code zur Verfügung stellen.

In diesem Tutorial wird kein Grundwissen vermittelt
wenn ihr z.b. nicht wisst was ein Array ist würde ich euch raten
erst mal ein paar kleiner Scripts zu schreiben bevor ihr euch hiermit auseinandersetzt.

Wie fange ich an
Erstellt erst mal erstellt ihr folgende Dateien.
- vote.php //In die kommt der erste Script
- style.css //Da kommt der stylesheet rein um die Umfrage zu gestalten
- vote.txt //Da werden die Einträge gezählt und verwaltet
Bitte fügt folgendes in die erste Zeile der Text Dateiein "0|0|0|" ohne " ".

was noch fehlt ist die Balkengrafik



Der PHP Code
<?php
$auswahl = 5; // Menge der zur auswahl stehenden Optionen

$option[0] = "Sehr gut"; //Option 1
$option[1] = "Gut";
$option[2] = "Es geht";
$option[3] = "Verbesserungswürdig";
$option[4] = "Kein kommentar";

$vote = file("vote.txt"); // Die Text Datei in der die Daten gespeichet werden
$radion = $_POST['radion']; // Die getroffene auswahl wird per POST ermittelt

$IP = $REMOTE_ADDR; // IP addresse des Users
$time = date(time()); // Aktuelle Uhrzeit als timestamp

if (isset($_POST ['senden'])) //Überprüft ob der Button "Abstimmen" (senden) gedrückt wurde
{
if ($radion == "") // Überprüft ob eine Auswahl getroffen wurde
{
echo
"Keine Auswahl getroffen"; // Ausgabe bei keiner Auswahl
}
else // Wurde eine auswahl getroffen gehts hier weiter
{
$line = count(file("vote.txt")); // Zählt die zeilen in der Text Datei
$zeile = file("vote.txt"); // Einlesen der komplette Datei in ein Array

$s=0;
while ($s < $line) // Begin der schleife, vergleicht ob $s kleiner als die menge der vorhandenen Zeilen ist
{
$geben = $zeile[$s]; // Erste Zeile wird festgelegt und als $geben gespeichert
$sort = explode("|",$geben); // Erste Zeile wird nach Spalten (|)sortiert

if ($sort[0] == $IP) // spalte 0 ist eine IP spalte also vergleichen wir die vorhandene IP mit der in der Datei
{
$te = date(time()-3600); // Uhrzeit wird festgestellt und um eine Stunde zurück gesetzt
if ($sort[1] < $te) // Spalte 1 ist eine timestamp Spalte, verglichen wird die zurückgesetzte Uhrzeit mit der in der Datei
{
$g = true; // Ist die Zahl größer erfolgt ein eintrag
}
else
{
$g = false; // Ist die Zahl kleiner erfolgt kein eintrag
$fehler = "Sie haben bereits abgestimmt"; // Der ausgegebene Fehlertext
}
}
else
{
$g = true; // Befindet sich noch keine IP in der Datei kann trotzdem Abgestimmt werden
}
$s ++; // Erhöht $s um 1, schleife geht von vorne los
}
}
}
if ($g == true) // Vergleicht ob ein eintrag gemacht werden darf oder nicht
{
$vo = fopen("vote.txt", "a+"); // Datei wird mit dem schreibrecht a+ (fortlaufend) geöffnet
$vote_datei = fwrite ($vo, "$IP|$time|$radion|\r\n"); //Datei wird beschrieben, als erstes die IP danach die Zeit mit der Auswahl
anschließend erfolgt ein zeilenumbruch

fclose($vo); // Datei wird geschlossen
}
echo
"$fehler<br /><br />"; // Hier wird der Fehlertext ausgegeben

echo "<b>Wie findet ihr die Page</b>"; // Umfrage Titel

if (isset($_POST ['zeigen'])) // Überprüft ob der "Ergebins" Button gedrückt wurde
{
$count = count(file("vote.txt")); // Zeilen werden gezählt
$array = file("vote.txt"); // Einlesen der Datei in ein Array

$L = 0; //setzen der benötigten Werte

$vote[0] = 0;
$vote[1] = 0;
$vote[2] = 0;
$vote[3] = 0;
$vote[4] = 0;

while ($L < $count) // Schleife läuft so lange bis alle zeilen ausgelesen wurden
{
$line = $array[$L]; // Erste Zeile wird in ein array eingelesen

$get_L = explode("|",$line); // Erste Zeile wird nach Spalten (|)sortiert

if ($get_L[2] == '0') // Überprüft ob 0 gewählt wurde (sehr gut)
{
$vote[0]++; // Wurde Option 0 gewählt wird die Variable um eins erhöht
}
if ($get_L[2] == '1') // Überprüft ob 1 gewählt wurde (gut)
{
$vote[1]++; // Wurde Option 1 gewählt wird die Variable um eins erhöht
}
if ($get_L[2] == '2')
{
$vote[2]++;
}
if ($get_L[2] == '3')
{
$vote[3]++;
}
if ($get_L[2] == '4')
{
$vote[4]++;
}
$L++; // Erhöht um ein ( nächste zeile )
}

echo
"<div id=\"ergebniss\"> // Ergebnis wird in einem Div Container ausgegeben
<div class=\"option\"><b>Mögliche Auswahl</b></div>
<div class=\"wert\"><b>Votes</b></div>
<div class=\"wert\"><b>Anteil</b></div>
<div class=\"balken\"><b>Umfrage Start: 17.08.2009</b></div>"
;

for($m=0; $m < $auswahl; $m++) // Stellt die einzelnen Optionen dar
{ $line = count(file("vote.txt")); // zeilen zählen

$prozent = $vote[$m] * 100 / $line; // Berechnet den Prozentwert
$prozent = round($prozent,0); // Rundet den Prozentwert auf 0 Stellen hinter dem Komma

echo"<div class=\"option\">$option[$m]</div>
<div class=\"wert\">$vote[$m]</div>
<div class=\"wert\">".$prozent."%</div>
<div class=\"balken\">
<div class=\"vote_grafik\" style=\"width:".$prozent."%\"></div></div>"
;
}
$filetime = date("d.m.Y H:i:s",filemtime("vote.txt")); // Zeigt die letzte änderung in der Datei an

echo"<div class=\"option\"><b>Gesammt</b></div>
<div class=\"wert\"><b>$line</b></div> //Zeigt an wie oft gevotet wurde
<div class=\"wert\"><b>100%</b></div>
<div class=\"balken\"><b>Letztes Voting: $filetime</b></div></div>"
; //Ausgabe der letzten änderung
}

else
{
echo"<form action=\"umfrage.php\" method=\"POST\" id=\"vote\">\n"; //Sendet die Auswahl per POST an sich selbst

for($i=0; $i < $auswahl; $i++) //Erzeugt in einer schleife die Auswahloptionen
{
echo
"<input type=\"radio\" Name=\"radion\" value=\"$i\">$option[$i]<br />";
}
echo
"<input name=\"senden\" type=\"submit\" value=\"Abstimmen\" /> //Submit Button
<input name=\"zeigen\" type=\"submit\" value=\"Ergebnis\"></form>"
; //Ergebnis Button
}
?>


Um die Umfrage richtig darzustellen brauchen wir noch folgenden Code für die style.css Datei
#vote{
width: 200px; height: 140px;
border-width: 1px; border-style:solid ;
margin :0px auto; text-align :left ; padding :5px;}

#ergebniss {
width:500px ; height:160px ;
border-width:1px ; border-style:solid ;
margin:0px auto ; text-align:left ;
padding: 5px;}

.option { width:150px; height:20px; padding:2px; float:left;}

.wert { width:50px; height:20px; padding:2px; float:left;}

.balken { width:230px; height:20px; padding:2px; float:left;}

.vote_grafik {
height:20px; float:left;
background-image:url(status.png);
background-repeat:repeat-x;}


Fertig
Am Ende sollte die Umfrage etwa so aussehen





Ich wünsche euch noch viel spaß beim coden ^.^
Bei Probleme könnt ihr mich jederzeit kontaktieren.