Fab: array serialisieren

Hallo,

kann mir jmd. sagen wie ich ein serialisiertes url kodiertes array an ein anderes Skript übergeben kann? Bzw. wie muß ich da vorgehen wenn ich drei textfelder habe, die ausgelesen und als Query String mit dem array an ein anderes Skript übergeben werden??
Ein Beispiel wäre super!
Gruß
Fabi

  1. Hi!

    kann mir jmd. sagen wie ich ein serialisiertes url kodiertes array an ein anderes Skript übergeben kann? Bzw. wie muß ich da vorgehen wenn ich drei textfelder habe, die ausgelesen und als Query String mit dem array an ein anderes Skript übergeben werden??
    Ein Beispiel wäre super!

    Den Query-String kannst du auf der anderen Seite mittels des superglobalen Arrays $_GET abfragen und dann weiter mit unserialize() bearbeiten.

    Grüße,
    Fabian St.

    --
    ---------------------
    fabi@erde ~# whatis spam
    spam: nothing appropriate
    ---------------------
    Selfcode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:( ss:) de:> js:| ch:? mo:) zu:)
    1. Danke für deine Antwort. Mit Get darf ich das nicht machen, ich muss es wie gesagt über das serialisierte Array und den Qery_String.
      ??

      1. Hi!

        Danke für deine Antwort. Mit Get darf ich das nicht machen, ich muss es wie gesagt über das serialisierte Array und den Qery_String.

        Warum denn bitte nicht bzw. was spricht dagegen? Dies würde die einfachste und praktikabelste Möglichkeit sein. Ansonsten wären noch Sessions bzw. Cookies eine Möglichkeit.

        Grüße,
        Fabian St.

        --
        ---------------------
        fabi@erde ~# whatis spam
        spam: nothing appropriate
        ---------------------
        Selfcode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:( ss:) de:> js:| ch:? mo:) zu:)
        1. Weil, das die Aufgabenstellung sagt ;-)
          Aber Sessions hört sich gut an!
          Muß ich da eine Session anlegen?
          Gruß

          1. Hi Fab,

            Weil, das die Aufgabenstellung sagt ;-)

            Wie lautet die denn? Die will bestimmt, dass du das Array serialisiert und per GET oder POST weitergibst.

            Aber Sessions hört sich gut an!
            Muß ich da eine Session anlegen?

            Ja, aber dann ist es _komplett sinnlos_ die Array erst zu serialisieren.

            MfG, Dennis.

            --
            Mein SelfCode: ie:{ fl:( br:> va:) ls:[ fo:) rl:( n4:# ss:) de:] js:| ch:{ sh:| mo:} zu:|
            Krieg ist Gottes Art, den Amerikanern Geographie beizubringen. (Häfft)
            1. Hi Dennis,

              nein, Array serialisieren und dann mit einem QUERY_STRING an das andere Skript übergeben. Aber nicht mit POST oder GET!
              Gruß
              Fabi

              1. Hi,

                nein, Array serialisieren und dann mit einem QUERY_STRING an das andere Skript übergeben. Aber nicht mit POST oder GET!

                Preisfrage: Was ist ein Query String? Ein String der alle angehaengten Name-Wertpaare enthaelt, die per GET uebergeben werden. Es duerfte also schwer fallen, einen Query String ohne GET zu uebergeben. Der Unterschied ist lediglich, das QUERY_STRING den gesamten Parameter-String enthaelt, waehrend $_GET ein Array der einzelnen Parameter darstellt.

                Du kannst natuerlich $_GET mit implode in einen String umwandeln, diesen serialisieren, per GET an Dein Script schicken und dort wieder aufdroeseln...

                Hast Du mal ueber PATH_INFO nachgedacht? Das geht ganz ohne GET/POST.

                Gruesse, Joachim

                --
                Am Ende wird alles gut.
                1. echo $begrüßung;

                  Preisfrage: Was ist ein Query String? Ein String der alle angehaengten Name-Wertpaare enthaelt, die per GET uebergeben werden.

                  Nein. Es ist nicht zwingend erforderlich als Querystring Name-Wertpaare zu verwenden. Es kann jede beliebige URL-verträgliche Zeichenfolge sein.

                  Es duerfte also schwer fallen, einen Query String ohne GET zu uebergeben.

                  $array = array(42, 'foo' => 'bar);
                  $link = '<a href="link?' . urlencode(serialize($array)) . ...

                  ---

                  $array = unserialize($_SERVER['QUERY_STRING']);

                  Hmmm, sieht nicht sehr schwer aus...

                  echo "$verabschiedung $name";

                  1. Hi,

                    Nein. Es ist nicht zwingend erforderlich als Querystring Name-Wertpaare zu verwenden. Es kann jede beliebige URL-verträgliche Zeichenfolge sein.

                    Das ist Harspalterei, die Uebergabe erfolgt per GET, es sei denn, eine Uebergabe per "?" an ein Script stellt nicht GET dar*. Dementsprechend enthaelt das Array $_GET auch ein Element mit dem entsprechenden Namen, dessen Wert leer bleibt.

                    $link = '<a href="link?' . urlencode(serialize($array)) . ...

                    ^^^^
                    eben. Ohne GET gehts nur mit PATH_INFO

                    Gruesse, Joachim

                    --
                    *in diesem Falle nehme ich alles zurueck und behaupte von nun an das Gegentum
                    1. echo $begrüßung;

                      Nein. Es ist nicht zwingend erforderlich als Querystring Name-Wertpaare zu verwenden. Es kann jede beliebige URL-verträgliche Zeichenfolge sein.

                      Das ist Harspalterei,

                      Haarspalterei ist beim Programmieren immer von Vorteil. Die gegenteiligen Begriffe lauten meist Buffer Overflow oder Sicherheitslücke...

                      die Uebergabe erfolgt per GET, es sei denn, eine Uebergabe per "?" an ein Script stellt nicht GET dar*.

                      Ob eine URL einen Querystring enthält oder nicht ist nicht von der verwendeten HTTP-Methode (GET, POST, HEAD, ...) abhängig. Eine POST- oder HEAD-Anfrage kann ebenso einen Querystring enthalten.

                      Dementsprechend enthaelt das Array $_GET auch ein Element mit dem entsprechenden Namen, dessen Wert leer bleibt.

                      Dass PHP das $_GET-Array mit dem Querystring zu füllen versucht, ist zwar schön, aber dann nicht sinnvoll zu verwenden, wenn man von der Name-Wert-Paar-Methode keinen Gebrauch macht.

                      $link = '<a href="link?' . urlencode(serialize($array)) . ...
                                              ^^^^
                      eben. Ohne GET gehts nur mit PATH_INFO

                      Das war kein PATH_INFO sondern ein QUERY_STRING. Bei PATH_INFO verwendet man / statt ?
                      Selbstverständlich kann man auch bei verwendetem PATH_INFO noch einen Querystring anhängen...

                      echo "$verabschiedung $name";

                      1. Hi,

                        Ob eine URL einen Querystring enthält oder nicht ist nicht von der verwendeten HTTP-Methode (GET, POST, HEAD, ...) abhängig. Eine POST- oder HEAD-Anfrage kann ebenso einen Querystring enthalten.

                        Wir drehen uns im Kreis. Natuerlich bezeichnet GET zunaechst lediglich eine bestimmte HTTP-Methode. Um so unsinniger ist doch das Verlangen, einen Query-String _nicht_ per GET/POST uebermitteln zu wollen, es sei den man sucht nach head, trace etc.

                        Im allgemeinen Sprachgebrauch jedoch versteht man unter der "Uebergabe per GET" das Anfuegen von Parametern mittels "?" an eine Url - ob das ein String oder eine Abfolge von Name-Wertpaaren ist (was ja letztlich auch einen String darstellt). Folgerichtig enthaelt $QUERY_STRING ja auch den kompletten String mit allen Name/Wertpaaren.

                        Das ist natuerlich ungenau, aber imho noch weit vom Buffer-Overflow entfernt ;-)

                        eben. Ohne GET gehts nur mit PATH_INFO

                        Das war kein PATH_INFO sondern ein QUERY_STRING. Bei PATH_INFO verwendet man / statt ?

                        Das ist mir klar. Du hast mich missverstanden, mit "eben" wollte ich ausdruecken, dass Dein Bsp. eine Get Konstruktion darstellt.

                        Gruesse, Joachim

                        --
                        Am Ende wird alles gut.
        2. hi,

          Mit Get darf ich das nicht machen, ich muss es wie gesagt über das serialisierte Array und den Qery_String.

          die übergabe von argumenten per querystring _ist_ GET.

          gruß,
          wahsaga

          --
          /voodoo.css:
          #GeorgeWBush { position:absolute; bottom:-6ft; }
          1. echo $begrüßung;

            die übergabe von argumenten per querystring _ist_ GET.

            Ja und nein. Ich vermute, da er sich so vehement gegen das GET wehrt, dass das serialisierte und urlcodierte Array direkt hinter das ? gehängt werden soll und dann beim Empfänger direkt aus dem $_SERVER['QUERY_STRING'] gelesen werden soll.

            echo "$verabschiedung $name";