af2111: Javascript Variablen von einer Website zur anderen bringen

Hallo, ich habe ein kleines Problem. Ich will(Zu Testzwecken) eine Bankaccountseite erstellen. Dabei sind aber Erstellung des Bankaccounts und die Verwaltung(Einzahlen, Auszahlen) getrennt. Wie kann ich also den Bankaccount von der Erstellungsseite zur Verwaltungsseite bringen.

  1. Hallo,

    eine Idee dazu: localStorage

    Gruß
    Jürgen

  2. hallo

    Hallo, ich habe ein kleines Problem. Ich will(Zu Testzwecken) eine Bankaccountseite erstellen. Dabei sind aber Erstellung des Bankaccounts und die Verwaltung(Einzahlen, Auszahlen) getrennt. Wie kann ich also den Bankaccount von der Erstellungsseite zur Verwaltungsseite bringen.

    Also wenn du mit Absicht von Bankkonto sprichst (und damit eine hohe Sicherheit voraussetzt, dann gar nicht). Es sei dir maximal erlaubt, mit dem Client Session-Tokens und davon abgeleitetes zu verwalten.

    Trust no one!

    --
    Neu im Forum! Signaturen kann man ausblenden!
  3. Oder mit an der url dran hängen.Aber bei Bankdaten sollte man das lassen

  4. Hallo af2111,

    wie beatovich schon sagte: das solltest Du nicht am Client tun. Banking gehört auf ein vertrauenswürdiges Gerät, und das steht bei Dir, nicht beim Anwender.

    Also: Wenn schon JavaScript, dann node.js auf dem Server. Serverseitige Alternativen sind PHP, Perl, JSP, ASP.NET oder was sonst auch immer Du beherrschst. Beherrschen ist hier wichtig, denn Banking ist keine Spielerei, sondern muss höchste Sicherheitsanforderungen erfüllen.

    Mit einer Serveranwendung im Hintergrund hast Du einen Login, den Du in der Serversession speicherst. Der Client bekommt nur einen Cookie mit der Session-ID. Wechselt der Anwender dann zur Verwaltungs- oder Transaktionsseite, kommt der Cookie mit und Du kannst am Server die Sessiondaten dazu laden.

    Rolf

    --
    sumpsi - posui - clusi
  5. Servus!

    Im Wiki: JavaScript/Tutorials/Wertübergabe_zwischen_verschiedenen_HTML-Dokumenten

    Herzliche Grüße

    Matthias Scharwies

    --
    "An alle, die nie an mich geglaubt haben und gesagt haben, aus mir werde nie was. Ich bin jetzt Admin bei einer WhatsApp Gruppe!"
    1. Im Wiki: JavaScript/Tutorials/Wertübergabe_zwischen_verschiedenen_HTML-Dokumenten

      Mir fallen da noch zwei weitere Möglichkeiten ein: SharedWorker haben leider noch keine weite Browser-Unterstützung. Dafür sieht postMessage etwas besser aus.

      1. Ich glaube, ich gehe die Sache da etwas falsch an. Wie beatovich sagte, bei Bankkonten muss man eine hohe Sicherheit haben. Deshalb sollte die Frage vielleicht lauten: Wie Exportiert man Javascript Variablen in PHP Variablen?

        1. Hallo af2111,

          der Begriff "Export von Variablen" ist hier nicht wirklich passend. Im Prinzip hast Du zwei getrennt voneinander arbeitende Systeme: Der Browser mit seinen eingebauten Fähigkeiten plus JavaScript, und der Webserver, auf dem beispielsweise PHP eingesetzt werden kann. Browser und Webserver kommunizieren nicht auf Variablen-Ebene miteinander, sondern schicken sich Nachrichten zu. Wie die aussehen, kann man selbst festlegen.

          Die Kommunikation zwischen Browser und Webserver erfolgt im Normalfall über HTTP Anfragen, die vom Server beantwortet werden. Eine solche Anfrage ist auf eine URL gerichtet, zum Beispiel http://www.example.org/af2111/test.php. Auf dem Server muss dann eingestellt sein, dass der Abruf von test.php nicht einfach die Datei überträgt sondern das PHP-Script test.php aufruft.

          Nun kann diese Server-Anfrage unterschiedlich formuliert sein. Das Wiki hat dazu Informationen. Es gibt GET-Anfragen, die auch der Browser macht wenn Du in der Adresszeile z.B. https://forum.selfhtml.org eingibst. Solche Anfragen können Daten nur in der URL transportieren, als Query-Parameter. Sowas siehst Du im Self-Wiki wenn Du z.B. eine Seitenhistorie aufrufst: https://wiki.selfhtml.org/index.php?title=Referenz:HTML/fieldset&action=history. Da wird eine index.php abgerufen, dann kommt ein Fragezeichen und dann folgen Parameter: title=Referenz:HTML/fieldset und action=history. Die Parameter sind durch ein & getrennt. Das ist HTTP-Standard, keine PHP Erfindung.

          Der PHP Interpreter auf dem Webserver kennt das und stellt Dir in einer speziellen Variablen namens $_GET die GET-Parameter zur Verfügung. Du kannst also im PHP dann abfragen:

          if ($_GET['action'] === 'history') {`
             $artikel = $_GET['title'];
             // history des Artikels anzeigen
          }
          

          Die Alternative sind POST-Anfragen, die dein Browser macht wenn Du Formulardaten übermittelst. Bei POST-Anfragen gibt es außer den URL-Parametern noch einen "Nutzlast"-Anteil der Nachricht, und den kannst Du nahezu beliebig gestalten. Eine häufige Gestalt ist das application/x-www-form-urlencoded Format; da sehen die Parameter genauso aus wie in der URL, aber man sieht sie nicht in der Browser-Adresszeile (und es gibt auch keine Längenbegrenzung wie in der URL).

          D.h. wenn Du ein <form method='POST' action='dingsbums.php'> auf deiner Seite hast und darin den Submit-Button drückst, gelangen die im Form definierten Eingeabefelder mit einem POST-Request zum dingsbums.php und finden sich dort in der Variablen $_POST wieder, ähnlich wie eben beim GET.

          Das PHP-Script, das auf dem Server läuft, kann die Daten dann verarbeiten und eine Antwort schicken. Entweder ein HTML-Fragment, das Du per Javascript in einen Container auf deiner Seite einsetzt, oder einfach nur Daten als XML-Dokument oder JSON-String (was das ist, steht in dem unten angegebenen Link zu Ajax). Dein JavaScript kann diese Antwort dann auseinandernehmen und die gefundenen Werte in Variablen speichern.

          Das Gleiche geht aus JavaScript heraus mit den sogenannten Ajax-Techniken. Auch von dort aus kannst Du GET und POST Requests auslösen, oder auch die anderen HTTP-Methoden wie PUT oder DELETE nutzen. Andere Methoden als GET und POST solltest Du aber nur verwenden, wenn Du eine REST-Schnittstelle baust, da werden die HTTP Methodennamen ausführlich genutzt. Dazu habe ich leider keinen Artikel im Self-WIKI, aber in der Wikipedia steht was darüber.

          Ajax ist eine häufig verwendete Methode, um aus JavaScript heraus mit dem Server zu kommunizieren, aber es litt sehr unter Browser-Inkompatibilitäten. Wenn Du nur aktuelle Browser berücksichtigst, kannst Du davon ausgehen, dass sie sich gleich verhalten, aber bei älteren Browsern muss man schon mal in den Kompatibilitätslisten stöbern, um zu wissen, ob etwas geht oder nicht.

          Lies Dir mal durch, was im Wiki zu Ajax und der darauf aufbauenden Schnittstelle fetch steht.

          Rolf

          --
          sumpsi - posui - clusi
          1. @@Rolf B

            Die Parameter sind durch ein & getrennt. Das ist HTTP-Standard, keine PHP Erfindung.

            ?? An welcher Stelle standardisiert HTTP das & als Trennzeichen? In RFC 7231 §4.3.1 nicht. Auch RFC 3986 §3.4 und RFC 7320 §2.4 tun das nicht.

            Ansonsten wurde empfohlen, ; statt & als Trennzeichen zu verwenden (um das Escapen in HTML zu vermeiden), aber es hat sich niemand dran gehalten.

            aber bei älteren Browsern muss man schon mal in den Kompatibilitätslisten stöbern

            Muss man?

            LLAP 🖖

            --
            „Wer durch Wissen und Erfahrung der Klügere ist, der sollte nicht nachgeben. Und nicht aufgeben.“ —Kurt Weidemann
            1. Tach!

              Die Parameter sind durch ein & getrennt. Das ist HTTP-Standard, keine PHP Erfindung.

              ?? An welcher Stelle standardisiert HTTP das & als Trennzeichen? In RFC 7231 §4.3.1 nicht. Auch RFC 3986 §3.4 und RFC 7320 §2.4 tun das nicht.

              Ansonsten wurde empfohlen, ; statt & als Trennzeichen zu verwenden (um das Escapen in HTML zu vermeiden), aber es hat sich niemand dran gehalten.

              Diese Empfehlung stand bei HTML 4.01, jedoch nicht bei Form content types, sondern in einem Anhang. und wenn ich das richtig sehe, hat sie es nicht nach HTML 5 geschafft. Stattdessen steht da bei 4.10.21.6. URL-encoded form data nur ein Verweis auf die WHATWG, und dort ist zu finden: If tuple is not the first pair in tuples, then append U+0026 (&) to output.

              Jedenfalls kennt PHP die ini-Einstellung arg_separator.input, die man auf ;& setzen kann, um beides zu haben. Und wenn man selbst das ; nimmt, muss man auch das & gestatten, denn das verwenden die Browser von sich aus, wenn sie Formularwerte bei GET-Requests zusammenstellen. Da gibt es nichts, um ihnen zu sagen welche Zeichen sie verwenden sollen. Das ; kann man nur nehmen, wenn man den Querystring selbst zusammenbaut.

              dedlfix.