Mike: Auf anderen Server zugreifen u. dort in Datei schreiben

(Das Forum gibt's ja noch/wieder.. :-D )

Hi,

und zwar möchte ich auf Server A eine PHP-Datei aufrufen, die dann eine .txt-Datei auf Server B ausliest und neu schreibt.

Dazu muss man sich auf dem anderen Server einloggen: Aber wie? Etwa mit FTP? Ich will aber keine Files transferieren..

Im Dunkel tappend:

Mike

  1. hallo Mike,

    und zwar möchte ich auf Server A eine PHP-Datei aufrufen, die dann eine .txt-Datei auf Server B ausliest und neu schreibt.

    Zu "zwar" gehört in der Syntax zwingend ein "aber" - das hast du vergessen anzugeben. Vermutlich wolltest du aber dieses "aber es klappt nicht" noch schreiben, gelle?

    Dazu muss man sich auf dem anderen Server einloggen: Aber wie?

    Mit PHP, wenn "man" auf diesen anderen Server dieselben Zugriffsrechte (inclusive Benutzername und Paßwort) hat?

    Etwa mit FTP?

    Warum nicht? Sofern du einen FTP-Account auf diesem Server besitzt.

    Ich will aber keine Files transferieren..

    Doch, offensichtlich willst du das.

    Wenn es "ohne" login möglich sein soll, mußt du auf Server B ebenfalls Webspace gemietet haben und dort muß ein PHP-Script laufen, das du geschrieben hast.

    Im Dunkel tappend:

    Jaja, die Tage werden immer noch kürzer. Aber keine Sorge: bald ist Wintersonnenwende, dann werden sie wieder länger.

    Grüße aus Berlin

    Christoph S.

    --
    Visitenkarte
    http://www.christoph-schnauss.de
    ss:| zu:) ls:& fo:) va:) sh:| rl:|
    1. Moin Christoph,

      ich hoffe, Du kennst Dich mit PHP besser aus als mit der deutschen Sprache und zwar weil dann noch Hoffnung besteht, dass ich von Dir n Lösungsvorschlag für mein Problem kriege.

      Um das mal zu spezifizieren, auch @Rouven:

      Auf Server A liegt das Interface für ein Wörterbuch. Auf Server A kann ich aber nix in Dateien schreiben, anders als auf Server B. So möchte ich also das WB auf Server B ablegen. Dahin will ich dann Daten (nicht Dateien) übertragen, und zwar entweder einen ganz neuen Eintrag für das WB oder die Anweisung, einen bestehenden Eintrag zu ändern.

      Ich hab zwar auch alle notwendigen Rechte auf Server B, kann mich also einloggen, weiß aber nicht, wie ich das mache.

      Haste n Tipp?

      Mike

      1. Hi,

        hier gibts ein Beispiel für Upload mit PHP:
        PHP-FAQ: Wie kann ich einen Datei-Upload per FTP durchführen?

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Hi.

          hier gibts ein Beispiel für Upload mit PHP:
          PHP-FAQ: Wie kann ich einen Datei-Upload per FTP durchführen?

          Ja, liegt erstmal nahe, aber:

          "PHP hat eingebaute FTP-Funktionen , mittels derer man Dateien von oder zu einem FTP-Server übertragen kann. Es ist damit aber nicht möglich, Daten von einem Browser zu empfangen! "

          Will ich ja nicht. Weder Dateien übertragen, noch Daten _von einem Browser_ aus übertragen. Sondern eben wie beschrieben..

          1. Hi,

            Will ich ja nicht. Weder Dateien übertragen, noch Daten _von einem Browser_ aus übertragen. Sondern eben wie beschrieben..

            Also was willst du denn jetzt genau machen? Willst du das ganze Wörterbuch auf einmal schreiben (in dem Fall würde PHP als Client an den anderen Server mittels FTP herantreten und die Datei hochladen), oder nur einzelne Zeilen Verändern (in dem Fall müsste auf Server B ein Skript liegen, das diese Intelligenz besitzt).

            MfG
            Rouven

            --
            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
            1. Hi.

              Will ich ja nicht. Weder Dateien übertragen, noch Daten _von einem Browser_ aus übertragen. Sondern eben wie beschrieben..

              Also was willst du denn jetzt genau machen? Willst du das ganze Wörterbuch auf einmal schreiben (in dem Fall würde PHP als Client an den anderen Server mittels FTP herantreten und die Datei hochladen),

              Nein, will ich nicht.

              oder nur einzelne Zeilen Verändern

              Ja, will ich.

              (in dem Fall müsste auf Server B ein Skript liegen, das diese Intelligenz besitzt).

              Kann ich hinlegen.

              Und wie übergebe ich dem die zur Änderung notwendigen Daten per PHP und _nicht_ über den Browser? Ohne Link und ohne Formular, sondern von innerhalb eines PHP-Scriptes auf Server A?

              1. Hallo,

                oder nur einzelne Zeilen Verändern
                Ja, will ich.
                (in dem Fall müsste auf Server B ein Skript liegen, das diese Intelligenz besitzt).
                Kann ich hinlegen.
                Und wie übergebe ich dem die zur Änderung notwendigen Daten per PHP und _nicht_ über den Browser? Ohne Link und ohne Formular, sondern von innerhalb eines PHP-Scriptes auf Server A?

                XML-RPC wäre eine Möglichkeit. Damit kannst du einen Funktionsaufruf in XML

                Grüße
                Jeena Paradies

                --
                Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
                1. Hallo,

                  XML-RPC wäre eine Möglichkeit. Damit kannst du einen Funktionsaufruf in XML

                  *grml* ich war doch noch nicht fertig!

                  Also, damit kannst du einen Funktionsaufruf in XML verpacken und diese Funktion auf einem anderen Server aufrufen. Dabei kannst du auch verschiedene Parameter an diese Funktion übergeben, strings, arrays, bolean was auch immer. Der andere Server empfängt die Daten und führt dort die Funktion aus, er empfängt dabei auch die Daten die du übergeben hast, also deine veränderte Zeile als string oder wie auch immer.

                  Das ganze ist nicht auf Anhieb ganz klar zu verstehen, aber wenn du dich ein bischen damit auseinandersetzt und dir ein schönes Framework suchst erleichtert es die Arbeit ungemein.

                  Grüße
                  Jeena Paradies

                  --
                  Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
                  1. Hallo,

                    Das ganze ist nicht auf Anhieb ganz klar zu verstehen, aber wenn du dich ein bischen damit auseinandersetzt und dir ein schönes Framework suchst erleichtert es die Arbeit ungemein.

                    Wenn ich es mir aber so überlege, dann ist das eigentlich ein ziemlicher overkill, wenn es nur ein kurzer text sein muss und du auf beide Server zugriff hast.

                    Grüße
                    Jeena Paradies

                    --
                    Open- vs. Closed Source Software - Verdienstmöglichkeiten | Jlog | Gourmetica Mentiri
      2. hallo Mike,

        ich hoffe, Du kennst Dich mit PHP besser aus als mit der deutschen Sprache

        Nö. Deutsche Sprache beschäftigt mich seit knapp 54 Jahren, PHP erst seit ungefähr viereinhalb Jahren. Insofern bin ich, was PHP angeht, noch nichtmal ein Vorschulkind.

        und zwar weil dann noch Hoffnung besteht, dass ich von Dir n Lösungsvorschlag für mein Problem kriege.

        Ich habe ihn dir zumindest ansatzweise bereits genannt.

        Auf Server A liegt das Interface für ein Wörterbuch. Auf Server A kann ich aber nix in Dateien schreiben, anders als auf Server B.

        Das ist ein enormes Handicap. Dann solltest du auf Server A ganz einfach nur mit Hilfe von
           header("Location: http://serverB")
        alles auf Server B umleiten und das dort liegende Script entsprechend bauen.

        Ich hab zwar auch alle notwendigen Rechte auf Server B, kann mich also einloggen, weiß aber nicht, wie ich das mache.

        Dein Verständnisproblem besteht meines Erachtens darin, daß du zwei unterschiedliche Server bzw. die dort liegenden Scripts als "unit" betrachtest. Das sind sie aber nicht. PHP ist, wie dir bekannt ist, zuallererst eine _serverseitige_ Technik, das heißt, was es als Schreibvorgänge ausführt, vollzieht sich immer auf exakt demselben Server, auf dem das Script grade liegt. Es ist meines Wissens unmöglich, einem Script auf "Server A" mal eben beiläufig zu sagen: "schreib mal schnell was auf Server B" - und es ist auch nicht sinnvoll. Was es dagegen kann, ist, wie bereits genannt, ein eventueller Dateiupload auf Server B. Das heißt: auf Server A wird das, was dein Benutzer eventuell schreibt, temporär zwischengelagert, ausgelesen, und als Datenstrom an Server B geschickt - und der kann es über FTP oder einen ähnlichen Mechanismus entgegennehmen und die Daten dann als Dateien speichern.
        Prinzipiell ist ein solches Herangehen möglich. Ich halte es jedoch für extrem umständlich und auch für ineffektiv.

        Haste n Tipp?

        Nicht mehr als ich bisher geschrieben habe. Mir fehlt noch die Begründung, warum du so umständlich vorgehst und dir (meiner Ansicht nach) unnötige Kopfschmerzen bereitest. Ich denke, ich habe deine Fragetellung ungefähr kapiert, aber ich meine auch, daß du dich da irgendwie verrannt hast. Warum sollen deine Besucher nicht gleich auf "Server B" herumscharwenzeln, was haben die denn von "Server A", wenn auf dem ein PHP-Script nicht einmal etwas schreiben darf (und wie geht das überhaupt, daß ein ISP PHP zuläßt, aber keine von PHP vorgenommene Datenspeicherung in Form von neu zu generierenden Files)?

        Grüße aus Berlin

        Christoph S.

        --
        Visitenkarte
        http://www.christoph-schnauss.de
        ss:| zu:) ls:& fo:) va:) sh:| rl:|
  2. Hi,

    na ja, meiner Ansicht nach bleibt dir nicht viel anderes außer FTP oder einem höheren Protokoll (wobei ich mich damit gar nicht auskenne). Der andere Server kennt dir gegenüber keine Dateien sondern nur Resourcen, die man unter einer URL ansprechen kann. An das Dateisystem kommst du halt entweder per PHP oder eben in dem du einem dortigen Skript beibringst welche Änderungen es für dich erledigen soll.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. hallo Rouven,

      na ja, meiner Ansicht nach bleibt dir nicht viel anderes außer FTP oder einem höheren Protokoll (wobei ich mich damit gar nicht auskenne)

      Wie sollte sich denn ein "höheres Protokoll" definieren lassen? Welches "Protokoll" bedient PHP deiner Ansicht nach?

      Der andere Server kennt dir gegenüber keine Dateien sondern nur Resourcen, die man unter einer URL ansprechen kann.

      Interessanter Hinweis.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      http://www.christoph-schnauss.de
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hi,

        Wie sollte sich denn ein "höheres Protokoll" definieren lassen? Welches "Protokoll" bedient PHP deiner Ansicht nach?

        Na ja, ich sagte ja, genauer auskennen tue ich mich damit nicht, aber WebDAV hatte ich im Hinterkopf...

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
  3. Moin!

    Dazu muss man sich auf dem anderen Server einloggen: Aber wie? Etwa mit FTP? Ich will aber keine Files transferieren..

    FTP ist ein "File Transfer Protocol" - und Dateien, die ja auch nur aus ihrem Inhalt bestehen, müssen ganz offensichtlich transferiert werden.

    Sofern du allow_url_fopen=on auf Server A hast, nutze doch einfach diese Möglichkeit. fopen() kann nicht nur auf lokale Dateien, sondern auch auf FTP-Dateien zugreifen, und das sogar schreibend, wenn der Login-Account sowieo der FTP-Server die entsprechenden Rechte gewähren. Wobei es gegenüber dem Filesystem-Zugriff gewisse Einschränkungen gibt, beispielsweise kann man mit schreibendem FTP-Zugriff nur neue Dateien erstellen, existierende alte Dateien müssen also zuvor gelöscht und davor komplett eingelesen werden, wenn der bestehende Inhalt gerettet werden soll.

    Alle weitergehenden Vorschläge, insbesondere die Idee, mit den ftp_*-Funktionen zu arbeiten, halte ich nicht unbedingt für zielführend. Insbesondere, weil es in dieser Kategorie keine Funktion gibt, die eine auf dem entfernten FTP-Server befindliche Datei NICHT auf dem lokalen Server als Datei speichert - und genau das funktioniert bei dir ja angeblich nicht.

    - Sven Rautenberg

    --
    My sssignature, my preciousssss!
    1. Hi Sven,

      Dazu muss man sich auf dem anderen Server einloggen: Aber wie? Etwa mit FTP? Ich will aber keine Files transferieren..

      FTP ist ein "File Transfer Protocol" - und Dateien, die ja auch nur aus ihrem Inhalt bestehen, müssen ganz offensichtlich transferiert werden.

      Sofern du allow_url_fopen=on auf Server A hast, nutze doch einfach diese Möglichkeit. fopen() kann nicht nur auf lokale Dateien, sondern auch auf FTP-Dateien zugreifen, und das sogar schreibend, wenn der Login-Account sowieo der FTP-Server die entsprechenden Rechte gewähren. Wobei es gegenüber dem Filesystem-Zugriff gewisse Einschränkungen gibt, beispielsweise kann man mit schreibendem FTP-Zugriff nur neue Dateien erstellen, existierende alte Dateien müssen also zuvor gelöscht und davor komplett eingelesen werden, wenn der bestehende Inhalt gerettet werden soll.

      Alle weitergehenden Vorschläge, insbesondere die Idee, mit den ftp_*-Funktionen zu arbeiten, halte ich nicht unbedingt für zielführend. Insbesondere, weil es in dieser Kategorie keine Funktion gibt, die eine auf dem entfernten FTP-Server befindliche Datei NICHT auf dem lokalen Server als Datei speichert - und genau das funktioniert bei dir ja angeblich nicht.

      Ok, alles klar. Ob allow_url_fopen gleich on ist, muss ich erst checken, aber mal davon ausgehend, dass es das ist, meine letzte Frage:

      Wie mach ich das mit fopen() und fwrite()? Wie logge ich mich da auf dem Server, auf den geschrieben wird, ein?

      Schönen Gruß,

      Mike

      1. Hi,

        Wie mach ich das mit fopen() und fwrite()? Wie logge ich mich da auf dem Server, auf den geschrieben wird, ein?

        hast du dir mal die Dokumentation  zu fopen angesehen? Dort ist ein Beispiel, wie eine Datei auf einem entfernten FTP-Server aufgemacht wird.

        Ansonsten könntest du dich halt aufführen wie ein Browser und ein Skript mit GET-Parametern füttern:
        fsockopen

        MfG
        Rouven

        --
        -------------------
        ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
        1. Moin!

          Ansonsten könntest du dich halt aufführen wie ein Browser und ein Skript mit GET-Parametern füttern:
          fsockopen

          Wir reden von FTP! Dieses Protokoll ist ganz anders gestrickt, als HTTP. Normales FTP eröffnet vom Client zum Server einen Steuerbefehlskanal (über TCP an Port 21), und der Server öffnet für abgerufene Dateien hin zum Client einen weiteren Kanal (von Port 20). Der Client wird also selbst zum Server - was mit NAT-Routern und entsprechenden Firewalls nicht funktioniert, weshalb man "passives FTP" erfunden hat, bei dem der Client auch die zweite TCP-Verbindung selbst herstellt, nachdem er den Server darüber informiert hat.

          - Sven Rautenberg

          --
          My sssignature, my preciousssss!
          1. Hi,

            Wir reden von FTP! Dieses Protokoll ist ganz anders gestrickt, als HTTP. Normales FTP eröffnet vom Client zum Server einen Steuerbefehlskanal (über TCP an Port 21), und der Server öffnet für abgerufene Dateien hin zum Client einen weiteren Kanal (von Port 20).

            Ähm, na ja, das was als Alternative zu FTP gedacht, eben für den Fall, dass KEINE ganze Datei übertragen werden soll, sondern ein serverseitige Logik (PHP) auch auf Server B vorliegt, die zwar die User mit seinem Browser nicht zu Gesicht bekommen soll, die aber was von der Aktion mitbekommen und daraufhin einen Eintrag vornehmen soll. Da suchte ich nach einer Möglichkeit das selbe zu machen wie ein Browser wenn er eine URL mit Parametern anfordert, aber eben ohne diese Aktion vom eigentlichen User-Agent ausführen zu lassen.

            MfG
            Rouven

            --
            -------------------
            ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    2. Hallo Sven,

      Sofern du allow_url_fopen=on auf Server A hast, nutze doch einfach diese Möglichkeit. fopen() kann nicht nur auf lokale Dateien, sondern auch auf FTP-Dateien zugreifen, und das sogar schreibend, wenn der Login-Account sowieo der FTP-Server die entsprechenden Rechte gewähren.

      Das nützt ihm aber erst etwas ab PHP5, da über den FTP-Wrapper bis PHP4 kein unlink() unterstützt wurde, sondern nur CREATE.

      http://de.php.net/manual/en/wrappers.ftp.php

      Die einzige Möglichkeit, die ich hier sehe, wenn ein mounten des entfernten Filesystems nicht in Frage kommt, ist der Weg über ein fsockopen() und ein eigens auf dem Zielserver (R/W) installiertes Script.

      LG
      Chris

  4. Hallo Mike,

    in welchem Verhältnis stehst Du denn zu den Servern?

    MMn ist das kein PHP-Problem, sondern eines des Filesystems. Es würde sich nömlich anbieten, die entfernten Verzeichnisse einfach ins lokale Filesystem zu mounten. Das sollte der technisch dafür passende Weg sein.

    PHP kann dann einfach auf das "lokale Filesystem" zugreifen.

    Dafür benötigt man zweifellos die passenden Rechte. Du hast uns aber leider sehr wenig Rahmenbedingungen mitgeteilt, um das beurteilen zu können.

    LG
    Chris

  5. Ich danke ergebenst für die Versuche zu helfen, hab mich auch bezüglich der genannten Stichworte informiert und gehe davon aus, dass es zwar prinzipiell machbar ist, aber eben nicht auf meinem Server A.

    Muss ich mit leben - kann ich auch.

    Mike

    1. Hallo Mike,

      wieso so schnell die Flint ins Korn schmeißen?

      Wenn der Server, der zum Schreiben ausgeguckt wurde, einen Dienst anbietet, der Dir das Schreiben gestattet (z.B. HTTP), dann geht es doch. Du musst Dir dann "nur" ein eigenes Interface erstellen.

      Sicherheitshalber sollte das mit serialisierten TANs operieren.

      LG
      Chris

      1. Moin Chris,

        wieso so schnell die Flint ins Korn schmeißen?

        was heißt schnell, ich bin insgesamt kein PHP-Experte, von FTP und überhaupt Server-Login & Co. hab ich null Ahnung. Meine Recherche im WWW hat nix ergeben, die Antworten hier sind m.E. mehr als vage (= man weiß nicht ob, schon gar nicht wenn ja wie das geht). Auf Sever A ist auch "enable-url-fopen-wrapper=no" eingestellt, das war ja der einzige Strohhalm zum Ergreifen, von daher... Ist auch nicht sooooo immens wichtig, hätt's ne klare Antwort gegeben, wär's ok gewesen, mich da jetzt wer weiß wie tief in die Materie zu arbeiten wäre schlicht dem Nutzen nicht angemessen, das ist eh "nur" ne Hobby-Site.

        Wenn der Server, der zum Schreiben ausgeguckt wurde, einen Dienst anbietet, der Dir das Schreiben gestattet (z.B. HTTP), dann geht es doch. Du musst Dir dann "nur" ein eigenes Interface erstellen.

        Nochmal: Ich will nicht über den Browser Server B ansprechen, der Besucher von Server A soll von Server B nix mitkriegen. Das soll unter der sichtbaren Oberfläche nur per PHP laufen. Sonst könnte ich natürlich am allereinfachsten das Wörterbuch komplett auf Server B legen, ist ja kein Ding, eben hin und her zu linken. Oder ich könnte ein Formular erzeugen, das eine Datei auf Server B anspricht oder einen Link mit ?variable=Inhalt rüber schicken. Aber das will ich nicht.

        Deswegen: Ich brauche einen ganz konkreten Lösungsvorschlag, bspw. in der Form "nimm die Funktion sowieso, trag da und da die Login-Daten ein und dann..."

        Wie gesagt: Danke für den Versuch es zu versuchen.

        1. hallo Mike,

          Nochmal: Ich will nicht über den Browser Server B ansprechen, der Besucher von Server A soll von Server B nix mitkriegen. Das soll unter der sichtbaren Oberfläche nur per PHP laufen.

          Naja, an den verschiedenen Antworten kannst du ja eine "Grundrichtung" ablesen: was du da gerne möchtest, ist zwar prinzipiell möglich, aber nicht sehr sinnvoll und auch etwas umständlich. Wenn du dich selbst zur Zeit als "kein PHP-Experte, von FTP und überhaupt Server-Login & Co. hab ich null Ahnung" siehst, solltest du das Thema vorerst auf die lange Bank schieben. Vielleicht bist du in einem halben Jahr so weit, daß du gar nicht mehr verstehst, wieso dir die Lösung der Aufgabe heute noch so schwer fällt.

          Sonst könnte ich natürlich am allereinfachsten das Wörterbuch komplett auf Server B legen, ist ja kein Ding, eben hin und her zu linken. [...] Aber das will ich nicht.

          Es ist aber die beste "Zwischenlösung", die du im Moment fertigstellen könntest.

          Deswegen: Ich brauche einen ganz konkreten Lösungsvorschlag, bspw. in der Form "nimm die Funktion sowieso, trag da und da die Login-Daten ein und dann..."

          Nö. _So_ einfach ist es ja nicht, das hast du gelesen. Außerdem: wenn man dir jetzt auf dem Silbertablett eine "fertige Lösung" anbieten würde, würdest du sie vielleicht nicht wirklich verstehen. Deshalb wiederhole ich meinen Rat: verschiebe die Lösung dieser Aufgabenstellung einfach ins nächste Semester. Bau dir zwischendurch noch ein paar andere PHP-Konstruktionen, beschäftige dich mit den Protokollen und ein bißchen Netzwerktheorie. Dann kommst du in einiger Zeit vielleicht selbst auf das, was bei deinen Bedingungen praktikabel ist.

          Grüße aus Berlin

          Christoph S.

          --
          Visitenkarte
          http://www.christoph-schnauss.de
          ss:| zu:) ls:& fo:) va:) sh:| rl:|
          1. Hallo Christoph Schnauß!

            Nochmal: Ich will nicht über den Browser Server B ansprechen, der Besucher von Server A soll von Server B nix mitkriegen. Das soll unter der sichtbaren Oberfläche nur per PHP laufen.

            Naja, an den verschiedenen Antworten kannst du ja eine "Grundrichtung" ablesen: was du da gerne möchtest, ist zwar prinzipiell möglich, aber nicht sehr sinnvoll und auch etwas umständlich. Wenn du dich selbst zur Zeit als "kein PHP-Experte, von FTP und überhaupt Server-Login & Co. hab ich null Ahnung" siehst, solltest du das Thema vorerst auf die lange Bank schieben. Vielleicht bist du in einem halben Jahr so weit, daß du gar nicht mehr verstehst, wieso dir die Lösung der Aufgabe heute noch so schwer fällt.

            lol, im Grund hab ich ja nichtmal was gegen so ne fettige Arroganz, wenn sie denn wenigstens berechtigt wäre. Es weiß doch aber niemand hier im Thread und am allerwenigsten Du, ob das überhaupt geht. Und das, lieber Christoph, ist auch im Mindesten keine Schande, da ja meine Anfrage mehr als ungewöhnlich ist. Peinlich ist eher noch, n unbeholfenen Humbug von "zwar" und "aber" zu labern. ;-P

            Deswegen: Hier so auf dicke Hose rumzuposen, um die verloren geglaubte PHPler-Ehre wiederherzustellen, ist quasi n Team Rocket'scher Schuss in den Ofen.

            Sonst könnte ich natürlich am allereinfachsten das Wörterbuch komplett auf Server B legen, ist ja kein Ding, eben hin und her zu linken. [...] Aber das will ich nicht.

            Es ist aber die beste "Zwischenlösung", die du im Moment fertigstellen könntest.

            Lieber Held der dt. Sprache: Völlig falsch formuliert. Es _wäre_ die beste Lösung, die ich fertigstellen könnte, wenn ich nicht ihr übergeordnete Gründe dagegen hätte. Und ob diese Dir unbekannten Gründe sinnvoll oder -los ist, mit Verlaub, kann doch nur ich selbst beurteilen.

            Deswegen: Ich brauche einen ganz konkreten Lösungsvorschlag, bspw. in der Form "nimm die Funktion sowieso, trag da und da die Login-Daten ein und dann..."

            Nö. _So_ einfach ist es ja nicht, das hast du gelesen.

            Wie geht es denn? lol

            Außerdem: wenn man dir jetzt auf dem Silbertablett eine "fertige Lösung" anbieten würde, würdest du sie vielleicht nicht wirklich verstehen. Deshalb wiederhole ich meinen Rat: verschiebe die Lösung dieser Aufgabenstellung einfach ins nächste Semester. Bau dir zwischendurch noch ein paar andere PHP-Konstruktionen, beschäftige dich mit den Protokollen und ein bißchen Netzwerktheorie. Dann kommst du in einiger Zeit vielleicht selbst auf das, was bei deinen Bedingungen praktikabel ist.

            Ach Christoph, was soll denn so ein völlig unauthentisches Sensei-Getue. Das soll doch heißen, Du eröffnest mir Deine prall gefüllte Schatulle der innersten PHP-Geheimnisse nur darum nicht, weil ich noch nicht reif für diese Lehren bin. Wenn Du so eine vollkommen abwegige Haltung nicht bloß aufsetzen würdest, dürftest Du hier überhaupt keine Fragen beantworten, wenigstens nicht, ohne den Fragesteller vorher der Mannbarkeitsprüfung zu unterziehen.

            Kann angesichts Deines verletzten Ehrgefühls nur die Augen verdrehen:

            Mike

            1. Hallo Mike,

              ich sag dir zu der ganzen Sache nur eines: Ich hab längere Zeit kein PHP mehr programmiert, die beiden Lösungsansätze wie man es versuchen könnte habe ich dir genannt.
              Warum ich dir nicht weiterhelfe? Das ist keine Sache von 2 Zeilen, zwar braucht man keine 1000, aber trotzdem müsste ich mich jetzt ne halbe Stunde bis Stunde hinsetzen und dann noch Fehlerbereinigen, und den Ehrgeiz habe ich nicht, weil ich das Problem nicht habe und mich die Herausforderung nicht genug reizt.
              Warum sind denn Programmiertätigkeiten so teuer? Weil man das verstehen muss was man da tut und Erfahrung einen besser macht. Man muss sich die Lösungen da schon selbst erarbeiten, dann hat man beim nächsten mal auch eine ganz andere Betrachtungsweise und weiß warum bestimmte Sachen besser sind als andere.

              MfG
              Rouven

              --
              -------------------
              ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
              1. Moin Rouven,

                es hat den Anschein, dass Du meinen Beitrag nicht wirklich nachvollzogen hast, sondern Dich allein an meiner Aussage, dass hier niemand wusste, wie mein Problem zu lösen sei, festgesaugt hast. Das ist einerseits unbestreitbare Tatsache und andererseits, wie ich bereits betonte, keine Tragödie.

                Mein Beitrag richtete sich allein an Sensei Christoph Schnauß, der, nachdem ich von meiner Seite aus längst gesagt hatte, dass ich nicht genug verstehe und das Thema somit abhake, noch meinte, einen Roman darüber verfassen zu müssen, wie er ja könnte, wenn er wollte, wenn er sähe, dass ich auch seine Lehren zu empfangen bereit wäre.

                Hier geht es - "Menschelei" - um die verletzte Eitelkeit dieses Einzelnen, der (und das ist ein Paradoxon) sich selbst nach außen hin den Anschein geben muss, dass seine Unkenntnis eigentlich in des Fragenden (meiner) Unkenntnis begründet ist. Nämlich: Er könnte ja antworten, wenn ich das nur verstehen würde.

                Das ist eben ein divenhafter Blödsinn, den ich grad mal nicht unkommentiert hinnehmen wollte, insbesondere nach der ähnlich "gehaltvollen" ersten Antwort derselben Diva. Mein Problem ist exotisch und keiner weiß, ob und wie es zu lösen ist. Und _das_ ist doch völlig ok.

                In diesem Sinne,

                Mike

                1. Hallo Mike,

                  Dein Problem ist gar nicht mal so scher zu lösen - nur ist es wie so oft in diesem Forum auch ein Problem der Kommunikation auf Basis verschiedener Wissensstände (vgl.: http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-antwortende)

                  Wie bereits angemerkt wurde, hängt die Möglichkeit eines jeden Lösungsansatzes von der Konfiguration PHPs ab. Dies sollte als erstes von Dir geprüft werden. Unter der Annahme, von Server A sollen Daten zu Server B verstandt werden, bitte ich Dich folgendes Testscript auf Server A zu hinterlegen und mit Deinem Browser aufzurufen:

                    
                  <?php echo "Der Lösungsansatz ist".(ini_get('allow_url_fopen') ? " " : " nicht ")."möglich\n"; ?>  
                  
                  

                  Unter der Voraussetzung, daß der Lösunsgsansatz möglich ist, kannst Du vom Script auf Server A, welches Eingaben/Daten zu Server B zu senden hat mittels eines HTTP-Requests die entsprechenden Daten versenden:

                    
                  <?php  
                  # Scriptausschnitt "Server A"  
                    
                  $daten="das sind die Daten für das WB auf Server B";  
                  $daten=rawurlencode($daten);  
                    
                  $dat=fopen('http://www.Server.B/empaenger.php?'.$daten,'r');  
                  echo fread($dat,1024);  
                  fclose($dat);  
                  ?>  
                    
                  <?php  
                  # Scriptausschnitt "Server B" empfaenger.php  
                    
                  if($_SERVER['REMOTE_ADDR']==gethostbyname('www.Server.A') &&  
                     $_SERVER['QUERY_STRING']!=''){  
                     # zur "Sicherheit", daß kein anderer Daten einspeisen kann  
                     # (schließt spoofing nicht aus)  
                    
                     $dat=fopen('WB.txt','a');  
                     fwrite($dat,$_SERVER['QUERY_STRING']."\n");  
                     fclose($dat);  
                  }  
                  ?>  
                  
                  

                  Übrigens: Diven gegenüber sucht man keinen Streit! Man straft sie mit Mißachtung ;)

                  Gruß aus Berlin!
                  eddi

                  1. Hallo Eddi,

                    Wie bereits angemerkt wurde, hängt die Möglichkeit eines jeden Lösungsansatzes von der Konfiguration PHPs ab. Dies sollte als erstes von Dir geprüft werden. Unter der Annahme, von Server A sollen Daten zu Server B verstandt werden, bitte ich Dich folgendes Testscript auf Server A zu hinterlegen und mit Deinem Browser aufzurufen:

                    <?php echo "Der Lösungsansatz ist".(ini_get('allow_url_fopen') ? " " : " nicht ")."möglich\n"; ?>

                      
                      
                    Wenn Das nicht geht, besteht immer noch die Möglickeit, einen ganz normalen "Post to Host" aufzubauen und die Ressource so zu benutzen. Wenn auf dem Server, der auch für das Schreiben benutzt werden soll, ein entsprechendes Script liegt, kann man dort auch Datenverwaltung über HTTP betreiben. Das hatte ich schon vorgeschlagen. Um die Sache abzusichern hatte ich ein synchronisierbares serielles TAN-Verfahren vorgeschlagen. Ob das sinnvoll ist, hängt natürlich von der Anzahl der vorgesehenen Schreibversuche ab.  
                      
                    Soweit ich mich erinnere, wird  
                    <http://de.php.net/manual/en/function.fsockopen.php>  
                    nicht durch die Einstellung allow\_url\_fopen beeinflusst, oder irre ich mich da?  
                      
                      
                    LG  
                    Chris  
                      
                      
                    
                    
                    1. Moin!

                      Unter der Annahme, von Server A sollen Daten zu Server B verstandt werden, bitte ich Dich folgendes Testscript auf Server A zu hinterlegen und mit Deinem Browser aufzurufen:

                      Das Thema ist doch schon sowas von lange durchgekaut.

                      Den Vorschlag mit fopen() auf eine FTP-URL hatte ich bereits gemacht, und deren Unmöglichkeit wurde hier bestätigt.

                      Wenn Das nicht geht, besteht immer noch die Möglickeit, einen ganz normalen "Post to Host" aufzubauen und die Ressource so zu benutzen. Wenn auf dem Server, der auch für das Schreiben benutzt werden soll, ein entsprechendes Script liegt, kann man dort auch Datenverwaltung über HTTP betreiben. Das hatte ich schon vorgeschlagen. Um die Sache abzusichern hatte ich ein synchronisierbares serielles TAN-Verfahren vorgeschlagen. Ob das sinnvoll ist, hängt natürlich von der Anzahl der vorgesehenen Schreibversuche ab.

                      Ja, man kann ganz toll unheimlich viel Aufwand treiben, nur um eine simple, blöde Textdatei abzuspeichern. "Serialisiertes TAN-Verfahren" - spielt hier jemand Bullshit-Bingo? Warum nicht den Klassiker "Username + Passwort"?

                      Soweit ich mich erinnere, wird http://de.php.net/manual/en/function.fsockopen.php nicht durch die Einstellung allow_url_fopen beeinflusst, oder irre ich mich da?

                      Nein, wird es nicht. Die Verfügbarkeit dieser Funktion und die Durchlässigkeit des Zugriffs vom Server A auf Port 80 (oder andere dafür wichtige) des Servers B  wurde aber noch nicht geprüft, weil es definitiv extrem viel Sonderaufwand ist.

                      Kann man nicht einfach einsehen, dass:
                      1. Die einfache Form mit fopen() nicht möglich ist und
                      2. kompliziertere Formen nicht gewünscht sind, weil das Ergebnis den Aufwand nicht rechtfertigt?

                      - Sven Rautenberg

                      --
                      My sssignature, my preciousssss!
                      1. Hallo Sven,

                        Das Thema ist doch schon sowas von lange durchgekaut

                        "Serialisiertes TAN-Verfahren" - spielt hier jemand Bullshit-Bingo?
                        Kann man nicht einfach einsehen, dass:

                        Bekommst Du gerade den Weihnachtskoller?
                        Ist das Forum nicht mehr zum Diskutieren technischer Möglichkeiten da?

                        LG
                        Chris

                        1. Hallo Sven,

                          Ich schließe mich Chris dort an:

                          HALLO?

                          Das Thema ist doch schon sowas von lange durchgekaut

                          ...nur ist es wie so oft in diesem Forum auch ein Problem der Kommunikation auf Basis verschiedener Wissensstände (vgl.: http://forum.de.selfhtml.org/hilfe/charta.htm#tipps-fuer-antwortende)

                          vgl. https://forum.selfhtml.org/?t=120063&m=770897 gegenüber https://forum.selfhtml.org/?t=120063&m=771164

                          E-Mail-Adresse ist oben angegeben, wenn ich hier nicht erwünscht bin. Andernfalls wünsche ich Dir frohe Weihnachten!

                          Gruß aus Berlin!
                          eddi

                          --
                          Ja - ich gebe manchmal Lösungen auf dem silbernen Tablett und
                          Nein - sie werden dennoch nicht den Schlag vor den Kopf mit dem goldenen abwehren ;)
                  2. Hi XaraX,

                    kurz gesagt: Es funktioniert!! :-D

                    Ich musste Dein Script zwar noch etwas abwandeln, aber jetzt geht es, über HTTP, nicht FTP (wie ich ja schon vermutet hatte). Der übertragene String darf zwar nur knapp 5400 Zeichen umfassen, aber das reicht und ggf. kann ich so eine Übertragung ja auch splitten.

                    Zur Ehrenrettung von Sven: Einen Fehler hatte ich auch gemacht, nämlich ist - wie ich allerdings auch copypastete - nicht "allow_url_fopen" = no, sondern eben "enable-url-fopen-wrapper=no'.

                    Besten Dank mein Lieber und meine besten Wünsche,

                    Mike