parse error
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ansprechen
array
auszug
code
datei
ergebnis
erinnern
folgende fehlermeldung
folgendes code
fortsetzung
gut code
gut frage
handbuch
logik
sandrock
stimme
umfrage
waldorf
werte anzahl
werte array
-
Zur Zeile
$stimme = $werte[$_POST['umfrage']];
erhalte ich folgende Fehlermeldung
Parse error: syntax error, unexpected '[', expecting ']'
Kann mir das jemand erklären (es handelt sich um ein Skript für ein Umfrageformular)? -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Arrays in Arrays (mehrdimensionale Arrays) werden über $array[][] angesprochen.
Da ich den Rest nicht kenne, vermute ich, dass $werte ein mehrdimensionales Array ist, was aber irgendiwe auch keinen Sinnmacht, weil $_POST dort eigentlich gar nicht rein kommen kann, es sei denn, du schreibst es vorher "von Hand" dort hinein. Was ich sagen will: Sicher, dass die Logik dahinter überhaupt stimmt? -
Zitat: Arrays in Arrays (mehrdimensionale Arrays) werden über $array[][] angesprochen.
Da ich den Rest nicht kenne, vermute ich, dass $werte ein mehrdimensionales Array ist, was aber irgendiwe auch keinen Sinnmacht, weil $_POST dort eigentlich gar nicht rein kommen kann, es sei denn, du schreibst es vorher "von Hand" dort hinein. Was ich sagen will: Sicher, dass die Logik dahinter überhaupt stimmt?
---------
Tja, wenn ich das wüsste. Ich vertraue hier einem PHP-Handbuch, von dem
ich das übernommen habe. Ich kann ja mal wiedergeben, was das schlaue
Handbuch dazu schreibt.
Zunächst zur Erläuterung. Die Werte für die Umfrage habe ich in
eine Datei "variablen.php" angelegt mit (Auszug):
<?$werte = array("schlecht", "gut", "sehr gut");?>
USW.
Der Anfang vom Skript fürs Formular lautet (Auszug):
<? include ("variablen.php") ?> <html> <head></head> <body> <form action="auswertung.php" method="post"> </body> </html>
USW.
Nun schreibt das Handbuch:
"Das Formular liefert als Ergebnis den Index des gewählten Elementes
(also z.B. "gut") in der Variablen $_POST['umfrage'] zurück. Die
Auswertung muss also nur einen Zähler für jedes Element mitführen
und diesen Zähler bei jeder Rückmeldung anpassen."
Etwas weiter heißt es dann:
Da das Umfrageformular in $_POST['umfrage'] den Index des gewählten
Elementes übergibt, können wir mit
$stimme = $werte[$_POST['umfrage]];
die abgegebene Stimme der Variablen $stimme zuweisen."
--
Funktioniert aber nicht...
-
$_POST['umfrage'] liefert scheinbar den Schlüssel für das $werte-Array. Versuch mal folgendes:
<?php $key = $_POST['umfrage']; $stimme = $werte[$key]; ?>
edit: Welche PHP-Version nutzt du? Ich meine mich erinnern zu können, Arrays als Arrayschlüssel schonmal benutzt zu haben. Scheinbar gehts bei dir aber nicht...
Beitrag geändert: 14.9.2008 14:31:50 von sandrock-jonas -
$_POST['umfrage'] liefert scheinbar den Schlüssel für das $werte-Array. Versuch mal folgendes:
<?php $key = $_POST['umfrage']; $stimme = $werte[$key]; ?>
edit: Welche PHP-Version nutzt du? Ich meine mich erinnern zu können, Arrays als Arrayschlüssel schonmal benutzt zu haben. Scheinbar gehts bei dir aber nicht...
Beitrag geändert: 14.9.2008 14:31:50 von sandrock-jonas
Ich habe es ausprobiert. Für die gleiche Zeile bekomme ich nun
folgende Fehlermeldung:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
Ich benutze PHP 5.
-
Zeig doch mal den Teil Code, an dem das Array deklariert und initialisiert wird. Man kann ein numerisches Array natürlich nicht wie ein assoziatives Array ansprechen.
-
Zeig doch mal den Teil Code, an dem das Array deklariert und initialisiert wird. Man kann ein numerisches Array natürlich nicht wie ein assoziatives Array ansprechen.
Also, das Array ist sowohl numerisch als auch assoziativ initialisiert.
Ist das eigentlich ein Widerspruch?
In der Variablen.php-Datei lautet der Code:
<? $werte = array("schlecht", "gut", "sehr gut"); $frage = htmlentities("Wie findet ihr X und Y?"); $ergebnis = "ergebnis_xy.txt"; $button_text = " Fortsetzung folgt! "; sort($werte); $anzahl = count($werte); $nz = chr(13).chr(10); if (!file_exists($ergebnis)) { $dz = fopen($ergebnis, "w"); for ($i = 0; $i < anzahl; $i++) { $eintrag = $werte[$i].$nz."0".$nz; fwrite($dz,$eintrag); } fclose($dz); } ?>
In der Auswertung.php-Datei ist dann noch dieser Schnipsel:
<? $poll = array("schlecht" => 0, "gut" => 0, "sehr gut" => 0); ?>
-
Mir scheint es sich noch um ein grundsätzlicheres Problem zu
handeln. So soll ja mit
<? $werte = array("schlecht", "gut", "sehr gut"); $frage = htmlentities("Wie findet ihr X und Y?"); $ergebnis = "ergebnis_xy.txt"; $button_text = " Fortsetzung folgt! "; sort($werte); $anzahl = count($werte); $nz = chr(13).chr(10); if (!file_exists($ergebnis)) { $dz = fopen($ergebnis, "w"); for ($i = 0; $i < anzahl; $i++) { $eintrag = $werte[$i].$nz."0".$nz; fwrite($dz, $eintrag); } fclose($dz); } ?>
eine Zählerdatei angelegt werden, in der die Werte eingetragen
und gezählt werden.
Die Datei ergebnis_xy.txt wurde auch angelegt. Allerdings bleibt
sie leer. Es gibt dort keine Einträge, die mit
$dz = fopen($ergebnis, "r");
ausgelesen werden könnten.
Hrrrm.
Beitrag geändert: 14.9.2008 22:36:06 von waldorf
Beitrag geändert: 14.9.2008 22:52:34 von waldorf
Beitrag geändert: 14.9.2008 22:55:10 von waldorf -
Liebe Leutz,
ich habe jetzt einfach Folgendes gemacht - nämlich mir die
Skripts von der HP des Autors, der das Handbuch geschrieben hat,
runtergezogen. Nun funktioniert es natürlich.
Irgendwo hat sich da ein ekliger Fehler eingeschlichen,
allein der Teufel weiß, wo...
Greetz -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage