| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
Gast
|
Fehler in meiner vote.php aber wo? |
|
|
hi leute,
ich habe zu erst in line 100 und jetzt in line 134 einen fehler angezeigt bekommen, habe den ersten korrigiert, finde aber den zweiten nicht. Es könnten aber noch weitere Fehler existieren.
Schon mal danke für eure Hilfe im Voraus
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135
| <?php
require 'badword.php';
function schreiben($datei,$mode) {
global $REMOTE_ADDR;
$fp = @fopen($datei,$mode);
flock($fp,2);
fwrite($fp,$REMOTE_ADDR."|".time()."\n");
flock($fp,3);
fclose($fp);
}
function ip_sperre() {
global $REMOTE_ADDR;
$reloadlogdatei = "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] == $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
$anzahl = 5; // Anzahl der Auswahloptionen
$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
//////////////////////////////////////////////////////////////////////////////////////////
// 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
$i=0;
for ($i; $i<$anzahl; $i++) { //fuer 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 muessen wir das Ergebnis anpassen und in die Datei schreiben //
//////////////////////////////////////////////////////////////////////////////////////////////////
if (($submitvote) && (ip_sperre()==false))
settype($votes[$radio],"integer");
$votes[$radio]++; //entsprechende Option um eins erhoehen
$handle = fopen($datei, "w+"); //Datei oeffnen
$i=0;
for ($i; $i<$anzahl; $i++) { //fuer jede Option
settype($votes[$i],"integer");
fputs($handle,"$votes[$i]\n"); //Anzahl in Datei schreiben (mit Zeilenvorschub)
}
fclose($handle); //Datei wieder schliessen
////////////////////////////////////////////////////////////
// jetzt startet die Ausgabe! zuerst mal die Ueberschrift //
////////////////////////////////////////////////////////////
echo "<H1>".$frage."</H1>\n\n"; //Ueberschrift schreiben
////////////////////////////////////////
// dann das Ergebnis als Balkengrafik //
////////////////////////////////////////
$i=0;
for ($i; $i<$anzahl; $i++) { //fuer jede Option
$j=0;
echo $option[$i]." <FONT COLOR=\"".$farbe[$i]."\">"; //Option ausgeben und Farbe setzen
for($j; $j<$votes[$i]; $j++) { //fuer Anzahl der Votes
echo "|"; //je einen Strich ausgeben
}
echo " ".$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
?> |
mfg
michi |
|
|
|
| 12 Apr 2008 21:38 |
|
  |
Werner Homepage-Total.de Moderator

|
 |
|
|
| PHP-Code: | 1
| for ($i; $i<$anzahl; $i++) { //fuer jede Option |
Die abschließende Klammer für diese Schleife ist nicht vorhanden.
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| ////////////////////////////////////////
// dann das Ergebnis als Balkengrafik //
////////////////////////////////////////
$i=0;
for ($i; $i<$anzahl; $i++) { //fuer jede Option
$j=0;
echo $option[$i]." <FONT COLOR=\"".$farbe[$i]."\">"; //Option ausgeben und Farbe setzen
for($j; $j<$votes[$i]; $j++) { //fuer Anzahl der Votes
echo "|"; //je einen Strich ausgeben
}
echo " ".$votes[$i]."</FONT><BR>\n"; //Balken zu ende, also Zeilenumbruch
} ### Hier sollte die Schleife enden
//////////////////////////////////// |
|
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 12 Apr 2008 21:57 |
|
 |
Gast
|
|
| 12 Apr 2008 22:21 |
|
 |
Gast
|
 |
|
|
sorry nochmal,
ich habe das dann mal getestet.
es gab keine fehlermeldung mehr (deswegen nochmal danke), allerdings habe ich es dann getestet und er zählt nichts dazu
weisst du wie man das beheben kann? ich bin ein anfänger und habe dieses script nur im internet gefunden.
kannst du das möglichst auch in eine mysql-datenbank schreiben lassen?
das kann ich immer mit phpmyadmin
mfg
michi |
|
|
|
| 12 Apr 2008 22:26 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
| Anonymous hat Folgendes geschrieben: |
kannst du das möglichst auch in eine mysql-datenbank schreiben lassen?
das kann ich immer mit phpmyadmin |
Und was steht bei PHPmyadmin , nachdem du einen
Datensatz eingefügt hast? -> Der SQL-Quellcode um einen weiteren Datensatz einzufügen.
Daten in eine mysql-datenbank schreiben (SQL INSERT INTO) |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 13 Apr 2008 11:08 |
|
 |
Gast
|
 |
|
|
muss man sonst nichts mehr ändern?
also müsste des so dann doch auch gehen |
|
|
|
| 13 Apr 2008 12:33 |
|
 |
Werner Homepage-Total.de Moderator

|
 |
|
|
Also ich habe das Script zum laufen gebracht
Getestet auf einem lokalen Webserver!
| PHP-Code: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125
| <?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
?> |
Das Script erstellt zwei txt-Dateien "ips.txt" und "ergebnis.txt" |
_________________ Bei Fragen oder Fehlermeldungen - Bitte ausführlichen Code posten!
Wie man Fragen richtig stellt |
|
|
| 13 Apr 2008 20:18 |
|
 |
Gast
|
 |
|
|
bei mir klappts nicht
-->immer noch |
|
|
|
| 19 Apr 2008 22:18 |
|
 |
Werner Homepage-Total.de Moderator

|
|
| 21 Apr 2008 17:49 |
|
 |
|