Ergebnis 1 bis 2 von 2

Thema: Externes Skript für Webcams abrufen

  1. #1
    Community-Moderator & Contao-Urgestein Avatar von derRenner
    Registriert seit
    23.10.2012.
    Ort
    hoRn|waldviertel
    Beiträge
    2.862
    Contao-Projekt unterstützen

    Support Contao

    Standard Externes Skript für Webcams abrufen

    Hallo,

    ich habe 5 Webseiten, die jeweils die gleiche Webcam eingebunden haben. Aktuell werden, wenn es Änderungen/Anpassungen im Skript gibt, immer auf allen 5 Webseiten die Änderungen einzeln durchgeführt.

    Nun wäre das Ziel dass:
    - es eine "Basiswebseite" gibt, in der das Webcam-Skript eingebunden ist.
    - in den anderen 4 Webseite das Skript der "Basiswebseite" abgegriffen und dargestellt wird.

    Kann ich das "einfach" umsetzen?
    Ich hätte das mal so probiert:

    "Basiswebseite":
    /public/cam/.htaccess
    /public/cam/webcam.php


    htacess:
    PHP-Code:
    # Enable CORS
    Header set Access-Control-Allow-Origin "https://webseite1.tld"
    Header set Access-Control-Allow-Origin "https://webseite2.tld"
    Header set Access-Control-Allow-Origin "https://webseite3.tld"
    Header set Access-Control-Allow-Methods "GET, POST, OPTIONS"
    Header set Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept"

    # Allow OPTIONS requests (pre-flight requests)
    RewriteEngine On
    RewriteCond 
    %{REQUEST_METHODOPTIONS
    RewriteRule 
    ^(.*)$ $[R=200,L]

    # Restrict access to specific domains
    RewriteEngine On
    RewriteCond 
    %{HTTP_REFERER} !^$
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?webseite1\.tld/ [NC]
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?webseite2\.tld/ [NC]
    RewriteCond %{HTTP_REFERER} !^https://(www\.)?webseite3\.tld/ [NC]
    RewriteRule \.(php|html)$ - [F
    webcam.php
    PHP-Code:
    <?php
    // Set CORS headers to allow access from specific domains
    header("Access-Control-Allow-Origin: https://webseite1.tld");
    header("Access-Control-Allow-Origin: https://webseite2.tld");
    header("Access-Control-Allow-Origin: https://webseite3.tld");

    echo 
    '
    <div class="ce_image block">
        <figure class="image_container">
            <a href="https://www.lookr.com/de/lorem/4711" target="_blank" title="Webcam">
                <img src="https://www.supersite.tld/webcam-03.jpg" alt="Webcam" width="640" height="480">
            </a>
        </figure>
    </div>
    '
    ?>
    in den einzelnen Webseiten https://webseite1.tld bzw. 2 und 3 als Inhaltselement
    PHP-Code:
    <?php 
    // ce_template-webcam.html5
    $webcamContent file_get_contents('https://basiswebseite.tld/cam/webcam.php');
    echo 
    $webcamContent;
    ?>
    Doch leider wird das Inhaltselement nicht angezeigt.

    Hätte auch in der ce_template-webcam.html5
    PHP-Code:
    <?php include 'https://basiswebseite.tld/cam/webcam.php'?>
    getestet.

    Ein
    PHP-Code:
    <object data="https://basiswebseite.tld/cam/webcam.php"></object
    funktioniert ... das möchte ich aber vermeiden bzw. nicht einbauen

    - Ist mein Vorhaben überhaupt umsetzbar?
    - Bin ich am richtigen Weg? bzw. was mache ich falsch?

    Danke für die Hilfestellung
    Grüsse
    Bernhard


  2. #2
    Contao-Nutzer Avatar von BennyBorn
    Registriert seit
    10.06.2011.
    Ort
    Edenkoben
    Beiträge
    240
    Partner-ID
    6916

    Standard

    Direkt per z.B. file_get_contents irgendwelchen Content von einer anderen Seite einbinden ist nie eine gute Idee.
    Das kann Dir in verschiedensten Arten um die Ohren fliegen oder die Seite lahmlegen.

    Die "sauberste" Lösung wäre eigentlich das ganze per JavaScript zu machen.
    Also erstelle auf Deiner "Basisseite" eine Unterseite wo nur das Kamera-Element drauf ist und nutze auf den anderen Seiten einfach fetch() um Dir den Inhalt zu holen und bei Dir einzubinden.

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •