fluff: Variabelnaustausch zwischen verschiedenen Servern

Hi,
ich habe (wieder) ein kleines Problem:
Ich möchte mit 2 befreundeten Websites "Variabeln" austauschen, indem ein User sich einloggt (in Website A) Informationen eingibt (diese iwo gespeichert werden) und Website B diese ann ausliest. Ich weiß nicht, wie ich das bewerkstelligen soll. Beim Googlen bin ich auf Begriffe wie cURL und Cookies gestoßen. Es ist sehr wichtig und ein Verzicht auf diese Funktionen ist sehr sehr ärgerlich. Bitte helft mir!!
Liebe Grüße.

  1. Hello,

    Ich möchte mit 2 befreundeten Websites "Variabeln" austauschen, indem ein User sich einloggt (in Website A) Informationen eingibt (diese iwo gespeichert werden) und Website B diese ann ausliest. Ich weiß nicht, wie ich das bewerkstelligen soll. Beim Googlen bin ich auf Begriffe wie cURL und Cookies gestoßen. Es ist sehr wichtig und ein Verzicht auf diese Funktionen ist sehr sehr ärgerlich. Bitte helft mir!!

    Du möchtest also, am besten über eine geschützte Verbindung, aber per HTTP/HTTPS Daten übertragen zu anderen Webservern?

    Dann sollten sie erstmal in der lage sein, selber HTTP/HTTPS zu requesten. Das ist nicht überall freigegeben.

    Und dann solltest Du die Daten nicht in HTML verpacken, sondern entweder

    • als Klartext schicken
    • als Klartext getunnelt (HTTPS) schicken
    • verschlüsseln und schicken

    wobei hi8er "schicken" immer die Response auf den Request der Gegenstelle bedeuten soll, also eine REAKTION, keine eigenständige Aktion.

    Um dies mit PHP zu gewährleisten, fang mal an mit
    http://de2.php.net/manual/en/function.header.php, nämlich "text/plain"
    und

    http://de2.php.net/manual/en/function.serialize.php
    für die Daten

    Auf der anderen Seite dann
    http://de2.php.net/manual/en/function.unserialize.php

    ggf. packst Du noch eine Prüfsumme bei, die auf der Empfängerseite dann natürlich auch überprüft werden sollte.

    Liebe Grüße aus dem schönen Oberharz

    Tom vom Berg

    --
     ☻_
    /▌
    / \ Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
  2. Tach!

    Ich möchte mit 2 befreundeten Websites "Variabeln" austauschen, indem ein User sich einloggt (in Website A) Informationen eingibt (diese iwo gespeichert werden) und Website B diese ann ausliest.

    Das geht gar nicht. Eine Variable lebt nur zur Laufzeit des Scripts und enthält einen Wert. Wenn du den Wert irgendwo abspeicherst, ist es keine Variable mehr.

    Ich weiß nicht, wie ich das bewerkstelligen soll.

    Zu klären wäre also, wie du den Wert persistiert (dauerhaft gespeichert) hast. Die nächste Frage wäre, wie B darauf zugreifen kann. Wenn B ein weiteres Projekt auf demselben Server ist, kann er unter umständen auf die Dateinhaltung zugreifen, auf die auch A Zugriff hat. Wenn nicht, muss B einen Webrequest machen und A diesen erwarten (Script zur Abfrage erstellen), annehmen (Webserver startet Script) und abarbeiten (Script gibt Ergebnis aus).

    dedlfix.

    1. Hello dedlfix,

      und wenn Du schon sooo weit ausholst, dann sollten wir auch noch die für Collaboration und Syndication gängige Technik nennen:

      http://de.wikipedia.org/wiki/RSS

      Liebe Grüße aus dem schönen Oberharz

      Tom vom Berg

      --
       ☻_
      /▌
      / \ Nur selber lernen macht schlau
      http://bergpost.annerschbarrich.de
      1. Tach!

        und wenn Du schon sooo weit ausholst, dann sollten wir auch noch die für Collaboration und Syndication gängige Technik nennen: RSS

        Über das Protokoll zum Datenaustausch habe ich zu dem Zeitpunkt noch gar nichts gesagt. Es müssen erstmal die näheren Umstände klarer definiert werden, damit man genauer einschätzen kann, welcher Weg zum Erfolg führt. Nichtsdestotrotz scheint mir RSS in beiden Fällen (lokaler und nicht lokaler Datenaustausch) übertrieben. Ich sehe nicht, was das für Vorteile bringen soll, um einen einzelnen Wert zu übertragen. RSS ist kein Push-Verfahren, was heißt, dass B nur pollen kann, und dann kann A auch ganz einfach nur mit dem Wert antworten. Das sind weniger Daten als ein leeres RSS-Paket.

        dedlfix.

  3. Hi,
    also richtig durchblicken tu ich da immer noch nicht:
    1.Wie sollen die Daten (Variabeln oder Konstanten) dem User Website übergreifend zugeordnet werden?
    2.Wie müsste so ein Script für die Absender-Website (Website A) aussehen?
    3.Soll ich http oder https benutzen?
    4.Wie können diese Daten von Website B abgefragt werden?

    1. Tach!

      1.Wie sollen die Daten (Variabeln oder Konstanten) dem User Website übergreifend zugeordnet werden?

      Werte oder Daten, bitte. Variablen und Konstanten existieren nur im Programm selbst. Bei dir sollen die Werte/Daten aber Programmgrenzen verlassen.

      Wenn Werte benutzerspezifisch sein sollen, musst du den Benutzer identifizieren können. Irgendwie muss also ein Identifikationsmerkmal beim Abfragen übertragen werden. Gegen Missbrauch hilft da nur ein geheimer Wert oder eine Kombination mit einem geheimen Wert - also Benutzername und Passwort.

      2.Wie müsste so ein Script für die Absender-Website (Website A) aussehen?

      Wenn (Benutzer identifiziert)
        Hole Daten zum Benutzer aus der Datenhaltung
        Sende Daten
      ansonsten
        Fehlermeldung

      3.Soll ich http oder https benutzen?

      Das kommt auf die Vertraulichkeit deiner Daten an.

      4.Wie können diese Daten von Website B abgefragt werden?

      Über einen Webrequest. Was der mitsenden muss? Siehe oben. Daten, die eine Benutzeridentifizierung möglich machen und eventuell dazu noch eine Unterscheidung, welche Daten abgefragt werden sollen.

      dedlfix.

      1. Hi,
        eigentlich soll das ja ein gemeinsames Login-System werden über Passwort und Email, also https, oder?
        Die Daten sollen in einer MySQL-Tabelle gespeichert werden; nur weiß ich nicht wie auch andere darauf zugreifen können. Ich hoffe das hilft weiter.

        1. Tach!

          eigentlich soll das ja ein gemeinsames Login-System werden über Passwort und Email, also https, oder?
          Die Daten sollen in einer MySQL-Tabelle gespeichert werden; nur weiß ich nicht wie auch andere darauf zugreifen können. Ich hoffe das hilft weiter.

          Normalerweise will man keinen direkten Zuriff auf MySQL direkt vom Internet aus. Bei ordentlichen Providern/Administratoren ist das auch unterbunden. Das heißt also, du brauchst ein Zugriffsscript.

          dedlfix.

          1. Hi,

            Normalerweise will man keinen direkten Zuriff auf MySQL direkt vom Internet aus. Bei ordentlichen Providern/Administratoren ist das auch unterbunden. Das heißt also, du brauchst ein Zugriffsscript.

            das ist ja mein Problem. Die anderen beiden Sites sollen nur zugreifen können.

            1. Tach!

              Normalerweise will man keinen direkten Zuriff auf MySQL direkt vom Internet aus. Bei ordentlichen Providern/Administratoren ist das auch unterbunden. Das heißt also, du brauchst ein Zugriffsscript.
              das ist ja mein Problem. Die anderen beiden Sites sollen nur zugreifen können.

              Dann formuliere bitte das Problem konkret. Die Seite muss nicht anders aussehen, als eine, die über POST oder GET Zugangsdaten entgegennimmt, eine Datenbankabfrage laufen lässt. Das Ergebnis kommt aber nicht in HTML sondern in ein übertragbares Format, beispielsweise über das von Tom schon vorgeschlagene serialize().

              dedlfix.

              1. Hello,

                Dann formuliere bitte das Problem konkret. Die Seite muss nicht anders aussehen, als eine, die über POST oder GET Zugangsdaten entgegennimmt, eine Datenbankabfrage laufen lässt. Das Ergebnis kommt aber nicht in HTML sondern in ein übertragbares Format, beispielsweise über das von Tom schon vorgeschlagene serialize().

                und für die Übertragung bitte verschlüsseln.

                Entweder "zu Fuß" oder alternativ dann eben per https.

                Aber das hatte ich ja schon alles vorgeschlagen.

                Liebe Grüße aus dem schönen Oberharz

                Tom vom Berg

                --
                 ☻_
                /▌
                / \ Nur selber lernen macht schlau
                http://bergpost.annerschbarrich.de
            2. Hi,

              Normalerweise will man keinen direkten Zuriff auf MySQL direkt vom Internet aus. Bei ordentlichen Providern/Administratoren ist das auch unterbunden. Das heißt also, du brauchst ein Zugriffsscript.

              das ist ja mein Problem. Die anderen beiden Sites sollen nur zugreifen können.

              Wo ist das Problem? Wenn du dich schon mit MySQL beschäftigst, kannst du einen User anlegen, der nur Leserecht hat. Dann können die beiden anderen Server mit dieser User- Kennung zugreifen.

              Gruß, L(in)uchs

  4. Hi,

    Ich weiß nicht, wie ich das bewerkstelligen soll.
    (diese iwo gespeichert werden)

    Erstmal das Problem sortieren. Du weisst nicht, wie man eingegebene Daten speichert? Du kannst sie mit der Programmiersprache PHP auf Server A in Dateien oder in einer Datenbank speichern. Fange mal mit Dateien an, die dem Web zur Verfügung stehen.

    und Website B diese dann ausliest.

    Server B kann per PHP auf "entfernte" (= weit weg, nicht gelöscht) Dateien per fopen zugreifen und sie auslesen. Server A prüft nicht, ob die Dateien von einem Client-Browser oder einem anderen Server gerufen werden. Bei Server B muss allow_url_fopen erlaubt sein.

    Beim Googlen bin ich auf Begriffe wie cURL und Cookies gestoßen.

    Ja, beim googlen stößt man auf alles Mögliche. Cookies werden auf dem Client vom Browser gespeichert, haben gar nichts damit zu tun, wie sich zwei Server unterhalten.

    Gruß, L(in)uchs

    1. Tach!

      Server B kann per PHP auf "entfernte" (= weit weg, nicht gelöscht) Dateien per fopen zugreifen und sie auslesen. Server A prüft nicht, ob die Dateien von einem Client-Browser oder einem anderen Server gerufen werden. Bei Server B muss allow_url_fopen erlaubt sein.

      Abgesehen davon, dass file_get_contents() einen Request in einem Stück abarbeiten kann, kann B nicht direkt auf die Dateien von A zugreifen. Übers Web kann B nur eine URL aufrufen. Was damit passiert, entscheidet A. Wenn der Webserver angewiesen wurde, zu dieser URL eine Datei auszuliefern, dann wird der das tun - zur Not mit HTTP-Authentifikation gesichert. Wenn jedoch je nach Benutzer unterschiedliche Daten geliefert werden sollen, muss jeder Benutzer eine eigene URL bekommen, oder sich ein Script um Identifikationsprüfung und Datenbeschaffung kümmern.

      dedlfix.