Hallo!
Habe in den letzten Tagen schon gute Hilfe von euch bekommen. Jetzt habe ich es fast geschafft, komme beim vermutlich letzten Problem aber nicht weiter:
Bei folgendem Poll muss ich immer 2x abstimmen, bevor die Wertung gezaehlt wird:
http://www.mkschubert.de/umfrage1/
Aus irgendwelchen Gruenden wird der Versuch komplett ignoriert.
Bei diesem Poll funktioniert es hingegen einwandfrei schon beim ersten Versuch:
http://www.mkschubert.de/umfrageusa/
Warum?
Ich habe immer und immer wieder geschaut. Ich kann keinen Fehler feststellen.
Hier ist der Quelltext der fehlerhaften php-Datei (umfrage1.php):
<?php
// Datei, in der die Bewertungen gespeichert werden:
$fname = "umfrage1.dat";
if (isset($_POST['r1'])) { $r1 = $_POST['r1']; }
$data = file($fname);
$entry_count = count($data);
$ip = $_SERVER["REMOTE_ADDR"];
$datum = date("d.m.Y");
$zeit = date("H:i");
// überprüfen, ob der User heute schon bewertet hat:
for ($i = 0; $i < $entry_count; $i++) {
$part = explode("|", $data[$i]);
if ($ip == $part[2] && $datum == $part[0]) { $schon="ja"; }
}
// ... wenn nicht, dann Bewertung speichern (falls Formulardaten gesendet wurden):
if (empty($schon) && isset($r1)) {
$eintrag = "$datum|$zeit|$ip|$r1|\n";
$fp = fopen($fname, 'a');
flock($fp, 2);
fwrite($fp, $eintrag);
flock($fp, 3);
fclose($fp);
}
// Auswertung der Bewertungs-Datei:
$data = file($fname);
$entry_count = count($data);
$spd_c = 0; $cdu_c = 0; $gruene_c = 0; $fdp_c = 0; $pds_c = 0; $sonst_c = 0; $dkp_c = 0; $csu_c = 0; $dvu_c = 0; $npd_c = 0;
for ($i = 0; $i < $entry_count; $i++) {
$part = explode("|", $data[$i]);
// zusammenzähen:
if ($part[3] == "spd") { $spd_c++; }
if ($part[3] == "cdu") { $cdu_c++; }
if ($part[3] == "gruene") { $gruene_c++; }
if ($part[3] == "fdp") { $fdp_c++; }
if ($part[3] == "pds") { $pds_c++; }
if ($part[3] == "sonst") { $sonst_c++; }
if ($part[3] == "dkp") { $dkp_c++; }
if ($part[3] == "csu") { $csu_c++; }
if ($part[3] == "dvu") { $dvu_c++; }
if ($part[3] == "npd") { $npd_c++; }
}
// Prozente berechnen:
if ($entry_count != 0) {
$spd = number_format(($spd_c / $entry_count) * 100, 1);
$cdu = number_format(($cdu_c / $entry_count) * 100, 1);
$gruene = number_format(($gruene_c / $entry_count) * 100, 1);
$fdp = number_format(($fdp_c / $entry_count) * 100, 1);
$pds = number_format(($pds_c / $entry_count) * 100, 1);
$sonst = number_format(($sonst_c / $entry_count) * 100, 1);
$dkp = number_format(($dkp_c / $entry_count) * 100, 1);
$csu = number_format(($csu_c / $entry_count) * 100, 1);
$dvu = number_format(($dvu_c / $entry_count) * 100, 1);
$npd = number_format(($npd_c / $entry_count) * 100, 1);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="robots" content="noindex, nofollow">
<title>Umfrage</title>
<style type="text/css">
<!--
body { color: #000000; background: #ffffff; margin: 20px; padding: 0px; }
.normal { font-family: verdana, arial, sans-serif; font-size: 13px; }
td { height: 20px; color: #000000; background: #ffffff; font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; }
.hinw { font-family: verdana, arial, sans-serif; font-size: 10pt; color: #ffffff; background: #ff0000; font-weight: bold; }
.gr { font-family: verdana, arial, sans-serif; font-size: 18px; font-weight: bold; }
-->
</style>
</head>
<body>
<?php if (isset($schon) && isset($r1)) {echo "<p><span class=\"hinw\">Es wurde bereits eine Bewertung aufgenommen!</span></p>"; } ?>
<?php if ($entry_count > 0) { ?>
<p class="normal">Auf welche Art reist Du am liebsten?<br>
(<?php echo $entry_count; ?> Stimmen insgesamt)</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><b>Flugzeug: </b></td>
<td><?php echo $spd; ?> % </td>
<td><img src="spd.gif" width="<?php echo number_format($spd,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Auto: </b></td>
<td><?php echo $cdu; ?> % </td>
<td><img src="cdu.gif" width="<?php echo number_format($cdu,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Bus: </b></td>
<td><?php echo $gruene; ?> % </td>
<td><img src="gruene.gif" width="<?php echo number_format($gruene,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Bahn: </b></td>
<td><?php echo $fdp; ?> % </td>
<td><img src="fdp.gif" width="<?php echo number_format($fdp,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Fahrrad: </b></td>
<td><?php echo $pds; ?> % </td>
<td><img src="pds.gif" width="<?php echo number_format($pds,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>zu Fuß: </b></td>
<td><?php echo $sonst; ?> % </td>
<td><img src="sonst.gif" width="<?php echo number_format($sonst,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Schiff: </b></td>
<td><?php echo $dkp; ?> % </td>
<td><img src="dkp.gif" width="<?php echo number_format($dkp,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Motorrad: </b></td>
<td><?php echo $csu; ?> % </td>
<td><img src="csu.gif" width="<?php echo number_format($csu,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Wohnmobil/Caravan: </b></td>
<td><?php echo $dvu; ?> % </td>
<td><img src="dvu.gif" width="<?php echo number_format($dvu,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Andere: </b></td>
<td><?php echo $npd; ?> % </td>
<td><img src="npd.gif" width="<?php echo number_format($npd,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
</table>
<?php } else { ?><p class="normal">Es wurde noch keine Stimme abgegeben</p><?php } ?>
</body>
</html>
Meine Augen sind wohl nicht mehr gut genug, den Fehler zu entdecken.
Danke fuer euren Tipp!
Michael
Habe in den letzten Tagen schon gute Hilfe von euch bekommen. Jetzt habe ich es fast geschafft, komme beim vermutlich letzten Problem aber nicht weiter:
Bei folgendem Poll muss ich immer 2x abstimmen, bevor die Wertung gezaehlt wird:
http://www.mkschubert.de/umfrage1/
Aus irgendwelchen Gruenden wird der Versuch komplett ignoriert.
Bei diesem Poll funktioniert es hingegen einwandfrei schon beim ersten Versuch:
http://www.mkschubert.de/umfrageusa/
Warum?
Ich habe immer und immer wieder geschaut. Ich kann keinen Fehler feststellen.
Hier ist der Quelltext der fehlerhaften php-Datei (umfrage1.php):
<?php
// Datei, in der die Bewertungen gespeichert werden:
$fname = "umfrage1.dat";
if (isset($_POST['r1'])) { $r1 = $_POST['r1']; }
$data = file($fname);
$entry_count = count($data);
$ip = $_SERVER["REMOTE_ADDR"];
$datum = date("d.m.Y");
$zeit = date("H:i");
// überprüfen, ob der User heute schon bewertet hat:
for ($i = 0; $i < $entry_count; $i++) {
$part = explode("|", $data[$i]);
if ($ip == $part[2] && $datum == $part[0]) { $schon="ja"; }
}
// ... wenn nicht, dann Bewertung speichern (falls Formulardaten gesendet wurden):
if (empty($schon) && isset($r1)) {
$eintrag = "$datum|$zeit|$ip|$r1|\n";
$fp = fopen($fname, 'a');
flock($fp, 2);
fwrite($fp, $eintrag);
flock($fp, 3);
fclose($fp);
}
// Auswertung der Bewertungs-Datei:
$data = file($fname);
$entry_count = count($data);
$spd_c = 0; $cdu_c = 0; $gruene_c = 0; $fdp_c = 0; $pds_c = 0; $sonst_c = 0; $dkp_c = 0; $csu_c = 0; $dvu_c = 0; $npd_c = 0;
for ($i = 0; $i < $entry_count; $i++) {
$part = explode("|", $data[$i]);
// zusammenzähen:
if ($part[3] == "spd") { $spd_c++; }
if ($part[3] == "cdu") { $cdu_c++; }
if ($part[3] == "gruene") { $gruene_c++; }
if ($part[3] == "fdp") { $fdp_c++; }
if ($part[3] == "pds") { $pds_c++; }
if ($part[3] == "sonst") { $sonst_c++; }
if ($part[3] == "dkp") { $dkp_c++; }
if ($part[3] == "csu") { $csu_c++; }
if ($part[3] == "dvu") { $dvu_c++; }
if ($part[3] == "npd") { $npd_c++; }
}
// Prozente berechnen:
if ($entry_count != 0) {
$spd = number_format(($spd_c / $entry_count) * 100, 1);
$cdu = number_format(($cdu_c / $entry_count) * 100, 1);
$gruene = number_format(($gruene_c / $entry_count) * 100, 1);
$fdp = number_format(($fdp_c / $entry_count) * 100, 1);
$pds = number_format(($pds_c / $entry_count) * 100, 1);
$sonst = number_format(($sonst_c / $entry_count) * 100, 1);
$dkp = number_format(($dkp_c / $entry_count) * 100, 1);
$csu = number_format(($csu_c / $entry_count) * 100, 1);
$dvu = number_format(($dvu_c / $entry_count) * 100, 1);
$npd = number_format(($npd_c / $entry_count) * 100, 1);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<meta name="robots" content="noindex, nofollow">
<title>Umfrage</title>
<style type="text/css">
<!--
body { color: #000000; background: #ffffff; margin: 20px; padding: 0px; }
.normal { font-family: verdana, arial, sans-serif; font-size: 13px; }
td { height: 20px; color: #000000; background: #ffffff; font-family: verdana, arial, helvetica, sans-serif; font-size: 10pt; }
.hinw { font-family: verdana, arial, sans-serif; font-size: 10pt; color: #ffffff; background: #ff0000; font-weight: bold; }
.gr { font-family: verdana, arial, sans-serif; font-size: 18px; font-weight: bold; }
-->
</style>
</head>
<body>
<?php if (isset($schon) && isset($r1)) {echo "<p><span class=\"hinw\">Es wurde bereits eine Bewertung aufgenommen!</span></p>"; } ?>
<?php if ($entry_count > 0) { ?>
<p class="normal">Auf welche Art reist Du am liebsten?<br>
(<?php echo $entry_count; ?> Stimmen insgesamt)</p>
<table border="0" cellpadding="0" cellspacing="0">
<tr>
<td><b>Flugzeug: </b></td>
<td><?php echo $spd; ?> % </td>
<td><img src="spd.gif" width="<?php echo number_format($spd,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Auto: </b></td>
<td><?php echo $cdu; ?> % </td>
<td><img src="cdu.gif" width="<?php echo number_format($cdu,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Bus: </b></td>
<td><?php echo $gruene; ?> % </td>
<td><img src="gruene.gif" width="<?php echo number_format($gruene,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Bahn: </b></td>
<td><?php echo $fdp; ?> % </td>
<td><img src="fdp.gif" width="<?php echo number_format($fdp,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Fahrrad: </b></td>
<td><?php echo $pds; ?> % </td>
<td><img src="pds.gif" width="<?php echo number_format($pds,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>zu Fuß: </b></td>
<td><?php echo $sonst; ?> % </td>
<td><img src="sonst.gif" width="<?php echo number_format($sonst,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Schiff: </b></td>
<td><?php echo $dkp; ?> % </td>
<td><img src="dkp.gif" width="<?php echo number_format($dkp,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Motorrad: </b></td>
<td><?php echo $csu; ?> % </td>
<td><img src="csu.gif" width="<?php echo number_format($csu,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Wohnmobil/Caravan: </b></td>
<td><?php echo $dvu; ?> % </td>
<td><img src="dvu.gif" width="<?php echo number_format($dvu,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
<tr>
<td><b>Andere: </b></td>
<td><?php echo $npd; ?> % </td>
<td><img src="npd.gif" width="<?php echo number_format($npd,0)*2+2; ?>" height="10" alt="" border="0"></td>
</tr>
</table>
<?php } else { ?><p class="normal">Es wurde noch keine Stimme abgegeben</p><?php } ?>
</body>
</html>
Meine Augen sind wohl nicht mehr gut genug, den Fehler zu entdecken.
Danke fuer euren Tipp!
Michael
Kommentar