Ankündigung

Einklappen
Keine Ankündigung bisher.

Texte für andere Webseiten bereitstellen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Texte für andere Webseiten bereitstellen

    Hallo Leute,

    ich und ein Kumpel haben eine Idee aber wissen nicht genau ob sich das mit PHP so umsetzen lässt und was man dafür evtl. noch benötigt. Aber erstmal zu unserer Idee bzw. was wir machen wollen.

    Wir möchten bestimmte Texte zur Verfügung stellen die unsere Kunden dann auf Ihrer Webseite einbinden können mit einem kleinen Shortcode oder ähnliches. Am liebsten sollte es aber wirklich einfach irgendwie ein PHP 2-Zeiler oder ähnliches sein weil wir nicht explizit für ein bestimmtes CMS ein Plugin schreiben wollen da viele Kunden unterschiedliche Management-Systeme benutzen.

    Meine Idee wäre das ganze über eine Art Lizenzschlüssel zu regeln. Z.B. das der Kunde so etwas wie (fiktiver Code)
    Code:
    <?PHP printf("%s", my.firma(key).toString; ?>
    auf eine beliebige Seite schreibt auf der er seinen Text anzeigen lassen möchte. Auf unserer Seite soll es dann so ablaufen das wir zu jedem Key einen spezifischen Text bereit stellen und dieser wenn auf der Webseite des Kunden die entsprechende Seite angeklickt wird, der Text von uns halt geladen wird. Wichtig hierbei ist jedoch das dieser Lizenzschlüssel geheim bleiben soll also im besten Falle nur ich und der Kunde diesen weiß, weil damit sonst natürlich auch andere Leute die Texte auf Ihrer Webseite benutzen könnten.

    Ist sowas in irgendeiner Form realisierbar? Wenn nicht mit PHP, wisst ihr vielleicht wie das sonst machbar wäre?

    Danke schon mal für eure Hilfe!

  • #2
    In welcher Form wird das in ein CMS eingebunden, wenn nicht über ein Plugin? Einem REST-Request? Einem Iframe?

    Kommentar


    • #3
      Das ist ja einer meiner Fragen inwiefern man sowas umsetzen kann und mit welchen Mitteln.
      Es setzen bestimmt nicht immer alle Kunden ein CMS ein und selbst wenn dann sehr wahrscheinlich viele Unterschiedliche. Wir möchten am liebsten gewährleisten das es für jeden, egal ob CMS oder selbst geschriebene Webseite in HTML und PHP, einfach ist dieses "Tool" dann einzubinden. Was da die sinnvollste Möglichkeit ist und was man dafür braucht weiß ich leider nicht, deswegen Frage ich hier ja nach Hilfe

      Kommentar


      • #4
        egal ob CMS oder selbst geschriebene Webseite in HTML und PHP
        iFrame. Oder du holst die Daten über einen Ajax-Request und gibts (verarbeitest) die mittels JS aus. Du hast aber bei beiden halt dann das "Problem" das die Reuqest-URL und alle Parameter zum Aufruf im HTML/JS für jeden sichtbar sind.

        Wenn der Kunde PHP am Server hat, hängt das davon ab, was "sein PHP" kann. Wenn gewisse Funktionen nicht freigeschalten sind, dann geht das nicht richtig. allow_url_fopen oder wie das genau heißt und Konsorten. http://php.net/manual/de/filesystem.configuration.php
        The string "()()" is not palindrom but the String "())(" is.

        Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
        PHP.de Wissenssammlung | Kein Support per PN

        Kommentar


        • #5
          Also z.B. wie hier gezeigt?
          Wäre das denn eine hinreichend sichere Methode? Nicht das es um sensible Daten geht aber wir müssen ja wenigstens garantieren das es sicher ist und niemand den "Key" auslesen kann.

          Kommentar


          • #6
            Zitat von Chuky3000x Beitrag anzeigen
            Also z.B. wie hier gezeigt?
            Nein, den dort gezeigten Aufruf (Request) kann jeder im Browser eintippen und Bekommt die Daten dann auch im Browser gezeigt.

            PHP-Code:
            xmlhttp.open("GET""demo_file.php"true); 
            Ich behaupte mal ohne die Technik des Kunden zu kennen bzw. aus allen Systemen heraus das das nicht machbar ist. Man braucht da einfach gewisse Voraussetzungen, die ein "den Dienst aufrufender Kunde" können/haben muss.
            The string "()()" is not palindrom but the String "())(" is.

            Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
            PHP.de Wissenssammlung | Kein Support per PN

            Kommentar


            • #7
              Aber könnte man die Vorraussetzungen nicht als Anforderungen nehmen um das Plugin/Tool wie auch immer benutzen zu können?

              Kommentar


              • #8
                Ich habe das ganze nur überflogen, aber was spricht dagegen, es über eine Art API-Call zu realisieren?
                Wenn ihr die Texte über einen Textschlüssel identifizierbar in einer Datenbank ablegt und der Kunde dann etwas in der Art betreibt:
                PHP-Code:
                $sTextApiUrl 'https://txtapi.example.com/<api-key-hash>/<text-id>'
                $sMyText file_get_contents$sTextApiUrl ); 
                PHP-Code:
                <div><?php echo $sMyText?></div>
                Nur mal als Beispiel mit file_get_contents(), sofern allow_url_fopen zur Verfügung steht, sonst alternativ mit cURL.
                Competence-Center -> Enjoy the Informatrix
                PHProcks!Einsteiger freundliche TutorialsPreComposed Packages

                Kommentar


                • #9
                  Zitat von Chuky3000x Beitrag anzeigen
                  Aber könnte man die Vorraussetzungen nicht als Anforderungen nehmen um das Plugin/Tool wie auch immer benutzen zu können?
                  Könnte? Müsste man.

                  Wie zB Arne oben schreibt (sowas in der Art wollte ich auch gerade schreiben). Wenn du "mindestens" PHP mit dem allow_furl_open beim Kunden zur Verfügung hast, dann hast du im Grunde einen API-Call an deinen Server machen der dann nach Check der Request-Parameter den Text zurückgibt.

                  Dh PHP mit dem allow_furl_open als (Mindest)Voraussetzung oder fuktionierendes cURL.
                  The string "()()" is not palindrom but the String "())(" is.

                  Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                  PHP.de Wissenssammlung | Kein Support per PN

                  Kommentar


                  • #10
                    Danke schon mal an euch beide! Ich werde das mal ausprobieren.
                    Die Anfrage mit file_get_contents ist aber "verschleiert" oder?

                    Kommentar


                    • #11
                      Die passiert serverseitig, dh in PHP. Somit bekommt der User der auf der Seite deines Kunden gerade im Browser surft das nicht mit, weil nicht der Clientbrowser den Request macht, sondern direkt der PHP-Server deines Kunden (Website-Inhaber). Ich hoffe das war jetzt verständlich
                      The string "()()" is not palindrom but the String "())(" is.

                      Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                      PHP.de Wissenssammlung | Kein Support per PN

                      Kommentar


                      • #12
                        Ist dann cURL nicht die bessere Wahl? Soweit ich das jetzt verstanden habe kommt es bei file_get_contents darauf an das allow_furl_open erlaubt ist und bei cURL ist das egal.

                        Kommentar


                        • #13
                          Ja, aber cURL muss halt auch vorhanden/erlaubt sein. Aber ja, man kann mit cURL genauso serverseitig einen Request absetzen um content zu holen.

                          Befrage dazu auchmal die Suchmaischine deiner Wahl... zB https://stackoverflow.com/questions/...e-get-contents
                          The string "()()" is not palindrom but the String "())(" is.

                          Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                          PHP.de Wissenssammlung | Kein Support per PN

                          Kommentar


                          • #14
                            Okay danke!
                            Ich habe mal einen kleinen Versuch gewagt. Fällt euch irgendwas auf was ich besser oder anders machen könnte/sollte?

                            Clientside:
                            PHP-Code:
                            $url "http://127.0.0.1/api.php";

                            if(
                            ini_get('allow_url_fopen')) {

                            $data http_build_query(array(
                            'api_key' => 'c6a2e144e9a3ba2d9f70b4200b6e4f449497f01c',
                            'test' => 'Test mit file_get_contents<br>'
                            )
                            );

                            $options = array(
                            'http' => array(
                            'method'  => 'POST',
                            'content' => $data
                            )
                            );

                            $context stream_context_create($options);
                            $result file_get_contents($urlfalse$context);

                            echo 
                            $result;

                            } else if(
                            extension_loaded('curl')) {
                            $data = array(
                            'api_key' => 'c6a2e144e9a3ba2d9f70b4200b6e4f449497f01c',
                            'test' => 'Test mit curl<br>'
                            );

                            $options = array(
                            CURLOPT_URL => $url,
                            CURLOPT_POST => 1,
                            CURLOPT_RETURNTRANSFER => 1,
                            CURLOPT_POSTFIELDS => $data
                            );

                            //Get cURL resource
                            $curl curl_init();

                            // Assigns our options
                            curl_setopt_array($curl$options);

                            // Send the request & save response to $resp
                            $resp curl_exec($curl);

                            // Close request to clear up some resources
                            curl_close($curl);

                            echo 
                            $resp;

                            } else {

                            echo 
                            "Fehler! Es steht keine Funktion für eine Abfrage zur Verfügung.<br>";


                            Serverside:
                            PHP-Code:
                            if($_POST['api_key'] == 'c6a2e144e9a3ba2d9f70b4200b6e4f449497f01c') {

                            echo 
                            "Richtiger Key!<br>";

                            }

                            echo 
                            $_POST['test']; 
                            Klar, auf der Server-Seite ist noch keine Logik oder ähnliches. Ich wollte es nun so machen das ich eine Datenbank anlege, wo jeder Kunde mit seinem zufällig generierten Key drin steht und der Server dann in der Datenbank nachschaut ob es einen Eintrag mit dem Key vom Request gibt und dann darauf hin den für den Kunden spezifischen Text ausspuckt.

                            Kommentar


                            • #15
                              PHP-Code:
                              'method'  => 'POST'
                              Zur Abfrage würde ich GET nehmen, das ist dazu da Daten abzufragen.


                              PHP-Code:
                              $data http_build_query(array(
                              'api_key' => 'c6a2e144e9a3ba2d9f70b4200b6e4f449497f01c',
                              'test' => 'Test mit file_get_contents<br>'

                              Und die Anfrage läuft ja eigentlich nur mit Key und Textname, oder? Identifizierst du den Kunden über den Key? Würde ich eher noch eine KundenID dazunehmen, die eindeutig ist und bleibt. Der Dienst (die API) liefert dann wenn der Key zu den Kunden passt den Inhalt zu dem Textname aus.


                              PHP-Code:
                              echo "Fehler! Es steht keine Funktion für eine Abfrage zur Verfügung.<br>"
                              Du kannst auch einen 404 not found oder 403 vorbidden zurückgeben wenn sowas passiert. Das geht glaube ich auch mit file_get_contents() wenn du den context Parameter nutzt.

                              The string "()()" is not palindrom but the String "())(" is.

                              Debugging: Finde DEINE Fehler selbst! | Gegen Probleme beim E-Mail-Versand | Sicheres Passwort-Hashing | Includes niemals ohne __DIR__
                              PHP.de Wissenssammlung | Kein Support per PN

                              Kommentar

                              Lädt...
                              X