Avatar billede smartguy101 Juniormester
05. juni 2003 - 19:23 Der er 16 kommentarer og
1 løsning

PHP vote system

Hej.
Jeg savner et vote-system i php, som kører på en MySQL-database, og som virker ordentligt!

- Hvis nogen kender nogle gode scripts, så smid lige et link :)
Avatar billede ztyxx Nybegynder
05. juni 2003 - 21:51 #1
Avatar billede smartguy101 Juniormester
05. juni 2003 - 22:07 #2
nice - kan du ikke lige svare, i stedet for kommentar så du kan få point ? :)
Avatar billede smartguy101 Juniormester
05. juni 2003 - 22:13 #3
Eller vent.. det virker faktisk ikke :(
Avatar billede exp Juniormester
05. juni 2003 - 22:30 #4
Avatar billede ztyxx Nybegynder
05. juni 2003 - 22:36 #5
har du husket at lave en gif-fil, og uoploadet som beskrevet, og har du lavet tabellen i din database, koden i phps filen er den samme som afstemningens, bortset fra mysql_connect() som jo selvfølgelig er til min database
Avatar billede avminarm Juniormester
06. juni 2003 - 08:20 #6
ztyxx>> hvorfor benytter du ob_start() mv. i scriptet?
Avatar billede ztyxx Nybegynder
06. juni 2003 - 09:56 #7
den nemme udvej, sætter jo headers og cookies
Avatar billede avminarm Juniormester
06. juni 2003 - 10:24 #8
doo - når ja ;o)
Avatar billede Slettet bruger
06. juni 2003 - 12:25 #9
http://www.adminzone.dk/kif/vote.php

Og så lige admin delen. Hvor du kan ændre afskemningen og tilføje ller fjerne stemmer :-D
http://www.adminzone.dk/kif/admin.php
password: eksperten
Avatar billede exp Juniormester
06. juni 2003 - 12:36 #10
kodeord virker ikke
Avatar billede Slettet bruger
06. juni 2003 - 12:51 #11
så bare sæt .dk efter... dvs eksperten.dk
Avatar billede exp Juniormester
06. juni 2003 - 13:20 #12
Det ser da meget godt ud :-)

En ting til... kan man se koden?
Avatar billede avminarm Juniormester
06. juni 2003 - 13:48 #13
hansen - sætter ikke en cookie?
Avatar billede Slettet bruger
06. juni 2003 - 14:08 #14
Nej. Den logger din IP i en txt fil. Så kan du bestemmer hvornår du kan stemme igen (det indstiller du i admin delen).

Det er ikke opbygget om en database. Men txt filer :-)

---- Kode over vote siden -----------

<?php
function head() {
include('config.php');
echo "<table width=\"200\" border=\"0\" cellpadding=\"1\" cellspacing=\"1\">
<tr><td bgcolor=\"$tableborder\">
<table width=\"198\" border=\"0\" cellpadding=\"0\" cellspacing=\"\" align=\"center\">
<tr><td bgcolor=\"$bgcolor\">";
}
function foot () {
echo "</td></tr></table></td></tr></table>";
}
function record($REMOTE_ADDR) {
include('config.php');
$fp=fopen("$ip_file", "a+");
fputs ($fp,$REMOTE_ADDR."][".time()."\n");
fclose($fp);
}
function check($REMOTE_ADDR) {
include('config.php');
global $valid;
$ip=$REMOTE_ADDR;
$data=file("$ip_file");
$now=time();
foreach ($data as $record) {
$subdata=explode("][",$record);
if ($now < ($subdata[1]+3600*$timeout)) {
if ($ip == $subdata[0]) {
$valid=0;
break;
}}}}

function save($answer){
global $answer;
include('config.php');
$data=file($datafile);
$subdata=explode("][",$data[$answer]);
$subdata[2]+=1;
$data[$answer]=implode("][", $subdata);
$data[$answer]=$data[$answer]."\n";
$fp=fopen($datafile,"w+");
$a=0;
do{
fputs($fp,$data[$a]);
$a++;
}while($a<count($data));
fclose($fp);
}

function form($PHP_SELF){
include('config.php');
head();
echo "<font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\"><form method=\"post\" action=\"$PHP_SELF\"><p align=\"center\">";
$data=file($datafile);
$question=$data[0];
$nb_options=count($data)-1;
echo "<b>$question</b></p>";
for($nb=1;$nb <= $nb_options; $nb++){
$option=explode("][","$data[$nb]");
echo "<input type=\"radio\" name=\"answer\" value=\"$nb\"> ";
echo "$option[0]<br>";
}
echo "<input type=\"hidden\" name=\"save\" value=\"yes\">";
echo "<p align=\"center\"><input type=\"submit\" name=\"Submit\" value=\"Submit\"></form></font>";
echo "<font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\"><a href=\""; echo $PHP_SELF; echo "?action=results\">Show me the results</font></p>";
foot();
}

//################## Function til at vise resultatet af afstemmeningen ########################


function results(){
include('config.php');
head();
$data=file($datafile);
$nb_answers=count($data);
$votes=0;
$a=1;
do{
$subdata=explode("][",$data[$a]);
$votes += $subdata[2];
$a++;
}while($a < $nb_answers);
$a=1;
$b="answerv";
$v=100/$votes;
echo "<p align=\"center\"><font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\"><b>$data[0] ($votes v.)</b><br><br>";
do{
$subdata=explode("][",$data[$a]);
$av = $subdata[2] * $v;
echo "<font size=\"$fontsize\" face=\"$font\" color=\"$textcolor\">$subdata[0] -"; printf(" %01.1f", $av); echo"%<br>";
$p2v = 100-$av;
echo "<img src=\"$subdata[1]\" width=\"$av\" height=\"10\"><img src=\"$image\" width=\"$p2v\" height=\"10\"><br>";
$a++;
} while ($a < $nb_answers);
echo "<br>";
foot();
}

check($REMOTE_ADDR);
if ($valid=="0"){ results();}
elseif ($action=="results") { results(); }
elseif ($save=="yes" && $valid!="0") { save($Answer); record($REMOTE_ADDR); results();}
elseif ($action=="save" && !empty($valid)) { results(); }
elseif ($action!="save" && $valid!="0"){ form($PHP_SELF); }
?>
Avatar billede smartguy101 Juniormester
06. juni 2003 - 14:53 #15
Hansen -> Jeg har oplevet at man bare kan gå ind på url'en igen, og så kan man stemme igen :-)
Avatar billede smartguy101 Juniormester
06. juni 2003 - 15:08 #16
Eller at den ikke opdaterer.. kan man ikke sætte cookies?

http://www.webmok.dk/vote/vote.php

http://www.webmok.dk/vote/admin.php - pass: 12345
Avatar billede avminarm Juniormester
10. juni 2003 - 09:40 #17
det er heller ikke en god ide at logge IP'en da ikke alle har en statisk IP
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester