Avatar billede insert_coins Nybegynder
06. november 2002 - 16:47 Der er 4 kommentarer

Hjælp til Poll - kan ikke se fejlen

Jeg har prøvet at bikse en poll sammen, men jeg får nogle fejlmeddelelser jeg ikke selv kan finde.

<?
function hent_stemme($fil_endelse){
$filnavn = "stem".$fil_endelse;
$fil = fopen($filnavn, "r");
return fgets($fil, 1096);
fclose($fil);
}

function stem($fil_endelse){
$antal_stemmer = hent_stemme($fil_endelse) + 1;
$filnavn = "stem".$fil_endelse;
$fil = fopen($filnavn, "w");
fwrite($fil, $antal_stemmer);
fclose($fil);
}

function tegn_soejle($andel, $samlet){
$stemme_procent = $andel/$samlet * 100;
$stemme_procent = round($stemme_procent);
echo "<img src=\billed.gif\" height=7 width=$stemme_procent BORDER=0>";
}

if ((!$har_stemt) && ($stemme)){
$har_stemt = 1;
setcookie("har_stemt", "1",time() + 1209600);

stem($stemme);

}

?>
<HTML>
<BODY>
<TABLE BORDER=0>
<?
$samlet_antal_stemmer=0;
$tekst[1]="ejer";
$tekst[2]="nice";
$tekst[3]="bob bob";
$tekst[4]="sux ass";
for ( $fil_nr = 1 ; $fil_nr<=4 ; $fil_nr++ ){
$stemmer[$fil_nr] = hent_stemme($fil_nr);
$samlet_antal_stemmer = $samlet_antal_stemmer + $stemmer[$fil_nr];
}

if ($har_stemt){
for ( $fil_nr = 1; $fil_nr<=4; $fil_nr++ ){
echo"<tr><td>$tekst[$fil_nr]</td>";
echo"<td>";
tegn_soejle($stemmer[$fil_nr], $samlet_antal_stemmer);
echo"</td></tr>";
}
}

else {
for ( $fil_nr = 1; $fil_nr <=4; $fil_nr++ ) {
echo"<tr><td>$tekst[$filnr]</td>";
echo"<TD><A href=\"$PHP_SELF?stemme=$fil_nr\">";
tegn_soejle($stemmer[$fil_nr], $samlet_antal_stemmer);
echo"</a></td></tr>";
}
}
?>
</table>
</body>
</html>

Jeg får to slags fejlmeddelelser, som du lige kan se her: http://www.team-rc.dk/poll.php

Jeg har brugt 4 filer af navnet: stem1.txt, stem2.txt osv. Men det ser ud som om den ikke kan finde eller vil godkende mine filer.

En der kan hjælpe med at få det til at virke?
Avatar billede esoulman Nybegynder
06. november 2002 - 16:48 #1
jeg tror $fil_endelse ikke indeholder noget... ?altså .txt eventuelt?
Avatar billede insert_coins Nybegynder
06. november 2002 - 17:50 #2
så jeg skal sætte $fil_endelse = .txt eller? Og hvor skal jeg ligge den? (Er ikke så sej til PHP)
Avatar billede thez Nybegynder
07. november 2002 - 02:23 #3
Der var et par småting der var kodet lidt forkert, der var f.eks ikke taget højde for at der slet ikke er stemt endnu, dvs sige at alle "søjlerne" fik bredden 0, hvilket så vil sige at man jo ikke ka se dem og derved klikke på dem.

Derud over er der heller ikke taget højde for at der måske kommer 1000 stemmer på et punkt, hvilket så vil sige at en søjle får bredden 1000, som måske er breddere end folks skærmopløsning...?

Men jeg har rettet koden til så den virker,

<?
function hent_stemme($fil_endelse){
    $filnavn = "stem" . $fil_endelse . ".txt";
    if ($fil = @fopen($filnavn, "r")) { // Chekker om filen findes
        return fgets($fil, 1096); // Retunerer antallet af stemmer
        fclose($fil);
    } else {
        return 0; // filen findes ikke, så 0 retuneres
    }
}

function stem($fil_endelse){
    $antal_stemmer = hent_stemme($fil_endelse) + 1;
    $filnavn = "stem".$fil_endelse;
    $fil = fopen($filnavn, "w");
    fwrite($fil, $antal_stemmer);
    fclose($fil);
}

function tegn_soejle($andel, $samlet){
    if ($samlet==0) { // Er det samlet antal af stemmer lig 0
        $stemme_procent = 0; // Jeps - og det jo forbudt at divere med 0, så vi sætter denne til 0
    } else {
        $stemme_procent = $andel/$samlet * 100; // Nixen...
    }
    $stemme_procent = round($stemme_procent);
    echo "<img src=\billed.gif\" height=7 width=$stemme_procent BORDER=0>";
}

if ((!$har_stemt) && ($stemme)){
    $har_stemt = 1;
    setcookie("har_stemt", "1",time() + 1209600);

    stem($stemme);

}

?>
<HTML>
<BODY>
<TABLE BORDER=0>
<?
$samlet_antal_stemmer=0;
$tekst[1]="ejer";
$tekst[2]="nice";
$tekst[3]="bob bob";
$tekst[4]="sux ass";
for ( $fil_nr = 1 ; $fil_nr<=4 ; $fil_nr++ ){
    $stemmer[$fil_nr] = hent_stemme($fil_nr);
    $samlet_antal_stemmer = $samlet_antal_stemmer + $stemmer[$fil_nr];
}

if ($har_stemt){
    for ( $fil_nr = 1; $fil_nr<=4; $fil_nr++ ){
        echo"<tr><td>$tekst[$fil_nr]</td>";
        echo"<td>";
        tegn_soejle($stemmer[$fil_nr], $samlet_antal_stemmer);
        echo"</td></tr>";
    }
} else {
    for ( $fil_nr = 1; $fil_nr <=4; $fil_nr++ ) {
        echo"<tr><td><A href=\"$PHP_SELF?stemme=$fil_nr\">$tekst[$fil_nr]</a></td>";
        echo"<TD><A href=\"$PHP_SELF?stemme=$fil_nr\">";
        if ($stemmer[$fil_nr]==0) {
            echo "Der har ikke været nogen stemmer på $tekst[$fil_nr]";
        } else {
            tegn_soejle($stemmer[$fil_nr], $samlet_antal_stemmer);
        }
        echo"</a></td></tr>";
    }
}
?>
</table>
</body>
</html>


mvh Simon
Avatar billede insert_coins Nybegynder
12. november 2002 - 02:46 #4
Sorry, hvis du har ventet længe på mit svar, men har ikke lige været i nærheden.

Men kan du ikke lige vise mig hvordan jeg skal smide en FORM ind, hvor man vælger hvad man vil stemme på. Sådan som den er nu kan jeg kun se resultatet, men ikke få lov til at stemme.

Enten er det mig der er helt på månen, men jeg kan stadig ikke få det til at virke:|
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