Votingscript läuft nicht mehr
Thomas D
- php
0 XaraX
Guten Abend liebe SelfHTML Gemeinde
Frage : Ich hab in meiner php.ini die Register_Globals = Off
eingestellt, hatte auch schon Probleme mit einem anderen Script, welche jetzt aber läuft..
Nun hab ich ein simples Umfragescript welches nun nicht mehr läuft, ich habe auch schon es ausprobiert mit
<?php
if (! isset ($_POST['antwort'])) {
die ("Kein Wert übergeben.");
} else {
if (ini_get('magic_quotes_gpc')) {
# magic_quotes_gpc = On
$antwort=stripslashes($_POST['antwort']);
}
}
?>
aber keine Änderung....
Auch wenn sich nun wieder hier einige Cracks ausregen, wie dumm doch unser einer ist, bitte ich um Nachsicht...
Hier das Script um das es sich dreht....
<?php
if (isset($submit)) {
setcookie("abgestimmt","ja",time()+10800);
}
?>
<html>
<head>
<title>Eine Web-Umfrage</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../css/neu.css">
</head>
<body bgcolor="white">
<h1>Unsere Umfrage</h1>
<p>Wie finden Sie diese Seite?</p>
<form action="<?php echo $PHP_SELF; ?>" method="post">^M
<input type="radio" name="antwort" value="0">
Gut sortiert und aktuell<br>
<input type="radio" name="antwort" value="1">
kann man mit leben<br>
<input type="radio" name="antwort" value="2">
nicht so mein Fall
<br><br>
<?php
if (! isset ($_POST['antwort'])) {
die ("Kein Wert übergeben.");
} else {
if (ini_get('magic_quotes_gpc')) {
# magic_quotes_gpc = On
$antwort=stripslashes($_POST['antwort']);
}
}
?>
<?php
if (empty($submit) && empty($abgestimmt) && empty($antwort)) {
// Submit-Button nur anzeigen, wenn Formular noch nicht
// abgeschickt und noch nicht gevoted!
?>
<input name="submit" type="submit" value="Daten senden">
<?php
}
else {
echo "<p>Danke für die Übermittlung der Daten!</p>\n";
// Formular abgeschickt? Aber bisher noch nicht gevoted?
if (isset($submit) && isset($antwort) && empty($abgestimmt)) {
// Dateiname in Variable speichern
$datei="ergebnis.txt";
$zeiger=fopen($datei,"r+");
$umfrage=fread($zeiger,filesize($datei));
// String aus Datei mit Komma als Trenner in Array zerlegen
$umfrage=explode(",",$umfrage);
// Welcher Wert wurde im Formular ausgewählt?
// Diese Position wird um 1 erhöht!
$umfrage[$antwort]++;
// String neu zusammensetzen
$umfrage=$umfrage[0].",".$umfrage[1].",".$umfrage[2];
rewind($zeiger);
// neuen String in Datei schreiben
fputs($zeiger,$umfrage);
fclose($zeiger);
}
}
?>
</form>
<p>
[ <a href="auswertung.php" target="unten">Umfrageergebnisse ansehen</a> ]
</p>
</body>
</html>
Hallo,
<?php
$flag=TRUE;
/* die Funktion [link:http://de3.php.net/manual/de/function.isset.php@title=isset()] kann mehrere Werte aufnehmen
es wird mit [link:http://de3.php.net/manual/de/function.in-array.php@title=in_array()] abgeprüft, ob nicht jemand
mit einem eigenem Script hier Schabernak treiben will
*/
if(isset($_POST['submit'],$_POST['antwort']) && in_array($_POST['antwort'],array(0,1,2)) && !isset($_COOKIES['abgestimmt'])){
setcookie("abgestimmt","ja",time()+10800);
$file="ergebnis.txt";
/* das ganze habe ich etwas umgeschrieben, bitte schlage die Arbeitsweise
der einzelnen Funktionen nach, wenn Du nicht weißt, was hier geschieht
*/
$umfrage=file($file);
for($i=0;$i<3;$i++)
$umfrage[$i]=intval(trim($umfrage[$i]));
$umfrage[$_POST['antwort']]++;
# zurückspeichern des Ergebnisses
$dat=fopen($file,'w');
fwrite($dat,implode("\n",$umfrage));
fclose($dat);
$flag=FALSE;
}
?>
<html>
<head>
<title>Eine Web-Umfrage</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" type="text/css" href="../css/neu.css">
</head>
<body bgcolor="white">
<h1>Unsere Umfrage</h1>
<p>Wie finden Sie diese Seite?</p>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">^M
<input type="radio" name="antwort" value="0">
Gut sortiert und aktuell<br>
<input type="radio" name="antwort" value="1">
kann man mit leben<br>
<input type="radio" name="antwort" value="2">
nicht so mein Fall
<br><br>
<?php if($flag) echo '<input name="submit" type="submit" value="Daten senden">'; ?>
</form>
<p>
[ <a href="auswertung.php" target="unten">Umfrageergebnisse ansehen</a> ]
</p>
</body>
</html>
Wie Du siehst, ist der Quellcode weitestgehend vom HTML-Quelltext getrennt. Somit ist er übersichtlicher. Das solltest Du Dir auch antreinieren, um den Überblick zu bewahren.
Gruß aus Berlin!
eddi