Tom: Merkwürder Fehler mit dem Session-Array

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

--
 ☻_
/▌
/ \ Nur selber lernen macht schlau
http://restaurant-zur-kleinen-kapelle.de
  1. 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

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://restaurant-zur-kleinen-kapelle.de
  2. 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.

    --
    ie:% br:> fl:| va:) ls:[ fo:) rl:| n4:? de:> ss:| ch:? js:) mo:} zu:)
    1. 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

      1. 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

        --
         ☻_
        /▌
        / \ Nur selber lernen macht schlau
        http://bikers-lodge.com