Moin zusammen,
ich habe ein PHP-Script, bei welchen an mehrern Stellen eingegebene Daten auf ihre Richtigkeit überprüft werden sollen. Die dabei als fehlerhaft empfundenen Eingaben werden in eine Session gespeichert, damit sie in einem Formular noch einmal ausgegeben und korrigiert werden können. Das klappt bereits recht gut.
Jetzt möchte ist aus Testzwecken überprüfen, an welchen Stellen welche provozierten Fehler abgefangen werden. Dazu müsste ich lediglich einen String ("Fehler bei ... abgefangen") mit in die Session schreiben - doch dabei bekomme ich immer wieder die Fehlermeldung "[] operator not supported for strings". Die Eingabe soll in $_SESSION["rueckgabe"] gespeichert werden, die ich vorher auch mittels $_SESSION["rueckgabe"] = array(); als Feld deklariert habe. Die anderen Eingaben werden per $_POST in die Session eingefügt. Bisher schaut das ganze so aus:
Ich habe jetzt einiges Probiert...am Ende wäre ich sogar zufrieden gewesen, wenn das Feld lediglich eine Nummer speichern würde, anhand der ich die Position des Fehlers lokalisieren könnter - immer wieder die gleiche Fehlermeldung. Ich hab es auch mit array_push () versicht, keinen Unterschied. Auch habe ich versucht, die Eingabe in ein Feld zu schreiben und das dann an die Session zu übergeben - ebenfalls keine Änderung.
Ich frage mich nur, warum der String bei den anderen Eingaben genommen wird. Oder geht es hier gar nicht um den String, also die Form des Inhaltes an sich, sondern darum, dass ich ein array mit etwas füllen will, was kein array ist? Die $_POST-Eingaben kommen ja aus einem Feld.
Ich wäre für jeden Hinweis, in welche Richtung ich mal schauen soll, dankbar.
Gruß
Michael
ich habe ein PHP-Script, bei welchen an mehrern Stellen eingegebene Daten auf ihre Richtigkeit überprüft werden sollen. Die dabei als fehlerhaft empfundenen Eingaben werden in eine Session gespeichert, damit sie in einem Formular noch einmal ausgegeben und korrigiert werden können. Das klappt bereits recht gut.
Jetzt möchte ist aus Testzwecken überprüfen, an welchen Stellen welche provozierten Fehler abgefangen werden. Dazu müsste ich lediglich einen String ("Fehler bei ... abgefangen") mit in die Session schreiben - doch dabei bekomme ich immer wieder die Fehlermeldung "[] operator not supported for strings". Die Eingabe soll in $_SESSION["rueckgabe"] gespeichert werden, die ich vorher auch mittels $_SESSION["rueckgabe"] = array(); als Feld deklariert habe. Die anderen Eingaben werden per $_POST in die Session eingefügt. Bisher schaut das ganze so aus:
Code:
$_SESSION["rueckgabe"][] = "<p>Fehler bei ... abgefangen</p>";
$_SESSION["datum_tag"][] = $_POST["datum_tag"][$i];
$_SESSION["datum_monat"][] = $_POST["datum_monat"][$i];
$_SESSION["datum_jahr"][] = $_POST["datum_jahr"][$i];
$_SESSION["betrag"][] = $_POST["betrag"][$i];
$_SESSION["kommentar"][] = $_POST["kommentar"][$i];
Ich habe jetzt einiges Probiert...am Ende wäre ich sogar zufrieden gewesen, wenn das Feld lediglich eine Nummer speichern würde, anhand der ich die Position des Fehlers lokalisieren könnter - immer wieder die gleiche Fehlermeldung. Ich hab es auch mit array_push () versicht, keinen Unterschied. Auch habe ich versucht, die Eingabe in ein Feld zu schreiben und das dann an die Session zu übergeben - ebenfalls keine Änderung.
Ich frage mich nur, warum der String bei den anderen Eingaben genommen wird. Oder geht es hier gar nicht um den String, also die Form des Inhaltes an sich, sondern darum, dass ich ein array mit etwas füllen will, was kein array ist? Die $_POST-Eingaben kommen ja aus einem Feld.
Ich wäre für jeden Hinweis, in welche Richtung ich mal schauen soll, dankbar.
Gruß
Michael
Zuletzt bearbeitet: