kostenloser Webspace werbefrei: lima-city


PHP - Eingabe aus Box in einen Link einfügen.

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    Hallo,
    ich bräuchte für meine Webseite nochein Script, bei dem man eine Eingabe in eine Box macht, und es unten als Link ausgegeben wird. Mach ich dies mit $_POST funktioniert es bei links nicht.

    Beispiel:

    Ich geb google.com in die Box ein, drück auf den Button, und folgendes sollte ausgegeben werden:

    <a href="google.com">Linktext</a>

    Also sollte "google.com" durch jeden beliebigen link ersetzt werden können.




    Jemand eine andere Idee?
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

  3. infinitysounds

    Kostenloser Webspace von infinitysounds

    infinitysounds hat kostenlosen Webspace.

    zeig doch mal deinen codeansatz
  4. Das ging bei mir mit php so:
    <a href="<?php echo $link?>"><?php echo $link?></a>


    Beitrag zuletzt geändert: 12.12.2011 21:32:54 von jnuk
  5. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    @jnuk
    Dann die Box als Link benammsen und alles sollte funktionieren?

    Beitrag zuletzt geändert: 12.12.2011 21:36:22 von abc124
  6. Ne musst über POST oder GET die Variable "Link" übertragen.
  7. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    Danke schonmal, habs jetzt probiert, aber anscheinend hab ichs falsch verstanden, was vll daran liegt das meine PHP-Kentnisse schwach sind. Hättest du Zeit für ein Beispiel?
  8. Klar. Geh mal auf meinen Webspace. Da klickst du auf den untersten Link. Dann kommst du auf meine PHP-Weiterleitungsseite.
    Hier der <Body>-Code von Index.html:
    <body>
            <!-- Titel -->
            <h1><a href="http://www.lima-city.de/">Gratis Homepage</a> erstellen:</h1>
            <!-- Untertitel -->
            <h2>Hier entsteht in K&uuml;rze eine neue <a href="http://www.lima-city.de/">kostenlose Homepage</a></h2>
            <!-- Text -->
            <p>Dieser <a href="http://www.lima-city.de/">kostenlose Webspace</a> ist gerade neu eingerichtet worden, und wird in K&uuml;rze mit Inhalt gef&uuml;llt!</p>
            <p><strong><a href="http://www.lima-city.de/">Gratis Webspace</a></strong> und <strong><a href="http://www.lima-city.de/2008/domains">g&uuml;nstige Domains</a></strong> von <strong><a href="http://www.lima-city.de/">lima-city</a></strong>: <strong><a href="http://www.lima-city.de/">Webhosting werbefrei</a></strong>!</p>
            <p>&nbsp;</p>
            <p><a href="http://www.lima-city.de/">www.lima-city.de</a></p>
    	<p><a href="extlink/run.php?url=http://www.lima-city.de/">lima-city</a></p>
        </body>

    Man beachte den letzten Link:
    <a href="extlink/run.php?url=http://www.lima-city.de/">lima-city</a>

    Hier wird man zu "extlink/run.php" weitergeleitet, und die Variable "url" wird via GET übergeben. (Das hinter dem Fragezeichen).

    Jetzt die run.php in /extlink:
    <?php
    $url = $_GET["url"]
    ?>
    <head>
    	<meta http-equiv="refresh" content="5; URL=<?php echo $url?>">
    </head>
    <?php
    echo '<h1>ACHTUNG!</h1></br>';
    echo 'Sie werden nun zu <h3>'.$url.'"</h3> weitergeleitet!</br></br></br>';
    echo '<h4>Für den Inhalt auf dieser Seite übernehme ich keine Haftung!</h4></br>';
    ?>

    Hier wird zuerst die Variable "url" via GET abgefragt und in $url gespeichert.
    Nun wird im <head> des HTML-Teils befohlen, dass nach 5 Sekunden an die Website $url weitergeleitet wird. (In diesem Fall an Lima-City.de)
    Unten im "großen" Php-Teil wird nur nochmal die Variable $url ausgegeben und eine Warnung angezeigt.

    Wenn du noch Fragen hast frag ruhig. :spammer:


    Beitrag zuletzt geändert: 12.12.2011 22:01:07 von jnuk
  9. Mir fällt grad noch ein, wie man's bei dir lösen könnte:

    index.php:
    <html>
        <body>
            <form method="GET">
                <input type="text" name="link">
                <input type="submit" value="GO!">
            </form>
        </body>
    </html>
    
    <?php
    $link = $_GET["link"]
    echo "<a href='".$link."'>LINK *klick*</a>";
    ?>


    Aber ich glaub, dass man dann die Seite neu laden muss... Weiß net genau.

    Beitrag zuletzt geändert: 12.12.2011 22:09:06 von jnuk
  10. t*****o

    Aber ich glaub, dass man dann die Seite neu laden muss... Weiß net genau.

    Klar muss man die Seite neuladen, PHP ist schließlich eine serverseitige Sprache.
    (Wenn man jetzt nicht noch AJAX nutzt)
  11. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    Ist jetzt einiges dazwischen gekommen und habs erst jetzt getestet.

    Das Script funktioniert in deinem Fall schon, du füngst den Link als text wieder ein. Aber nehmen wir mal an ich will ein youtube video einbetten:

    <iframe width="560" height="315" src="DIESEN LINK WILL ICH ERSETZEN" frameborder="0" allowfullscreen></iframe>

    Jetzt sind " vorhanden und das ganze funktioniert nicht mehr.
  12. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    Du könntest eine PHP-Funktion nutzen:
    <iframe width="560" height="315" src="<?php echo(urlencode($link)); ?>" frameborder="0" allowfullscreen></iframe>
    wobei in $link deine URL drin steht

    Dieser Versuch kann übrigens böse in einem XSS-Angriff enden. Heißt:
    1) Du glaubst deine Seite ist sicher.
    2) Jemand schickt dir einen Link auf die Seite (mit einem ?link=http://www.link.de/auf/ein/böses/skript/mit/virus)
    3) Du bekommst dieses Mail und glaubst: "Die Seite ist sicher, mir kann nichts passieren wenn ich da drauf klicke."
    4) Du klickst auf den Link und es wird ein Virus/... geladen
    5) WTF! ich dachte die Seite wäre sicher!!!
  13. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    Dieser Versuch kann übrigens böse in einem XSS-Angriff enden. Heißt:
    1) Du glaubst deine Seite ist sicher.
    2) Jemand schickt dir einen Link auf die Seite (mit einem ?link=http://www.link.de/auf/ein/böses/skript/mit/virus)
    3) Du bekommst dieses Mail und glaubst: "Die Seite ist sicher, mir kann nichts passieren wenn ich da drauf klicke."
    4) Du klickst auf den Link und es wird ein Virus/... geladen
    5) WTF! ich dachte die Seite wäre sicher!!!


    Nehmen wir das gleiche Beispiel. Wenn jemand einen unsicheren Link einfügt, wird Video ist nicht verfügbar oder Ähnliches angezeigt. Bei mir wirds das gleiche Prinzip sein.
  14. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    abc124 schrieb:
    Nehmen wir das gleiche Beispiel. Wenn jemand einen unsicheren Link einfügt, wird Video ist nicht verfügbar oder Ähnliches angezeigt. Bei mir wirds das gleiche Prinzip sein.
    Das Problem das ich gemeint habe tritt dann auf wenn du erst sowas hast:
    $link = $_GET['link'];
    Wenn dieser Text ungefiltert an das src vom iframe übergeben wird kann darin jede beliebige Seite geladen werden.
  15. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    hackyourlife schrieb:
    abc124 schrieb:
    Nehmen wir das gleiche Beispiel. Wenn jemand einen unsicheren Link einfügt, wird Video ist nicht verfügbar oder Ähnliches angezeigt. Bei mir wirds das gleiche Prinzip sein.
    Das Problem das ich gemeint habe tritt dann auf wenn du erst sowas hast:
    $link = $_GET['link'];
    Wenn dieser Text ungefiltert an das src vom iframe übergeben wird kann darin jede beliebige Seite geladen werden.


    Ist mir bewusst. Aber versuch mal www.virus.net in ein YoutubeVideo einzubetten.


    Bzw ich bekomms auch mit deinem Code nicht hin
  16. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    abc124 schrieb:
    Ist mir bewusst. Aber versuch mal www.virus.net in ein YoutubeVideo einzubetten.
    Noch einmal: das funktioniert bei folgendem PHP-Code:
    <?php $link = $_GET['link']; ?>
    <!-- irgend ein HTML-Code -->
    <iframe width="560" height="315" src="<?php echo(urlencode($link)); ?>" frameborder="0" allowfullscreen></iframe>
    <!-- noch irgend ein HTML-Code -->

    Wenn du die Seite jetzt mit
    http://www.adresse.de/der/seite.php?link=http://www.virus.net/
    aufrufst hast du einen HTML-Text produziert der folgendes beinhaltet:
    <iframe width="560" height="315" src="http://www.virus.net/" frameborder="0" allowfullscreen></iframe>
    Damit bist du genau dort wo du nicht hin willst.

    Der XSS-Angriff funktioniert nur bei so einem Script (wenn also ein Parameter direkt in den HTML-Text ausgegeben wird)!

    abc124 schrieb:
    Bzw ich bekomms auch mit deinem Code nicht hin
    Was bekommst du nicht hin?
  17. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    hackyourlife schrieb:
    abc124 schrieb:
    Ist mir bewusst. Aber versuch mal www.virus.net in ein YoutubeVideo einzubetten.
    Noch einmal: das funktioniert bei folgendem PHP-Code:
    <?php $link = $_GET['link']; ?>
    <!-- irgend ein HTML-Code -->
    <iframe width="560" height="315" src="<?php echo(urlencode($link)); ?>" frameborder="0" allowfullscreen></iframe>
    <!-- noch irgend ein HTML-Code -->

    Wenn du die Seite jetzt mit
    http://www.adresse.de/der/seite.php?link=http://www.virus.net/
    aufrufst hast du einen HTML-Text produziert der folgendes beinhaltet:
    <iframe width="560" height="315" src="http://www.virus.net/" frameborder="0" allowfullscreen></iframe>
    Damit bist du genau dort wo du nicht hin willst.

    Der XSS-Angriff funktioniert nur bei so einem Script (wenn also ein Parameter direkt in den HTML-Text ausgegeben wird)!

    abc124 schrieb:
    Bzw ich bekomms auch mit deinem Code nicht hin
    Was bekommst du nicht hin?


    Mit "versuch mal" meinte ich nicht den PHP code, sondern eig einfach virus.net als Video einzugeben. Kein Fenster erscheint. Das heisst kein ungewollter Link zu einer ungewollten Seite. Oder wie soll sonst der Angriff stattfinden?


    Wenn ich genau deinen Code verwende:
    The requested URL /youtube/http://www.youtube.com/watch?v=fcO9svaOahM was not found on this server.
  18. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    abc124 schrieb:
    Wenn ich genau deinen Code verwende:
    The requested URL /youtube/http://www.youtube.com/watch?v=fcO9svaOahM was not found on this server.
    Dabei wäre jetzt noch interessant welche URL du aufgerufen hast (was in $link gestanden hat).
    Du hast ganz bestimmt in deinem $link nicht das stehen was dort hingehört. Dort gehört bei genau meinem code genau die URL hin, also muss es ungefär so aussehen:
    $link = 'http://www.youtube.com/watch?v=fcO9svaOahM';
  19. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    Es sollte doch die Url nach dem = eingefügt werden, oder hab ich was falsch verstanden?
  20. hackyourlife

    Moderator Kostenloser Webspace von hackyourlife

    hackyourlife hat kostenlosen Webspace.

    abc124 schrieb:
    Es sollte doch die Url nach dem = eingefügt werden, oder hab ich was falsch verstanden?
    Du hast dich warscheinlich nicht klar genug ausgedrückt.

    Du willst also folgendes (jedenfalls habe ich das jetzt so verstanden):
    http://www.adresse.at/seite.php?video=irgendeinvideo
    resultiert in der Ausgabe von
    <iframe width="560" height="315" src="http://www.youtube.com/watch?v=irgendeinvideo" frameborder="0" allowfullscreen></iframe>

    Wenn das der Fall ist:
    <?php
    $id = $_GET['video'];
    // hier könntest du prüfen ob $id eine gültige Video-ID ist
    $url = "http://www.youtube.com/watch?v=$id";
    ?>
    <!-- html-code -->
    <iframe width="560" height="315" src="<?php echo(urlencode($url)); ?>" frameborder="0" allowfullscreen></iframe>
    <!-- noch ein bischen html -->


    Es würde aber auch so funktionieren:
    <?php
    $id = $_GET['video'];
    // hier könntest du prüfen ob $id eine gültige Video-ID ist
    ?>
    <!-- html-code -->
    <iframe width="560" height="315" src="http://www.youtube.com/watch?v=<?php echo(urlencode($id)); ?>" frameborder="0" allowfullscreen></iframe>
    <!-- noch ein bischen html -->


    Aufrufen kannst du die Seite(n) dann z.B. so:
    <form method="GET" action="seite.php">
    <input type="text" name="video" value="fcO9svaOahM" />
    <input type="submit" value="watch!" />
    </form>


    Wenn das nicht das ist was gemeint war musst du genauere Informationen hergeben.
  21. Autor dieses Themas

    abc124

    abc124 hat kostenlosen Webspace.

    Doch, genau das was ich wollte. Aber schau mal:
    http://abc124.lima-city.de/
  22. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

    lima-city: Gratis werbefreier Webspace für deine eigene Homepage

Dir gefällt dieses Thema?

Über lima-city

Login zum Webhosting ohne Werbung!