TEST
|
Forenposter
|
|
registriert
|
16.04.2008
|
wohnt in
|
Deutschland
|
Beiträge
|
81
|
|
hi leute,
diese vote.php erstellt die ips.txt und ergebnis.txt.
PHP:
<?php
error_reporting(E_ALL); // Zeigt alle PHP-Fehlermeldungen an
function schreiben($datei, $mode) {
$fp = fOpen($datei, $mode);
fLock($fp, 2);
fWrite($fp, $_SERVER["REMOTE_ADDR"] . "|" . time() . "\n");
fLock($fp, 3);
fClose($fp);
}
function ip_sperre() {
$reloadlogdatei = "ips.txt";
$anzahleintraege = 50; // Nach sovielen IP´s werden die alten gelöscht
$zeitlimit = 3600; // Solange bleibt eine IP gesperrt - Zeit in Sekunden
// Prüfen ob Datei existiert wenn nicht erstellen
if (!file_exists($reloadlogdatei)) {
$datei = fopen($reloadlogdatei, "w+");
fclose($datei);
}
$fp = file($reloadlogdatei);
$size = sizeof($fp);
// Beschreibt die Datei, wenn Liste voll
if ($size >= $anzahleintraege) {
schreiben($reloadlogdatei,"w");
// Prüft, ob eine IP in der Liste steht
}
else {
$ausgabe = false;
for ($zaehler = 0; $zaehler < $size; $zaehler++) {
$zeile = explode("|", $fp[$zaehler]);
if ($zeile[0] == $_SERVER["REMOTE_ADDR"] AND $zeile[1] > (time()-$zeitlimit)) {
// IP wird gefunden
$ausgabe = true;
}
}
// Protokolliert die IP
schreiben($reloadlogdatei, "a+");
}
return $ausgabe;
}
$frage = "Wie findet Ihr meine Seite ?"; // Thema der Abfrage
$option[0] = "Sehr Gut"; // Option 1
$option[1] = "Gut"; // Option 2
$option[2] = "Mittelmaessig"; // usw.
$option[3] = "Schlecht";
$option[4] = "Sehr Schlecht";
$farbe[0]="#0000FF"; // Farbe des 1. Balkens
$farbe[1]="#00FF00"; // Farbe des 2. Balkens
$farbe[2]="#FF0000"; // usw.
$farbe[3]="#FFFF00";
$farbe[4]="#00FFFF";
$datei = "ergebnis.txt"; // Ergebnisdatei
$anzahl = count($option); // Ermittelt die Anzahl der Auswahloptionen
///////////////////////////////////////////////////////////////////////////////////////
// Ergebnisdatei öffnen bzw. wir legen diese neu an, falls nicht vorhanden //
/////////////////////////////////////////////////////////////////////////////////////
if (file_exists($datei)) { // Existiert die Datei?
$votes = file($datei); // Dann in Array "$votes" einlesen
}
else { //Wenn nicht ->
$handle = fOpen($datei, "w+"); // Datei anlegen
for ($zaehler = 0; $zaehler< $anzahl; $zaehler++) { // Für jede Option
fPuts($handle, "0\n"); // "0" in Datei schreiben (mit Zeilenvorschub)
}
fClose($handle); // Datei wieder schliessen
$votes = file($datei); // Datei in Array "$votes" einlesen
}
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////
// Wurde abgestimmt? wenn ja, dann müssen wir das Ergebnis anpassen und in die Datei schreiben //
////////////////////////////////////////////////////////////////////////////////////////////////////////////////
if ((isset($_POST["submitvote"])) && (ip_sperre() == false)) {
settype($votes[$_POST["radio"]], "integer");
$vote_nr = ((isset($_POST["radio"])) ? $_POST["radio"] : 0);
$votes[$vote_nr]++; // Entsprechende Option um eins erhöhen
$handle = fOpen($datei, "w+"); // Datei öffnen
for ($zaehler = 0; $zaehler < $anzahl; $zaehler++) { // Für jede Option
settype($votes[$zaehler], "integer");
fPuts($handle, "$votes[$zaehler]\n"); // Anzahl in Datei schreiben (mit Zeilenvorschub)
}
fClose($handle); // Datei wieder schliessen
}
//////////////////////////////////////////////////////////////////
// Jetzt startet die Ausgabe! zuerst mal die Überschrift //
////////////////////////////////////////////////////////////////
echo "<H2>" . $frage . "</H2>\n\n"; // Überschrift schreiben
////////////////////////////////////////////
// Dann das Ergebnis als Balkengrafik //
//////////////////////////////////////////
for ($zaehler = 0; $zaehler < $anzahl; $zaehler++) { // Für jede Option
$balken = 0;
echo $option[$zaehler] . " <SPAN style=\"color: " . $farbe[$zaehler] . "\">"; // Option ausgeben und Farbe setzen
for ($balken; $balken < $votes[$zaehler]; $balken++) { // Für Anzahl der Votes
echo "|"; // Je einen Strich ausgeben
}
echo " " . $votes[$zaehler] . "</SPAN><BR>\n"; // Balken zu ende, also Zeilenumbruch
}
//////////////////////////////////////////
// am Schluss das Auswahlformular //
////////////////////////////////////////
echo "<h3>Abstimmen:</h3>";
echo "<FORM ACTION=\"" . $_SERVER["PHP_SELF"] . "\" METHOD=\"Post\">\n"; // Formular anfangen
for ($zaehler = 0; $zaehler < $anzahl; $zaehler++) { // Fuer jede Option
echo "<INPUT TYPE=\"radio\" NAME=\"radio\" VALUE=\"" . $zaehler . "\">" . $option[$zaehler] . "<BR>\n"; // Radiobutton anzeigen
}
echo "<INPUT TYPE=\"Submit\" VALUE=\"Abstimmen\" NAME=\"submitvote\"></FORM>"; // Formularende
?>
Allerdings zählt er nach abgeben einer Bewertung nichts dazu. Wenn ihr den Fehler findet, habe ich noch mal eine Bitte, kann man das Ergebnis mit Balken darstellen???
|