Thomas: Variablen an PHP übergeben

Hallo, habe folgendes Probelm:

Ich will Variableninhalte von Javascript an PHP übergeben ->

var firstname = document.formregister.firstname.value;
var name = document.formregister.name.value;

var zielstr ='registerout.php?firstname='+firstname+'&name='+name;
window.location.href=zielstr;

Das funktioniert.

Aber wie berücksichtige ich Sonderzeichen in den values z.B.
rein fiktive Annahme-> :-)

Jemand heißt
Müll & er

Jetzt muss ich doch das ü, die Leerzeichen und das & berücksichtigen.
Hab mich auch schon ein bischen mit der URI befasst, komme aber zu keinen Lösungen.

Schön wäre es natürlich, wenn gleich alle vorkommenden Sondezeichen mit übermittelt würden.

  1. Schön wäre es natürlich, wenn gleich alle vorkommenden Sondezeichen mit übermittelt würden.

    serialize ()
    urlencode ()
    und
    unserialize
    urldecode ()
    Sind die Stichwörter in PHP!
    Warum JS wenn Du mit PHP arbeitest?

    TomIRL

    1. Schön wäre es natürlich, wenn gleich alle vorkommenden Sondezeichen mit übermittelt würden.
      serialize ()
      urlencode ()
      und
      unserialize
      urldecode ()
      Sind die Stichwörter in PHP!
      Warum JS wenn Du mit PHP arbeitest?

      Ja, dass hab ich auch schon gelesen, behebt aber nicht mein Problem.
      Ich habe folgende Ausganssituation->
      1. Formularfenster zur eingabe der Daten
      2. Überprüfung der Daten mit Javascript im selben Fenster
      3. Url wird aufgerufen im selben Fenster, dieser URL werden die   Values vom Formular mitgegeben.
      4. Enintrag via PHP in die Datenbank.

      und genau bei Schritt 3 setzt mein Problem an. Die Values werden ja von Javascript nicht so übergeben, wie ich es gerne hätte.

      1. Hello,

        1. Formularfenster zur eingabe der Daten
        2. Überprüfung der Daten mit Javascript im selben Fenster
        3. Url wird aufgerufen im selben Fenster, dieser URL werden die   Values vom Formular mitgegeben.
        4. Enintrag via PHP in die Datenbank.

        Muss denn der Aufruf unbedingt per GET passieren oder könntest Du auch ein Formular mit Post absenden? Wenn doch sowieso JavaScript im Spiel ist, kann man ja sogar verschiedene POST-Actions realisieren, wenn es denn sein muss.

        Dann könnten nämlich die Werte einfach in ein Hidden-Feld übertragen werden, sollte das dann überhaupt noch notwendig sein.
        Und man müsste sich über die Kodierung überhaupt keine Gedanken machen.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Hello,

          1. Formularfenster zur eingabe der Daten
          2. Überprüfung der Daten mit Javascript im selben Fenster

          Überprüfung solltest Du überlegen mit PHP zu realisieren.
          Ist ja wohl kein Problem oder?
          Wenn jemand JS aus hat dann geht die überprüfung nicht.

          ToMIRL

          1. Überprüfung solltest Du überlegen mit PHP zu realisieren.
            Ist ja wohl kein Problem oder?
            Wenn jemand JS aus hat dann geht die überprüfung nicht.

            Ich wollte die Überprüfung aber auf der Clientseite ablaufen lassen.

            1. Überprüfung solltest Du überlegen mit PHP zu realisieren.

              Ich wollte die Überprüfung aber auf der Clientseite ablaufen lassen.

              Und ich will Dich schon davon abbringen, weil es nicht wirklich zuverlässig funktioniert.
              :-)
              Des Menschen Wille ist ein Himmelreich. :-)
              Hast du den Tip mit der übergabe via Post vom Tom mal durchdacht?

              Viel Grüße
              TomIRL

              1. Und ich will Dich schon davon abbringen, weil es nicht wirklich zuverlässig funktioniert.

                Warum? Welche Argumente sprechen dagegen?

                :-)
                Des Menschen Wille ist ein Himmelreich. :-)
                Hast du den Tip mit der übergabe via Post vom Tom mal durchdacht?

                JA, da hab ich schon vor dem ganzen Design darüber nachgedacht.

                Ich hab jetzt eine Lösung gefunden :-)
                Javascript verfügt über folgende Funktion, die einem das Leben erleichtert.

                Code:
                name = encodeURIComponent(name);
                damit werden alle Sonderzeichen mit übergeben

                Aber Danke trotzdem für eure Unterstützung.

                Gruß Thomas

                1. ? Welche Argumente sprechen dagegen?

                  Eigentlich, dass Du nicht beeinflußen kannst ob der Client Deine Anforderungen erfüllt.
                  Sprich Javaskript aktiv ist.
                  Warum etwas was ich für mich zur Sicherheit überprüfen will dem Client überlassen?
                  Dann  kann ich mir die Mühe sparen.

                  TomIRL

        2. Muss denn der Aufruf unbedingt per GET passieren oder könntest Du auch ein Formular mit Post absenden? Wenn doch sowieso JavaScript im Spiel ist, kann man ja sogar verschiedene POST-Actions realisieren, wenn es denn sein muss.

          Also meain aufruf siehr z.Z. so aus
          <form  method="get" name="formregister" action=javascript:CheckRegister()>

          Es muss den Check erst durchlaufen.
          Anschließend ruft das Javascript die neue URL auf

          var zielstr = 'registerout.php?firstname=' + firstname +'&name=';
          window.location.href=zielstr;

          Dann könnten nämlich die Werte einfach in ein Hidden-Feld übertragen werden, sollte das dann überhaupt noch notwendig sein.
          Und man müsste sich über die Kodierung überhaupt keine Gedanken machen.

          Deshalb komme ich um das Promlem nicht herum, oder vielleicht doch???

          Gruß Thomas

          1. Hello,

            <form  method="get"
                   name="formregister"
                   enctype="multipart/form-data"      (schreib ich immer präventiv *gg*)
                   action="url"
                   onSubmit="return CheckRegister()">  (so wird ein Schuh draus

            Was dann Checkregister mit document.formregister.action macht, musst Du entscheiden.

            Liebe Grüße aus http://www.braunschweig.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen