session & serialize ...

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • session & serialize ...

    hoi,


    dickes problem:

    ich muss zwei session arrays von seite 1 auf seite 2 übertragen. seite 2 liegt auf einem anderen server, der mit der session ja nichts anfangen kann. jetzt dachte ich mir, übertrag die beiden arrays doch mit serialize, ungefähr so...

    PHP-Code:
    header("Location: https://www.xxx.com/xyz/yyy/blah.php?".session_name()."=".session_id()."&array1=".serialize($_SESSION['array1'])."&array2=".serialize($_SESSION['array2'])); 
    ja ich weiss ziemlicher mist aber ist erstmal egal, es stehen eh keine sensiblen daten drin.

    auf seite 2 wollte ich jetzt diese arrays wieder in zwei session var's packen, das klappt aber nicht (

    PHP-Code:
    $_SESSION['array1'] = unserialize($array1);
    $_SESSION['array2'] = unserialize($array2); 
    hab's auch schon so versucht...

    PHP-Code:
    $_SESSION['array1'] = unserialize($_GET['array1']);
    $_SESSION['array2'] = unserialize($_GET['array2']); 
    tja.. geht irgendwie nicht, ich kann die daten nicht in die neuen session var's packen..

    gibts eine möglichkeit die gleiche session die ich auf server 1 benutze, auf server 2 zu kopieren oder so???

    dreh gleich durch
    Zuletzt geändert von polar; 02.12.2002, 15:27.

  • #2
    hmm..

    also ich nehm an das es wohl so funzen sollte??

    Kommentar


    • #3
      Kommt irgendeine Fehlermeldung? Lass mal die Übertragung der Sessionid weg - die ist ja auf dem anderen Server sowieso nicht gültig.

      Ansonsten kannst du mal probieren, die Daten mit base64 zu encoden:

      header("Location: script.php?array1=".base64_encode(serialize($array1)));

      $array1 = unserialize(base64_decode($_GET['array1']));
      [color="#334D7B"]"Los, lass uns loslegen! Hm ? Quatschen können wir hinterher immer noch!"[/color]
      [color="#9C5245"]"Aber Bommel, wir können jetzt nicht bumsen. Wir müssen doch erst den Kindern - ... "[/color]
      [color="#334D7B"]"Ja ja ja. Du willst immer nur das Eine. Buchstabenzeigen, Buchstabenzeigen - meine Gefühle sind dir wohl scheißegal."[/color]

      © Harald Schmidt

      Kommentar


      • #4
        hm also es klappt auch nicht base64, also liegts nicht serialize. kann es zu komplikationen kommen, wenn server nr.2 mit SSL läuft?? wenn ich mir das base64 kodierte array anschaue, steht schon was drin, aber anscheind nicht das richtige. naja ich geb nicht auf

        oder gibts evtl. prob's weil ich das array in einer session halte? die session id und der session name übetrage ich übrigens jetzt nicht mehr mit

        edit: fehlermeldungen gibts keine, die daten sind nur falsch.
        Zuletzt geändert von polar; 03.12.2002, 10:49.

        Kommentar


        • #5
          ok anscheinend hat serialize() probleme mit folgendem array...

          $_SESSION['array'][$i] = array("v1" => $eins,
          "v2" => $zwei,
          "v3" => $drei);

          das array wird in einer for schleife gefüllt.

          ..merkwürdig. der inhalt kommt auf jeden fall nicht an.

          Kommentar


          • #6
            versuch mal deinen unserialize'ten erzeugten string mittels urlencode zu bearbeiten und dann übergeben ..

            nach unserialize hast doch doppelpunkte etc drin .. wenn er die nicht richtig konvertiert .. tja .. also lieber selbst machen
            mfg,
            [color=#0080c0]Coragon[/color]

            Kommentar


            • #7
              du meinst urldecode... nach dem unserializen?

              edit: klappt immer noch nicht. bin echt ratlos momentan mach ich's so...

              server1/script1

              urlencode(serialize($_SESSION['arr']))

              server2/script2

              unserialize(urldecode($_GET['arr'])));


              ist ja eigentlich mist aber folgendes funzt auch nicht...

              $x = unserialize($_GET['arr']);
              $x = urldecode($x);

              oder umgekehrt klappt's auch nicht

              Zuletzt geändert von polar; 03.12.2002, 12:19.

              Kommentar


              • #8
                ok ich bin jung & dumm *g* also die daten kommen jetzt an hab's jetzt so gemacht...

                script1/server1:
                base64_encode(serialize($_SESSION['array']))

                script2/server2:
                $_SESSION['array'] = unserialize(base64_decode($_GET['array']));

                so... geb ich den inhalt von $_SESSION['array'] mit print_r() aus, klappt alles.

                jetzt gibts aber ein neues prob, das ich nun überhaupt nicht mehr begreife!

                wenn ich das nächste script aufrufe, existiert die $_SESSION['array'] var nicht mehr! obwohl ich den session_name(), sowie die session_id() übergebe. der inhalt ist futsch.

                zum testen hab ich einfach mal folgende var auf script2/server2 gepackt...
                $_SESSION['test'] = 'hallo';

                diese var kann ich ohne probs auf script3/server2 ausgeben, nur die $_SESSION['array'] var nicht.

                das kann doch nicht sein oder?

                kennt dieses problem jemand? syntax fehler oder falsche var namen sind nicht drin.

                Kommentar

                Lädt...
                X