Avatar billede mock Nybegynder
12. januar 2004 - 18:27 Der er 11 kommentarer og
1 løsning

Afstemning - point når E har opdateret

Hey...

Nu har jeg fået en afstemning fixet på www.nbainfo.dk

Men det er som include, og der har jeg tidligere haft problemer med kontakt form, når den skulle sendes videre.

Men det blev lavet, takker være hjælp herinde..

Herunder er koden til afstemningen. Det virker ikke hvis man følger linket i menuen, men hvis man klikker på www.nbainf.dk/poll/vote.php funger det.

<?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;
}}}}
//##################### Save data ##############################
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);
}
//########################## Show Form ############################
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 to show results ########################
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();
}
//###################### Engine ####################################
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 nak-m Nybegynder
12. januar 2004 - 19:00 #1
Det er sikkert fordi at afstemningen ligger i grenen poll/vote.php, og du kalder den fra grenen files/poll.php, derfor leder den i grenen files/poll/vote.php.

Måske ville det hjælpe at skrive ../ foran dine filkald.
Avatar billede mock Nybegynder
12. januar 2004 - 19:03 #2
Ok.. For lige at være sikker (min intelligens er ikke noget at råbe hurra for):

../poll.php i stedet for files/php, ../config.php osv?
Avatar billede nak-m Nybegynder
12. januar 2004 - 19:08 #3
../poll/vote.php

sådan skulle det gerne være.
Avatar billede nak-m Nybegynder
12. januar 2004 - 19:13 #4
Altså, sådan at de filer, du kalder fra files/poll.php, starter med ../
Avatar billede mock Nybegynder
12. januar 2004 - 19:23 #5
Er det ikke kun config.php jeg skal ændre til ../config.php?

Det prøvede jeg, men det fungede ikke..
Avatar billede nak-m Nybegynder
12. januar 2004 - 19:35 #6
Det er alle de filer du kalder fra en anden mappe. Du skal kalde dem fra roden - derfor ../
Avatar billede mock Nybegynder
12. januar 2004 - 19:37 #7
Hmm.. Det hitter jeg næppe ud af - ved ikke hvad der er filer :o)..

Men kan jeg så ikke ændre linket i menuen fra index.php?page=files/vote.php til index.php?page=poll/vote.php ?
Avatar billede nak-m Nybegynder
12. januar 2004 - 19:49 #8
problemet er da vidst at den leder efter ip.txt og data.txt det forkerte sted. De ligger jo begge i mappen poll - så den skal lede fx: poll/ip.txt
Avatar billede mock Nybegynder
12. januar 2004 - 20:36 #9
Fuck.. Der ødelagde jeg det fuldstændig.. Måtte slette det hele, og installere det på ny..

Det virker igen på http://www.nbainfo.dk/poll/vote.php, men ikke via menuen.

Stien er altså poll/vote.php.

Kan du ikke skære det helt ud i pap, hvad jeg skal ændre? altså, hvorhenne?

Jeg skal nok smide en del point på :)..
Avatar billede mock Nybegynder
13. januar 2004 - 19:27 #10
Hvad mangler der nu? Jeg kan se den, men stemmer man - kommer man til forsiden..

Den kan ses her http://www.nbainfo.dk/index.php?page=files/poll/vote.php


<?php 
function head() { 
include('files/poll/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('files/poll/config.php'); 
$fp=fopen("$ip_file", "a+"); 
fputs ($fp,$REMOTE_ADDR."][".time()."\n"); 
fclose($fp); 
} 
function check($REMOTE_ADDR) { 
include('files/poll/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; 
}}}} 
//##################### Save data ############################## 
function save($answer){ 
global $answer; 
include('files/poll/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); 
} 
//########################## Show Form ############################ 
function form($PHP_SELF){ 
include('files/poll/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 to show results ######################## 
function results(){ 
include('files/poll/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(); 
} 
//###################### Engine #################################### 
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 nak-m Nybegynder
15. januar 2004 - 08:09 #11
Prøv at skriv noget i stil med:

action=\"$PHP_SELF?page=files/poll/vote.php\"

i din form.
Avatar billede mock Nybegynder
17. januar 2004 - 19:56 #12
Fik det ikke til at funge.. Men du får lige lidt point, som en tak for hjælp trods alt :)..
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