Umfrage zeigt keine Ergebnisse an

Hmm bei mir hats funktioniert, keine Fehlermeldungen, auch mit chmod 777.
Poste nochmal das komplette Script mit allen Neuerungen/Änderungen deinerseits :)
 
Danke für eure Hilfe. Hier nochmal der komplette Code:


Code:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>www.Autoplausibel.de - Der Rest ist selbsterkl&auml;rend</title>
</head>

<body>
<table width="100%" border="0">
  <tr>
    <td><h3>Umfrage <img src="../SpryAssets/SpryMenuBarRight.gif" width="4" height="7" /> 05. September</h3></td>
  </tr>
  <tr>
    <td>
	<?PHP
function schreiben($datei,$mode) { 
   $_SERVER['REMOTE_ADDR']; 
   $fp = fopen($datei,$mode); 
   flock($fp,2); 
   fwrite($fp,$_SERVER['REMOTE_ADDR']."|".time()."\r\n"); 
   flock($fp,3); 
   fclose($fp); 
} 

function ip_sperre() { 
   $_SERVER['REMOTE_ADDR']; 
   $reloadlogdatei = "umfrage_080905_ips.txt"; 
   $anzahleintraege = 50; // nach sovielen ip´s werden die alten gelöscht
   $zeitlimit = 3600; // solange bleibt eine ip gesperrt
    
   // 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 ($i=0;$i<$size;$i++) { 
         $zeile = explode("|",$fp[$i]); 
         if ($zeile[0] == $_SERVER['REMOTE_ADDR'] AND $zeile[1] > (time()-$zeitlimit)){ 
            // ip wird gefunden 
            $ausgabe = true; 
         }
      } 
      // protokolliert die ip 
      schreiben($reloadlogdatei,"a+"); 
   } 
   return $ausgabe; 
}  

// ein einfacher Vote/Poll mit PHP:
// --------------------------------

// Ziel dieses Tutorials: Eine Umfrage mit PHP

// Features:
// - Speichern der Daten in einer Textdatei
// - Balken- und Anzahlanzeige des Ergebnisses

////////////////////////////////////
// erstmal ein paar Einstellungen //
////////////////////////////////////

$frage = "Soll ich die Serie Eli Stone fortsetzen?";  // Thema der Abfrage

$anzahl = 2;  // Anzahl der Auswahloptionen

$option[0] = "Ja";  // Option 1
$option[1] = "Nein";  // Option 2

$farbe[0]="#0000FF";  // Farbe des 1. Balkens
$farbe[1]="#00FF00";  // Farbe des 2. Balkens

$datei = "umfrage_080905.txt";  // Ergebnisdatei


//////////////////////////////////////////////////////////////////////////////////////////
// so, und hier das Script:                                                             //
//                                                                                      //
// zuerst oeffnen wir die Ergebnisdatei, bzw. 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 ($i=0; $i<$anzahl; $i++) {  //fuer jede Option
        fwrite($handle,"0\r\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 muessen wir das Ergebnis anpassen und in die Datei schreiben //
//////////////////////////////////////////////////////////////////////////////////////////////////

if (($_POST['submitvote']) && (ip_sperre()==false))   {
    settype($votes[$radio],"integer");
    $votes[$radio]++;  //entsprechende Option um eins erhoehen
    $handle = fopen($datei, "w+");  //Datei oeffnen
    for ($i=0; $i<$anzahl; $i++) {  //fuer jede Option
        settype($votes[$i],"integer");
        fwrite($handle,"$votes[$i]\r\n");  //Anzahl in Datei schreiben (mit Zeilenvorschub)
    }
    fclose($handle);  //Datei wieder schliessen
}
else{
echo 'bereits gevoted';
}

////////////////////////////////////////////////////////////
// jetzt startet die Ausgabe! zuerst mal die Ueberschrift //
////////////////////////////////////////////////////////////

echo "<H4>".$frage."</H4>\n\n";  //Ueberschrift schreiben

////////////////////////////////////////
// dann das Ergebnis als Balkengrafik //
////////////////////////////////////////


for ($i=0; $i<$anzahl; $i++) {  //fuer jede Option

    echo $option[$i]."&nbsp;&nbsp;&nbsp;<FONT COLOR=\"".$farbe[$i]."\">";  //Option ausgeben und Farbe setzen
    for($j=0; $j<$votes[$i]; $j++) {  //fuer Anzahl der Votes
        echo "|";  //je einen Strich ausgeben
    }
    echo "&nbsp;&nbsp;&nbsp;".$votes[$i]."</FONT><BR>\n";  //Balken zu ende, also Zeilenumbruch
}

////////////////////////////////////
// am Schluss das Auswahlformular //
////////////////////////////////////

echo "<FORM ACTION=\"".$PHP_SELF."\" METHOD=\"Post\">\n";  //Formular anfangen
$i=0;
for ($i; $i<$anzahl; $i++) {  //fuer jede Option
    echo "<INPUT TYPE=\"radio\" NAME=\"radio\" VALUE=\"".$i."\">".$option[$i]."<BR>\n";  //Radiobutton anzeigen
}

echo "<INPUT TYPE=\"Submit\" VALUE=\"Abstimmen\" NAME=\"submitvote\"></FORM>";  //Formularende
?></td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>
 
So noch ein Versuch. Hab nich wirklich was am Script verändert, nur ein bisschen aufgeräumt ;)
Habe die Textdateien manuell erstellt und mit chmod 777 versehen, keine Fehler, klappt alles...
Kanns evtl. sein dass du mit den Dateinamen durcheinandergekommen bist?
umfrage_eli_stone_ips.txt -> umfrage_080905_ips.txt

MfG

HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>www.Autoplausibel.de - Der Rest ist selbsterkl&auml;rend</title>
</head>

<body>
<table width="100%" border="0">
  <tr>
    <td><h3>Umfrage <img src="../SpryAssets/SpryMenuBarRight.gif" width="4" height="7" /> 05. September</h3></td>
  </tr>
  <tr>
    <td>
<?PHP

function schreiben($datei,$mode) { 
   $fp = fopen($datei,$mode); 
   flock($fp,2); 
   fwrite($fp,$_SERVER['REMOTE_ADDR']."|".time()."\r\n"); 
   flock($fp,3); 
   fclose($fp); 
} 

function ip_sperre() { 
   $reloadlogdatei = "umfrage_080905_ips.txt"; 
   $anzahleintraege = 50; // nach sovielen ip´s werden die alten gelöscht
   $zeitlimit = 3600; // solange bleibt eine ip gesperrt
    
   // 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"); 
      
   }
   else{ // Prüft, ob eine IP in der Liste steht 
      $ausgabe = false;
      for ($i = 0; $i < $size; $i++){ 
         $zeile = explode("|",$fp[$i]); 
         if($zeile[0] == $_SERVER['REMOTE_ADDR'] && $zeile[1] > (time()-$zeitlimit)){ 
            // ip wird gefunden 
            $ausgabe = true; 
         }
      } 
      // protokolliert die ip 
      schreiben($reloadlogdatei,"a+"); 
   } 
   return $ausgabe; 
} 

// ein einfacher Vote/Poll mit PHP:
// --------------------------------

// Ziel dieses Tutorials: Eine Umfrage mit PHP

// Features:
// - Speichern der Daten in einer Textdatei
// - Balken- und Anzahlanzeige des Ergebnisses

//////////////////////////////
// erstmal ein paar Einstellungen //
////////////////////////////////////

$frage = "Soll ich die Serie Eli Stone fortsetzen?";  // Thema der Abfrage

$anzahl = 2;  // Anzahl der Auswahloptionen

$option[0] = "Ja";  // Option 1
$option[1] = "Nein";  // Option 2

$farbe[0]="#0000FF";  // Farbe des 1. Balkens
$farbe[1]="#00FF00";  // Farbe des 2. Balkens

$datei = "umfrage_080905.txt";  // Ergebnisdatei


//////////////////////////////////////////////////////////////////////////////////////////
// so, und hier das Script:                                                             //
//                                                                                      //
// zuerst oeffnen wir die Ergebnisdatei, bzw. 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($i=0; $i < $anzahl; $i++) {  //fuer jede Option
        fwrite($handle,"0\r\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 muessen wir das Ergebnis anpassen und in die Datei schreiben //
//////////////////////////////////////////////////////////////////////////////////////////////////

if ($_POST['submitvote'] && !ip_sperre()){
    settype($votes[$radio],"integer");
    $votes[$radio]++;  //entsprechende Option um eins erhoehen
    $handle = fopen($datei, "w+");  //Datei oeffnen
    for($i=0; $i < $anzahl; $i++) {  //fuer jede Option
        settype($votes[$i],"integer");
        fwrite($handle,$votes[$i]."\r\n");  //Anzahl in Datei schreiben (mit Zeilenvorschub)
    }
    fclose($handle);  //Datei wieder schliessen
}
else{
	echo 'bereits gevoted';
}

////////////////////////////////////////////////////////////
// jetzt startet die Ausgabe! zuerst mal die Ueberschrift //
////////////////////////////////////////////////////////////

echo "<H4>".$frage."</H4>\n\n";  //Ueberschrift schreiben

////////////////////////////////////////
// dann das Ergebnis als Balkengrafik //
////////////////////////////////////////


for ($i=0; $i < $anzahl; $i++) {  //fuer jede Option
    echo $option[$i]."&nbsp;&nbsp;&nbsp;<FONT COLOR=\"".$farbe[$i]."\">";  //Option ausgeben und Farbe setzen
    for($j=0; $j < $votes[$i]; $j++) {  //fuer Anzahl der Votes
        echo "|";  //je einen Strich ausgeben
    }
    echo "&nbsp;&nbsp;&nbsp;".$votes[$i]."</FONT><BR>\n";  //Balken zu ende, also Zeilenumbruch
}

////////////////////////////////////
// am Schluss das Auswahlformular //
////////////////////////////////////

echo "<FORM ACTION=\"".$_SERVER['PHP_SELF']."\" METHOD=\"post\">\n";  //Formular anfangen
$i = 0;
for($i; $i < $anzahl; $i++) {  //fuer jede Option
    echo "<INPUT TYPE=\"radio\" NAME=\"radio\" VALUE=\"".$i."\">".$option[$i]."<BR>\n";  //Radiobutton anzeigen
}
echo "<INPUT TYPE=\"Submit\" VALUE=\"Abstimmen\" NAME=\"submitvote\"></FORM>";  //Formularende
?>
</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
  <tr>
    <td>&nbsp;</td>
  </tr>
</table>
</body>
</html>
 
Es geht voran :)
Jetzt zeigt er zwar die Fehlermeldungen nicht mehr an, aber jetzt kommt's, oben steht ständig "bereits gevoted" obwohl ich noch gar nicht gevotet habe. Habe mir die ...ips.txt angeschaut. Nichts drin. Und meinen Vote registriert er nicht. Schmeißt mich nach "submit" ständig zum index zurück.
Bin mittlerweile auch :mad: und :confused:
Hast du vielleicht ne Idee, wo ich mir ein funktionierendes Poll-Script herholen könnte? Habe bei Google schon nachgeschaut aber die Ergebnisse sind mir entweder zu umfangreich (SQL) oder zu kompliziert wie z.B das VotingScript, das ich gefunden habe. Soll ja nur was einfaches sein, wie dieses hier.
 
Dass da "bereits gevoted" steht ist logisch, das hatte ich nur so hingeklatscht. Denn der else-Zweig in dem es drinsteht bedeutet ja soviel wie "wenn das Formular nicht abgesendet wurde", also bei jedem Aufruf des Scripts wo der Submit-Button _nicht_ gedrückt wurde.
PHP:
echo 'bereits gevoted';
//ersetzen durch
if($_POST['submitvote']){echo 'bereits gevoted';}
//würde das schonmal beheben.

Dass die ...ips.txt leer bleibt ist allerdings seltsam. Kann den Fehler nicht nachvollziehen, da keine Fehlermeldung mehr kommt und bei meinem Testsystem alles einwandfrei funktioniert.

Zum Thema fertige Poll-Scripte: Wüsste ich jetzt spontan nichts was ich empfehlen könnte, vielleicht schaut nen anderer User hier mal rein - dann lasst eure Vorschläge da :)
 
Daran kann es serwohl liegen ;)
Deine index.php muss ja irgendwie gesagt bekommen, dass die umfrage.php includet werden soll. Also z.B. durch Aufruf mit index.php?show=umfrage oder was in der Art!
Nun schickst du das Formular ab (-> klickst auf "Submit") und rufst damit wieder deine index.php auf, die diesmal aber keine Informationen dazu geliefert bekommt, dass die umfrage.php includet werden soll. Du musst im Formular bei "action" noch den Wert mitübergeben, der die index.php dazu veranlasst, die umfrage.php zu includen!
Hoffe das war jetzt irgendwie verständlich :D
 
Zurück