Benutzerdefinierte Suche

Array in $_SESSION wird überschrieben

  1. sevY

    sevY Thread Starter

    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?
     
    sevY, 15.02.2006
  2. catvarlog

    catvarlogMacUser Mitglied

    Mitglied seit:
    30.01.2005
    Beiträge:
    1.468
    Zustimmungen:
    1
    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...
     
    catvarlog, 16.02.2006
  3. dms

    dms Thread Starter

    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

    wegusMacUser Mitglied

    Mitglied seit:
    13.09.2004
    Beiträge:
    14.982
    Zustimmungen:
    1.545
    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,...)
     
    wegus, 16.02.2006
Die Seite wird geladen...