Avatar billede proware Nybegynder
14. maj 2003 - 19:32 Der er 11 kommentarer og
3 løsninger

kigge filer igem

Hejsa

nogen der gider og kigge disse filer igemmen for fejl da jeg ikke kan få det til og virke

Vote:

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


Config:

<?php
$textcolor='#000000';
$linkcolor='#FFFFFF';
$bgcolor='#FFFFFF';
$tableborder='#336699';
$timeout='24';
$ip_file='/home/web/coolsnak/coolsnak.starthotel.dk/Afstemning/ip.txt';
$font='Verdana, Arial, Helvetica, sans-serif';
$fontsize='2';
$datafile='/home/web/coolsnak/coolsnak.starthotel.dk/Afstemning/data.txt';
?>

Jeg for denne fejl www.coolsnak.starthotel.dk

Fra michael
Avatar billede ahv Nybegynder
14. maj 2003 - 19:37 #1
Hvis det er denne fejl;

Warning: Division by zero in /home/web/coolsnak/coolsnak.starthotel.dk/Afstemning/vote.php on line 82

Så er det jo ikke så svært at se så siger php direkte jo hvad fejlen er, du må ikke dividere med 0, og det gør du når der ingen svar er, derfor får du den fejl.
Avatar billede proware Nybegynder
14. maj 2003 - 19:38 #2
okay men hvordan rette jeg det er ikke så god til php som du ved
Avatar billede iphase Nybegynder
14. maj 2003 - 19:42 #3
dine HTML skillz er vidst heller ikke helt i top.. du bruge en hel tabel bare som ramme istedet for bare at angive rammens atributter i css.

anyway.. det er lidt svært for os at finde linje 80 i vote.php du må hellere selv finde den og paste den ind her sammen med de 15 foregående linjer eller sådan noget..
Avatar billede proware Nybegynder
14. maj 2003 - 19:46 #4
1: den babel der er der kommer væk

her er fra line 74 til 94

$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();
}
Avatar billede iphase Nybegynder
14. maj 2003 - 19:50 #5
Det er altså ikke C du koder..

en while lykke ser ikke sådan her ud i php

do{
$subdata=explode("][",$data[$a]);
$votes += $subdata[2];
$a++;
}while($a < $nb_answers);

den rette måde er
while($a < $nb_answers){
$subdata=explode("][",$data[$a]);
$votes += $subdata[2];
$a++;
}


ret det alle steder.. så burde det køre
Avatar billede proware Nybegynder
14. maj 2003 - 19:50 #6
det er ikke mig der har lavet det
Avatar billede proware Nybegynder
14. maj 2003 - 19:53 #7
Jeg for den sammen fejl endnu
Avatar billede iphase Nybegynder
14. maj 2003 - 19:54 #8
damn.. well jeg skal smutte.. sorry. håber du får det til at virke
Avatar billede iphase Nybegynder
14. maj 2003 - 19:55 #9
måske skal du poste flere point i den her.
Avatar billede proware Nybegynder
14. maj 2003 - 19:55 #10
har ikke flere desværre
Avatar billede tkandersen Nybegynder
15. maj 2003 - 00:39 #11
Dette er (hvis jeg kan tælle) linie 82.
Tjek $votes om den er 0 på noget tidspunkt.

$v=100/$votes;

Evt. om din explode gi'r det du forventer. Lav evt. en echo $subdata[2] for at tjekke om du får det du forventer.

iphase > do { } while (); eksisterer i php
http://www.php.net/manual/en/control-structures.do.while.php
Avatar billede proware Nybegynder
15. maj 2003 - 18:13 #12
alle de andre steder hvor $votes er der stå 0
Avatar billede proware Nybegynder
18. maj 2003 - 16:54 #13
nu har jeg fået den til og vise det men det tæller ikke op nu
Avatar billede proware Nybegynder
18. maj 2003 - 23:10 #14
lukker

de kan dele point
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