Vote in PHP
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfragen
angeben
ausgabe
auswahl
bedarf
datei
datum
einstellen
gut mittel
modus
radio
schlecht ergebnis
stimme
stimmen
testen
umsteigen
unendlich sachen
variable auswahl
zeichen
zeile
-
Hi,
ich bin gerade dabei ein Votescript zu schreiben. Ich habe eine Datei vote.php und eine datei write.php(zur Auswertung und Ausgabe)
Jedoch funktioniert das nicht ganz. keine Ahnung warum nicht.
Hier mal die vote.php:
<table width="162" height="74" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="74" valign="top">
<form name="voting" method="post" action="write.php">
Wie gef?llt euch diese Seite?<br>
<label>
<input type="radio" value="1" name="vote">
Gut</label>
<br>
<label>
<input type=radio value="1" name="vote">
Mittel</label>
<br>
<label>
<input type="radio" value="1" name="vote">
Schlecht</label>
<br>
<input type="submit" value="Voten">
<a href="write.php">Ergebnis</a></p> </form></td>
</tr>
</table>
Und hier die write.php:
<?php
$a1 = $aw1;
$a2 = $aw2;
$a3 = $aw3;
//========================================================================
if(isset($a1))
{
$openaw = fopen("aw1.txt", "r"); //?ffnen der Datei aw1.txt
$aw = fread($openaw, 5); //5 Zeichen lesen
fclose($openaw); //Schlie?t die Datei aw1.txt
$aw++; //Die Variable $aw incrementieren
$openaw= fopen("aw1.txt", "w"); //?ffnet die Datei im Schreib-Modus
fwrite($openaw, $aw); //Schreibt die Variable $aw in die txt Datei
fclose($openaw); //Schlie?t die Datei aw.txt
} else if(isset($aw2))
{
$openaw = fopen("aw2.txt", "r"); //?ffnen der Datei aw2.txt
$aw = fread($openaw, 5); //5 Zeichen lesen
fclose($openaw); //Schlie?t die Datei aw2.txt
$aw++; //Die Variable $aw incrementieren
$openaw= fopen("aw2.txt", "w"); //?ffnet die Datei im Schreib-Modus
fwrite($openaw, $aw); //Schreibt die Variable $aw in die txt Datei
fclose($openaw); //Schlie?t die Datei aw.txt
} else if(isset($aw3))
{
$openaw = fopen("aw3.txt", "r"); //?ffnen der Datei aw3.txt
$aw = fread($openaw, 5); //5 Zeichen lesen
fclose($openaw); //Schlie?t die Datei aw3.txt
$aw++; //Die Variable $aw incrementieren
$openaw= fopen("aw3.txt", "w"); //?ffnet die Datei im Schreib-Modus
fwrite($openaw, $aw); //Schreibt die Variable $aw in die txt Datei
fclose($openaw); //Schlie?t die Datei aw.txt
} else
{
echo "Ung?tliger Vote<br>";
}
//================================================================
$openaw1 = fopen("aw1.txt", "r"); //?ffnen der Datei aw1.txt
$awe1 = fread($openaw1, 5); //5 Zeichen lesen
//================================================================
$openaw2 = fopen("aw2.txt", "r"); //?ffnen der Datei aw2.txt
$awe2 = fread($openaw2, 5); //5 Zeichen lesen
//================================================================
$openaw3 = fopen("aw3.txt", "r"); //?ffnen der Datei aw3.txt
$awe3 = fread($openaw3, 5); //5 Zeichen lesen
//================================================================
$result = $awe1 + $awe2 + $awe3;
$p = 100;
$p1 = (awe1 / $result) * p;
$p2 = (awe2 / $result) * p;
$p3 = (awe3 / $result) * p;
echo "$p1<br>";
echo "$p2<br>";
echo "$p3<br>";
?>
Danke im voraus!
Zum testen geht unter http://silecom.xardas.lima-city.de/vote.php
MfG silecom
Beitrag ge?ndert am 22.01 13:37 von silecom -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
omg
machs doch mit ner db das is viellllll einfacher ^^
aber dein, auf jeden fall ein, fehler liegt im html bereich
<form name="voting" method="post" action="write.php">
<input type="radio" value="1" name="vote">
Gut
<input type=radio value="1" name="vote">
Mittel
<input type="radio" value="1" name="vote">
Schlecht
<input type="submit" value="Voten">
er ?bergibt immer 1 als value egal was man votet!
also ziemlicher bl?dsinn :D
machs doch einfach mit nem einfachem link is viel einfach, da ich jetzt gerad auch nich weiss wie das richtig geht
achja wenn du vieleicht auf ne db umsteigen willst, guck ma bei den tuts nach :D
ich hab auch noch nen bewertungsscript so wie hier bei lima bei den tuts!
-
also ein bewertungsscript hab ich auch schon. Es funktioniert sogar :) - ohne DB
-
ja aber f?r unendlich sachen und durchschnitt etc.
guck ma auf der hp von the-chaosplanet
unter wallpapers -
ich w?rde nur gerne wissen wie ich die daten von dem "radio" Formular in die php datei bekomme. Also bei welche Option das h?ckchen ist!
-
also die vote.php machste so (einfach durchnummerieren die M?glichkeiten):
<table width="162" height="74" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td height="74" valign="top">
<form name="voting" method="post" action="write.php">
Wie gef?llt euch diese Seite?<br>
<label>
<input type="radio" value="0" name="vote">
Gut</label>
<br>
<label>
<input type=radio value="1" name="vote">
Mittel</label>
<br>
<label>
<input type="radio" value="2" name="vote">
Schlecht</label>
<br>
<input type="submit" value="Voten">
<a href="write.php">Ergebnis</a></p> </form></td>
</tr>
</table>
in der write.php (hab ich grade eben f?r dich geschrieben) musste dann nur noch die Anzahl der Auswahlm?glichkeiten einstellen (die variable $auswahl) und die Namen f?r die einzelnen M?glichkeiten angeben (
$aw[0]["name"] = "xxx";
$aw[1]["name"] = "yyy";
...
)
also hier die datei:
<?php
$nz = chr(13).chr(10); //Zeilenumbruch f?r Schreiben in Datei
$auswahl = 3; //Zahl der Auswahlen (bei Bedarf ver?nderbar)
$datei_name = "aw.txt"; //Datei in die die Antworten gespeichert werden sollen
if(!file_exists($datei_name)){ //Wenn die Datei nicht existiert
$datei = fopen($datei_name,"w"); //Datei erstellen und mit schreiben ?ffnen
for($zeile = 0;$zeile < $auswahl;$zeile++){ //F?r jede Auswahl eine Zeile mit Inhalt '0' in die Datei schreiben
fwrite($datei,"0".$nz);
}
fclose($datei); //Datei schlie?en
}
$aw = file($datei_name); //Die Datei in ein Array lesen
$aw[0]["name"] = "Gut";
$aw[0]["name"] = "Mittel";
$aw[0]["name"] = "Schlecht";
for($x = 0;$x < count($aw);$x++){ //Zeilenumbr?che entfernen
$aw[$x] = trim($aw[$x]);
}
if(isset($_POST["vote"])){ //Falls gevotet wurde
$aw[$_POST["vote"]]++; //Die entsprechende Zahl erh?hen
$datei = fopen($datei_name,"w"); //Die Datei zum schreiben ?ffnen
for($zeile = 0;$zeile < $auswahl;$zeile++){ //Die neuen Werte in die Datei schreiben
fwrite($datei,$aw[$zeile].$nz);
}
fclose($datei); //Datei wieder schlie?en
}
$stimmen = $aw[0];
for($zeile = 1;$zeile < $auswahl;$zeile++) $stimmen += $aw[$zeile]; //Stimmen z?hlen
echo "Stimmen:<br>"; //Ausgabe der Stimmen
for($zeile = 0;$zeile < $auswahl;$zeile++){
echo $aw[$zeile]["name"].": ".round(($aw[$zeile]/$stimmen*100),2)." % (".$aw[$zeile]." Stimme(n) )<br>";
}
?>
is getestet...funktioniert
ich wei? is nich besonders umfangreich...aber als einfaches voting sollte es langen
mfg
armada -
achja nochwas
wenn noch keiner gevotet hat kommt nen error, wegen division durch 0!
einfach vorher abfragen ob $bla=0 und dann echo "es hat noch keiner gevotet";
jedenfalls beim ersten script! -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage