Supportnet / Forum / Skripte(PHP,ASP,Perl...)
PHP Vote Script - möglich ?
Frage
Hallo,
ich bin neu hier im Forum und habe direkt mal eine Frage
Ich betreibe ein Internet-Radio und möchte dort so eine
Art Vote-Script umsetzen aber das für Musik-Charts.
Das sollte in etwa so funktionieren :
ich lege eine textdatei an mit ca 20 liedern, reihenfolge
ist egal. Also "artist" und "titel" mehr nicht.
zb. DJ Unbekannt - Das ist ein Titel
Diese Textdatei soll per php ausgelesen werden und zum
Voten freigegeben werden, mit Radio-Buttons.
So und nun kommt der eigentliche Knackpunkt.
Ich möchte die Ergebnisse dann in einem div bzw. in einer
tabelle auf der hp ausgeben ABER automatisch sortiert nach den 5 besten
Votes, also zb so:
1. DJ Unbekannt - Das ist ein Titel
2. DJ Test - Das ist der 2. Titel
3.
4.
5.
usw...
Habe bis jetzt nur Vote-Scripte gesehen (gefunden)
die das Ergebnis als Blockdiagramm oder Prozentangaben
ausgeben und dann nicht sortiert.
Gibt es für meinen Ansatz eine Lösung, bzw ist das zu realisieren ?
Wäre euch sehr dankbar wenn Ihr mir darauf Antworten geben könnten,
komme nämlich absolut nicht weiter.....
Antwort 1 von Fabi15
hier
<?php
$open = fopen(vote1.txt, r);
$size = fsize(vote1.txt);
$aktion = fgets($open, $size);
$data = explode("\n", $aktion);
print ("<form action=voten.php method=post>");
$da = count($data);
$count = 0;
while ($count < $da)
{
print ("<input type=checkbox name=vote value=´$data[$count]´>$data[$count]");
}
print ("<input type=submit value=Voten></form>");
?>
<?php
$open = fopen(vote1.txt, r);
$size = fsize(vote1.txt);
$aktion = fgets($open, $size);
$data = explode("\n", $aktion);
print ("<form action=voten.php method=post>");
$da = count($data);
$count = 0;
while ($count < $da)
{
print ("<input type=checkbox name=vote value=´$data[$count]´>$data[$count]");
}
print ("<input type=submit value=Voten></form>");
?>
Antwort 2 von sebi2006
Hi,
ich habe da mal nen komplettes Voting Script geproggt.
Es sortiert immer den Titel mit den meisten Votes an die erste Stelle und ist mit einer Votesperre per Cookie versehen.
umfrage.php:
Dazu kommt dann
votelist.php:
Damit das Ganze funktioniert muss dann noch eine Textdatei in Form von:
titel.txt:
Desweiteren wird noch eine Textdatei mit dem Namen
wahl.txt benötigt, darin werden die votes gespeichert!
PS: Schreibrechte nicht vergessen!
So das sollte alles gewesen sein.
ich habe da mal nen komplettes Voting Script geproggt.
Es sortiert immer den Titel mit den meisten Votes an die erste Stelle und ist mit einer Votesperre per Cookie versehen.
umfrage.php:
<?php
$text = "Ab sofort ist die Chartliste freigeschaltet!";
$songtitel = file(´titel.txt´);
$wahlergebnis = file(´wahl.txt´);
array_multisort($songtitel, SORT_REGULAR, SORT_DESC);
if(!isset($post)) $post = "";
if(isset($Abstimmen)) {
setcookie("Abstimmen", "yes", time()+1*24*60*60*60);
$data = file("wahl.txt");
for ($i=0;$i<count($data);$i++)
$data[$i] = trim($data[$i]);
if($post==1){
$data[$_POST["wahl"]] = $data[$_POST["wahl"]] + 1;
$data_file = fopen("wahl.txt", "wb");
fputs($data_file, implode("\n",$data));
fclose($data_file);
}
include "arraysort.php";
}
else {
?>
<script language="JavaScript" type="text/JavaScript">
<!--
function MM_goToURL() { //v3.0
var i, args=MM_goToURL.arguments; document.MM_returnValue = false;
for (i=0; i<(args.length-1); i+=2) eval(args+".location=´"+args[i+1]+"´");
}
//-->
</script>
<form method="post" action="<?=$PHP_SELF;?>" style="margin:0; padding:0; ">
Umfrage<BR><?=$text;?><br><br>
<?php
//Hier muss jeweils die Songtitelmenge geändert/ erweitert werden!
?>
<input name="wahl" type="radio" value="0">
<?=$songtitel[0];?><br>
<input name="wahl" type="radio" value="1">
<?=$songtitel[1];?><br>
<input name="wahl" type="radio" value="2">
<?=$songtitel[2];?><br>
<br>
<input type="submit" value="Abstimmen" name="Abstimmen">
<INPUT name="Ergebnis" type="submit" id="Ergebnis" onClick="MM_goToURL(´parent´,´<?=$PHP_SELF;?>?Abstimmen=1´);return document.MM_returnValue" value="Ergebnis">
<INPUT name="post" type="hidden" id="post" value="1">
</FORM>
<? } ?>
Dazu kommt dann
votelist.php:
<?php
function prozent($votes, $gesamt_anzahl){
if($votes == 0){
$Prozent = 0;
} else {
$Prozent = (100/$gesamt_anzahl)*$votes;
}
return $Prozent;
}
$a = file(´wahl.txt´);
$b = file(´titel.txt´);
array_multisort($b, SORT_REGULAR, SORT_DESC);
//Die Variable $insgesamt muss bei z.B. 4 Liedern auf + $a[3] erweitert werden!
$insgesamt = $a[0] + $a[1] + $a[2];
$kombiniert = array();
if(count($a) == count($b)){
for($i=0; $i <count($a); $i++) {
$kombiniert[$b[$i]] = $a[$i];
}
}
array_multisort ($kombiniert, SORT_NUMERIC, SORT_DESC);
while(list($key, $val) = each($kombiniert)) {
echo $key . ": " . $val . "<br>";
echo (´<td><img src="umfrage.gif" height="10" width="´.round(prozent($val, $insgesamt )).´">´.number_format( prozent($val, $insgesamt), 2, ",", "." ).´ %<br></td>´);
}
?>Damit das Ganze funktioniert muss dann noch eine Textdatei in Form von:
titel.txt:
Interpret1 - Titel1
Interpret2 - Titel2
Interpret3 - Titel3
Desweiteren wird noch eine Textdatei mit dem Namen
wahl.txt benötigt, darin werden die votes gespeichert!
PS: Schreibrechte nicht vergessen!
So das sollte alles gewesen sein.
Antwort 3 von sebi2006
ups! Ich habe ja glatt die Grafik vergessen.
Es ist eine 1*1 Pixel gif Grafik, es ist nur ein schwarzer Punkt.
Ich habe das ganze auch auf unserer Homepage zur Verfügung gestellt:
Zum Anschauen des Ganzen:
Es ist eine 1*1 Pixel gif Grafik, es ist nur ein schwarzer Punkt.
Ich habe das ganze auch auf unserer Homepage zur Verfügung gestellt:
http://www.bei.cst-plus.de/supportnet/Votescript.rarZum Anschauen des Ganzen:
http://www.bei.cst-plus.de/supportnet/votescript/umfrage.php
