Array in $_SESSION wird überschrieben

Dieses Thema im Forum "Web-Programmierung" wurde erstellt von sevY, 15.02.2006.

  1. sevY

    sevY Thread Starter Gast

    Hi,

    ich registriere einen Array in einer PHP Session:

    PHP:
    <?php
    session_start
    ();

    if(isset(
    $_GET['interesse']) && isset($_GET['wertung'])) {

       
    $_SESSION['profile'][$_GET['interesse']]=$_GET['wertung'];
          

    }

    ?>
    Auf meinen Testsystem (Apache 1.3, PHP 4) erhalte ich dann korrekterweise einen multidimensionalen Session-Array.

    var_dump($_SESSION['profile']) gibt mir dann soetwas aus:

    array(3) { ["x"]=> string(1) "3" ,["y"]=> string(1) "4",["z"]=> string(1) "5"}


    Demnach werden die 2. Dimension des Arrays korrekt geschrieben.



    Wenn ich das jetzt aber auf meinem Produktivsystem (Debian 3.1 Sarge, Apache2, PHP4) laufen lasse, wir der Array immer komplett überschrieben, sodass zwar eine 2. Dimension vorhanden ist – jedoch mir nur einem Element.

    Entweder:
    array(1) { ["x"]=> string(1) "3" }

    oder:

    array(1) { ["y"]=> string(1) "4" }

    oder:

    array(1) { ["z"]=> string(1) "5" }


    Aber nie alle zusammen.

    Woran kann das liegen?
     
  2. catvarlog

    catvarlog MacUser Mitglied

    Beiträge:
    1.468
    Zustimmungen:
    1
    MacUser seit:
    30.01.2005
    das klingt nach voodoo... :)

    könnte es sein, dass du in deinem browser cookies deaktiviert hast und der live-server die session-id nicht parsed (session_transid false)? dann würde nämlich bei jedem aufruf eine neue session gestartet werden. lass dir mal zur kontrolle die session-id bei jedem aufruf ausgeben...
     
  3. dms

    dms Thread Starter Gast

    Mal 'ne Frage zum Session-Handling. Werden auf dem Produktivserver evtl. die Sessions nicht nach dem Default von PHP gespeichert? Stichpunkt session.save_handler = user (php.ini)
    Hier scheint nämlich ein Bug in PHP zu schlummern. Ich habe die Erfahrung gemacht dass PHP in dem Fall Probleme mit mehrdimensionalen Arrays hat. Die Session-Werte werden in manchen Fällen von PHP nicht korrekt zur Verfügung gestellt und falsch abgespeichert.

    Ansonsten hatte ich unter manchen Systemen auch schon Probleme mit dem Registrieren von Session-Variablen auf die Weise wie Du es machst. Da half dann bei mir auch nur der Weg über session_register().
     
  4. wegus

    wegus MacUser Mitglied

    Beiträge:
    15.039
    Zustimmungen:
    1.316
    MacUser seit:
    13.09.2004
    im Zweifelsfall ist bei PHP immer ein Blick auf die Versionsnumemrn anch dem Punkt hilfreich! Auch gilt es die Angaben aus der php.ini genau zu betrachten ( register globals, gpc,...)
     
Die Seite wird geladen...

Diese Seite empfehlen