Supportnet Computer
Planet of Tech

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>");
?>

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:
<?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:

http://www.bei.cst-plus.de/supportnet/Votescript.rar


Zum Anschauen des Ganzen:

http://www.bei.cst-plus.de/supportnet/votescript/umfrage.php


Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: