Merkwürder Fehler mit dem Session-Array
Tom
- php
0 Tom0 Felix Riesterer0 Tabellenkalk0 Tom
Hello,
ich knabber hier schon seit Stunden an einem merkwürdigen Fehler mit dem Session-Array. Wahrscheinlich mach ich ja nur was falsch, aber ich sehe den Fehler nicht.
gekürzte Variante
# ...
$_SESSION['contact'] = array();
$_SESSION['contact']['attribs']['{{DEBUG}}}'] = 'test';
$_SESSION['contact']['data']['subject']['rule'] = 'required';
$_SESSION['contact']['data']['subject']['param'] = '<!--SUBJECT-->';
$_SESSION['contact']['data']['subject']['value'] = '';
$_SESSION['contact']['data']['subject']['func'] = 'check_minlen';
$_SESSION['contact']['data']['subject']['checked'] = false;
$_SESSION['contact']['attrib']['{{SUBJECT.ATTRIB}}'] = '';
# usw.
liefert
Array
(
[sess_start] => 1391847931
[lastclick] => 1391880285
[contact] => Array
(
[attribs] => Array
(
[{{DEBUG}}}] => test
)
[data] => Array
(
[subject] => Array
(
[rule] => required
[param] => <!--SUBJECT-->
[value] =>
[func] => check_minlen
[checked] =>
)
# ...
# und dann dieses merkwürdige Array:
[attrib] => Array
(
[] =>
[] =>
[] =>
[] =>
[] =>
[] =>
[disabled="disabled"] => disabled="disabled"
[] =>
[disabled="disabled"] => disabled="disabled"
[disabled="disabled"] => disabled="disabled"
)
wenn ich das Subelement umbenenne in ['contact']['attribx'] oder ähnlich, wird die Zuweisung ordnungsgemäß durchgeführt.
Ist "attrib" ein verstecktes Schlüsselwort in PHP? Ich habe den Elementbezeichner aber ordnungsgemäß als String notiert!
Ich bekam auch zwischenzeitlich eine
Notice: Array to string conversion
bin mir aber keiner Schuld bewusst.
Vorhin hat das Konstrukt schon mal funktioniert, bevor ich ['attrib'] mit in die Session aufgenommen habe, $_attrib[...] also noch ein separates Array war.
Das Session-Array enthält auch darüberhinaus noch keine anderen Daten.
Woran könnte es liegen?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
nicht erklärlich...
Ich habe nun ein paar Teile einfach rausgeschmissen aus dem Script und neu erfasst. Nun funktioniert es, obwohl da augenscheinlich genau derselbe Quelltext wieder steht.
Kann es sein, dass ich mir irgenein "ulkiges" Zeichen eingefangen hatte, dass der Parser nicht verkraftet hat, das aber nicht angezeigt wurde?
Der "Alarm" ist jedenfalls erstmal abgeblasen. Ich habe aber die alte Datei aufgehoben und werde das vielleicht nochmal genauer untersuchen, wenn ich mehr Zeit habe.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Lieber Tom,
ich kann mir Dein Problem auch nicht erklären, jedoch fiel mir das hier auf:
$_SESSION['contact']['attribs']['{{DEBUG}}}'] = 'test';
sollen da wirklich nur zwei öffnende aber gleich drei schließende Klammern um DEBUG herum stehen?
Liebe Grüße,
Felix Riesterer.
Hallo,
ich kann mir Dein Problem auch nicht erklären, jedoch fiel mir das hier auf:
$_SESSION['contact']['attribs']['{{DEBUG}}}'] = 'test';
und mir fiel das hier auf:
$_SESSION['contact']['attribs']
$_SESSION['contact']['attrib']
Absicht?
Gruß
Kalk
Hello,
Hallo,
ich kann mir Dein Problem auch nicht erklären, jedoch fiel mir das hier auf:
$_SESSION['contact']['attribs']['{{DEBUG}}}'] = 'test';
und mir fiel das hier auf:
$_SESSION['contact']['attribs']
$_SESSION['contact']['attrib']Absicht?
Ja, das war Absicht.
['attribs'] wurde gespeichert und wieder ausgegeben
['attrib'] war verschwunden...
Die Klammern }}} wären allerdings ein Fehler gewesen, wenn der Code hätte produktiv sein sollen. Aber ich hatte die Zeile ja nur zum Debuggen eingefügt ohne jegliche ernsthaftere Bedeutung.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg