Fehler mit Textdateien und Arrays geschlossen 

Status
Für weitere Antworten geschlossen.

mortician

Registered +
Registriert
Juni 2005
Beiträge
715
Tagchen.
Ich habe vor, ein Votingscript mit Textdateien zu schreiben.
Allerdings habe ich einen kleinen Fehler.
Ich habe ein Textdokument, wo die Zahlen der Antworten folgendermaßen aufgelistet sind:
1
2
3
4

( Nur ein Beispiel )

Gibt nun der User Antwort 1 an, soll die erste Zeilen um 1 erhöht werden.
Ich habe alle Ergebnisse der Zahlen in ein Array gespeichert, jeden String aus dem Array in ein Integer gewandelt, es um 1 erhöht, das Array geteilt.
Allerdings, wenn ich nun als Beispiel Antwort1 angeben sieht der String folgendermaßen aus:
1
0
0
0

Beim Umwandeln des Strings in ein Integer, da liegt meiner Meinung nach der Fehler.
Ich habe leider noch keinen Plan warum.
Daher hoff ich, dass Ihr mir helfen könnt.
Script steht hier:
PHP:
$dateiname_frage = "frage.txt";
$dateiname_antwortzahlen = "antwortzahlen.txt";
$dateiname_antworten = "antworten.txt";

if (file_exists($dateiname_frage) && file_exists($dateiname_antwortzahlen) && file_exists($dateiname_antworten)) {
if (!isset($_POST['Antwort'])) {
$handle_frage = fopen($dateiname_frage,"r+");
$frage = fread($handle_frage,filesize($dateiname_frage));
echo "".$frage."";
echo "
[TABLE]
";
$antworten = file($dateiname_antworten);
foreach($antworten as $antwort) {
if (!isset($nr)) { $nr = 1; }
echo "
[TR]
[td]".$antwort."[/td]
[/TR]

";
$nr++;
}
echo "
[/TABLE]
";
} else {
$antwortzahlen = file($dateiname_antwortzahlen);
for($i=0;$i $antwortzahlen[$i] = intval($antwortzahlen[$i]);
}
$antwortzahlen[$_POST['Antwort']-1]++;;
$neu = implode("\n",$antwortzahlen);
echo nl2br($neu);
}
} else {
echo "Die von Ihnen angegebenen Dateinamen sind nicht zu erreichen.";
}
?>

Der Fehler liegt in der Zeile:
$antwortzahlen[$i] = intval($antwortzahlen[$i]);
 
~ P U S H P O S T ~
@mortician: falls nicht mehr aktuell, gib' bitte bescheid!!

ceeyaa.mex
 
$antwortzahlen[$_POST['Antwort']-1]++;;
gibts da irgendeine fehlermeldung dazu?

auf den ersten blick find ich nix

mfg marx
 
habe es mit PHP 5 probiert (und so
PHP:
$frage = "wie heißt du?";
$antwortzahlen = array("12\n","23\n","3\n","1");
$antworten = array("eins\n","zwei\n","drei\n","vier");


if (!isset($_POST['Antwort'])) {

echo "".$frage."";
echo "
[TABLE]
";
foreach($antworten as $antwort) {
if (!isset($nr)) { $nr = 1; }
echo "
[TR]
[td]".$antwort."[/td]
[/TR]

";
$nr++;
}
echo "
[/TABLE]
";
} else {
for($i=0;$i $antwortzahlen[$i] = intval($antwortzahlen[$i]);
}
$antwortzahlen[$_POST['Antwort']-1]++;;
$neu = implode("\n",$antwortzahlen);
echo nl2br($neu);
}

?>
) probiert

-> es funktioniert einwandfrei oO
 
und wieder mal geschlafen ...

~ C L O S E D ~

ceeyaa.mex
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben Unten