chris4life
Grünschnabel
Hi Sven,
irgendwie scheint das ganze noch net zu funktionieren. Die cookiesperre bis nächsten Mittwoch klappt wunderbar, aber die zurücksetzung der txt haut nicht hin.
Ich hab die ganze Zeit hin und her probiert. Systemzeit vor- und zurückgesetzt, mit anderen Daten also Datumsangaben rumprobiert. Wenn ich es schaffe, dass er bis zum array_fill kommt, löscht bzw. füllt er die Datei neu, aber mit leeren Werten. Also die Datei ist einfach leer und das neue Voting wird nicht gezählt.
Das ist das gesamte Umfrage-Script.
Es gibt noch eine ergebnis.php, aber die sollte hier aussen vor sein.
Ich finde meinen Fehler einfach nicht.
Danke
Gruß
Chris
irgendwie scheint das ganze noch net zu funktionieren. Die cookiesperre bis nächsten Mittwoch klappt wunderbar, aber die zurücksetzung der txt haut nicht hin.
Ich hab die ganze Zeit hin und her probiert. Systemzeit vor- und zurückgesetzt, mit anderen Daten also Datumsangaben rumprobiert. Wenn ich es schaffe, dass er bis zum array_fill kommt, löscht bzw. füllt er die Datei neu, aber mit leeren Werten. Also die Datei ist einfach leer und das neue Voting wird nicht gezählt.
Das ist das gesamte Umfrage-Script.
PHP:
<?php
/*if (isset ($_POST["ergebnis"])) {
// Aktuelle Sperre 1 Minute
// 30 Tage Sperre time()+60*60*24*30
setcookie("abgestimmt", "ja", time() + 60);
}*/
if (isset ($_POST["ergebnis"])) {
setcookie("abgestimmt", "ja", strtotime("next Wednesday"));
}
$thema = "Fussball-Umfrage | Wer kommt, wer nicht?";
$auswahl = array (
"Ja, ich komme!",
"Nein, ich kann nicht!"
);
$personen = array (
"Stefan",
"Jaspi",
"Christoph",
"Heinz",
"Ralf 1",
"Ralf 2",
"Berti",
"Olli",
"Bossi",
"Katze",
"Tomi",
"Manu"
);
$anzahl = count($auswahl);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>Fussball</title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link href="default.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="header">
</div>
<div id="content">
<h3><?php echo $thema ?></h3>
<div style="float:left;">
<form method='post' action='<?php echo $PHP_SELF; ?>'>
<p>
<?php
echo "Wir haben den " . date("d.m.Y") . ", es ist jetzt " . date("H:i") . "h";
echo "<table class='tabelle'>";
foreach ($personen as $key => $person) {
echo "<tr><td>" . $person . "</td>";
foreach ($auswahl as $key => $eintrag) {
echo "<td><input type='radio' name='ergebnis' value='$key'>$eintrag</td>\n";
}
echo "</tr>";
}
echo "</table>";
?>
</p>
<?php
if (empty ($_COOKIE["abgestimmt"]) && !isset ($_POST["ergebnis"])) {
// Submit nur zeigen, wenn Formular noch nicht abgeschickt wurde
echo "<input type='submit' value='Daten senden'>";
} else {
echo "<p>Danke für die Übermittlung der Daten! Die Abstimmung wird nächsten Mittwochabend wieder freigeschaltet! </p>\n";
// Formular abgeschickt? Aber bisher noch nicht abgestimmt?
if (empty ($_COOKIE["abgestimmt"]) && isset ($_POST["ergebnis"])) {
// Dateiname in Variable speichern
$datei = "daten/stimmen.txt";
// Datei vorhanden?
if (file_exists($datei)) {
$fp = fopen($datei, "r+");
} else {
$fp = fopen($datei, "w");
}
// Datei einlesen
$stimmen = fread($fp, filesize($datei));
// String aus Datei in Array zerlegen
$stimmen = explode(",", $stimmen);
if (strtotime("last Tuesday") != strtotime("last Tuesday", filemtime($datei))) {
$stimmen = array_fill(0, $anzahl, '0');
//$stimmen = fopen($datei, "w+");*/
} else {
$stimmen[$_POST["ergebnis"]]++;
}
// Stimmen in einem String zusammensetzen
for ($i = 0; $i < $anzahl; $i++) {
$total .= $stimmen[$i] . ",";
}
// Der gewählte Punkt wird um 1 erhöht!
//$stimmen[$_POST["ergebnis"]]++;
// Neuen String in Datei schreiben
rewind($fp);
fputs($fp, $total);
fclose($fp);
}
}
?>
</form>
<p>
[ <a href='ergebnis.php' target='_blank'>Umfrageergebnisse betrachten</a> ]
</p>
</div>
<div style="float:left">
<div id="footer">
<p id="legal">Copyright © 2009 chris4life. All Rights Reserved.</p>
</div>
</body>
</html>
Es gibt noch eine ergebnis.php, aber die sollte hier aussen vor sein.
Ich finde meinen Fehler einfach nicht.
Danke
Gruß
Chris