iFrame soll Variablen aus URL übernehmen

  • Hallo,


    ich bin was PHP Code usw. angeht ein Anfänger und versuche schon sehr lange in diversen Foren eine Lösung für mein Problem zu finden hmm.

    Auch hier im Forum habe ich mir diverse Beiträge durchgelesen search.

    Ich finde aber keine Problemstellungen oder Lösungen die funktioniert haben.

    Daher frage ich hier, ob mir jemand helfen kann.


    Zu meinem Problem:

    wir haben für einen Kunden die Website in Joomla neu erstellt.

    Auf der alten Seite gab es einen Loginbereich hinter dem PDFs abgerufen werden konnten.

    Dieser Login-Bereich sollte nicht neu programmiert werden und daher per iFrame in die neue Seite geladen werden.

    Unser Kunde hat seinen Lieferanten eine E-Mail mit einem Link geschickt, in dem die Zugangsdaten enthalten waren.

    Der Lieferant war dann sofort eingeloggt und musste keinen Login zusätzlich vornehmen.


    Der Link sieht so aus:

    Code
    https://www.kundendomain.de/index.php/de/kunden-login?lang=de&un=1234&pw=5678

    Ich sollte folgenden iFrame in die Joomla Seite einbetten:

    PHP
    <iframe scrolling="auto" src="https://kundendomain.de/min/index.php?lang=de&module=customer&un=<?php echo htmlspecialchars( $_GET['un'] ); ?>&pw=<?php echo htmlspecialchars( $_GET['pw'] ); ?>" frameborder="0"></iframe>

    Die URL sollte sich dann vervollständigen und den iFrame wie folgt einbetten:

    Code
    src="https://kundendomain.de/min/index.php?lang=de&module=customer&un=1234&pw=5678"

    leider klappt dies nicht und die Domain des iFrames bleibt unverändert.


    Ich habe den iframe Code in einem eigenen Modul gespeichert und dieses dann an die entsprechende Position auf der gewünschten Seite platziert.


    Zum Test, ob der iFrame Code überhaupt funktioniert habe ich diesen einmal in eine einfache .php Datei auf dem Server gespeichert und diese direkt aufgerufen.

    Dann wird die URL des iFrames korrekt vervollständigt.

    Also funktioniert der iFrame Code generell schon.


    Was muss ich wie anpassen, damit die Weitergabe der Variablen, bzw. die Abfrage der Variablen durch den iFrame funktionieren?


    Gruß

    Nico

  • Das wirst Du so auch nicht hinbekommen, da PHP eine Serverseitige Sprache ist und auf dem Server ausgeführt wird. Du versuchst es allerdings in einem iframe-Wrapper einzubauen, wo lediglich nur das html enthalten ist. Dort ist es für PHP Code dann schon zu spät.


    Du müsstest entsprechend etwas haben, wo man die Werte eingibt an den Server gesendet werden und dann entsprechend verarbeitet wird. Als Rückgabe an den Browser wird dann der Iframe mit dem gültigen Link gesendet.

    Um das realisieren zu können, müsstest Dich aber schon deutlich mehr mit PHP beschäftigen, jemanden beauftragen, der das entwickelt oder von dieser Konstellation abweichen und die PDF Dokumente in joomla zum Download anbieten. Das letztere wäre vermutlich die bessere Lösung.

  • Joomla filtert PHP aus Sicherheitsgründen heraus. Es gibt aber Module und Plugins, welche PHP auf die eine oder andere Weise ermöglichen, z.B. sourcerer und rereplacer von regular labs oder bestimmte Module oder Plugins im JED wie directphp.


    Ich gehe mal davon aus, dass der IFRAME schon aus Sicherheitsgründen erst für angemeldete Kunden eingebunden wird und du über die SIcherheitsrisiken im Klaren bist, wenn Zugangsdaten im Klartext über die URL weitergegeben werden.

  • Ich habe den iframe Code in einem eigenen Modul gespeichert und dieses dann an die entsprechende Position auf der gewünschten Seite platziert.

    Statt zusätzlicher Software (falls das die einzige Situation ist, wo du PHP im Editor brauchst):


    Lege eine Datei "meinIframe.php" oder ähnlich genannt

    im Ordner

    templates/DEINTEMPLATENAME/html/mod_custom/

    an.


    Trage in diese ein:

    PHP
    <?php
    defined('JPATH_BASE') or die;
    ?>
    <iframe scrolling="auto" src="https://kundendomain.de/min/index.php?lang=de&module=customer&un=<?php echo htmlspecialchars( $_GET['un'] ); ?>&pw=<?php echo htmlspecialchars( $_GET['pw'] ); ?>" frameborder="0"></iframe>

    Dann öffnest dein Modul im Backend und wählst im Feld Stil: "meinIframe".


    Den Editor kannst in diesem Fall leer lassen.