Afstemningsfidus i PHP
Jeg har nedenstående som er et eksempel fra "Start på PHP". Problemet er, at der opstår en division by zero indtil der er stemt i en af kategorierne. Jeg er vandt til at kode i VB og der er det jo nemt nok at lave en on error bla bla...<?
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 "$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>
<HEAD><TITLE>Stemme-script</TITLE></HEAD>
<BODY>
<TABLE BORDER=0>
</font>
<?
$samlet_antal_stemmer = 0;
$tekst[1] = "meget god";
$tekst[2] = "god";
$tekst[3] = "middel";
$tekst[4] = "elendig";
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[$fil_nr]</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>
