kostenloser Webspace werbefrei: lima-city


weiterleitung mittels parameterübergabe

lima-cityForumProgrammiersprachenPHP, MySQL & .htaccess

  1. Autor dieses Themas

    valuser

    Kostenloser Webspace von valuser

    valuser hat kostenlosen Webspace.

    hallo, ich möchte mir gerne ein parametergesteuertes weiterleitungsscript basteln, das ich wiefolgt aufrufen kann:
    weiterleitung.php?page=www.google.at

    diese seite sollte dann sofort auf google weiterleiten.
    was muss ich in mein script einbauen, damit das mit dem parameter in der url funkioniert?

    <?php
    header(\'location: http://www.blablabla.de/member/index.php\');
    ?>
  2. Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!

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

  3. probiere es mal so:


    weiteleitung.php
    <?php
    $querys = $_SERVER[\'QUERY_STRING\'];
    parse_str ($querys);
    
    header(\'location:\'.$page);
    ?>


    dann soltest du es so aufrufen können:

    www.irgentewas.wo/weiterleitung.php?page=sitezuderduwillst.de


    gruss johannes

  4. @joma93
    Warum so kompliziert?

    <?php
    header(\"Location: \".$_GET[\'page\']);
    ?>


    Oder, um noch ein bisschen Sicherheit zu schaffen:

    <?php
    $page = $_GET[\'page\'];
    
    if(substr($page,0,7) == \"http://\"){
       header(\"Location: \".$page);
    }else{
       echo \"Fehler!\";
    }
    ?>



    gruß
    ferdinand24



    Beitrag geändert: 11.2.2008 0:18:05 von ferdinand24
  5. wie ist das mit der sicherheit beim verlinken gemeint?

    lg
    Sincer
  6. @ferdinand24:

    ich mach es meistens so da ich häufig mehrere variabeln übergebe und da finde ich es angenehmer wenn ich nicht noch ein $_get[\'blablabla\'] schreiben muss

    ist ansichtssache

  7. wie ist das mit der sicherheit beim verlinken gemeint?

    lg
    Sincer

    So wird sichergegangen, dass auch wirklich eine valide Adresse per GET übergeben wird.




    joma93 schrieb:
    @ferdinand24:

    ich mach es meistens so da ich häufig mehrere variabeln übergebe und da finde ich es angenehmer wenn ich nicht noch ein $_get[\\\'blablabla\\\'] schreiben muss

    ist ansichtssache

    Nur in dem Fall viel zu umständlich und es kostet mehr Rechenleistung.
  8. Autor dieses Themas

    valuser

    Kostenloser Webspace von valuser

    valuser hat kostenlosen Webspace.

    <?php
    header(\"Location: \".$_GET[\'page\']);
    ?>


    Danke, ich habe es doch auf diese einfache art gelöst!

    lg
    Vali
  9. hallo leute

    schonmal vorab, ich bin php newbie.

    Projekt : ich baue eine eigene umleitungsseite wie zb http://anonym.to/?http://example.de
    so hab ich es realisiert =

    <meta http-equiv=\"refresh\" content=\"5; URL=<?php echo $_GET[\"id\"];?>\">

    das funzt eigentlich gut nur das problem ist wenn ich auf mein forumtheard verweise zb

    http://example.de/phpbb3/viewtopic.php?f=6&t=140

    verwirrt sich die weiterleitung wegen dem & zeichen im link
    am ende kommt nur noch

    http://example.de/phpbb3/viewtopic.php?f=6 ohne &t=140

    was muss ich da machen?
  10. s******s

    Die Sonderzeichen müssen hierbei in HTML umgewandelt werden, also in dem Fall für & %26 . Dies dürfte funktionieren.

    Beitrag geändert: 19.3.2008 10:01:36 von steffens

  11. Die Sonderzeichen müssen hierbei in HTML umgewandelt werden, also in dem Fall für & %26 . Dies dürfte funktionieren.

    Beitrag geändert: 19.3.2008 10:01:36 von steffens


    sehr gut es funzt, danke dachte nicht das es so einfach geht :)

    eine frage noch dazu könnte man es so realesieren das es die & auromatisch in %26 umwandel, damits perfekt ist?

    ich habs mit der funktion versucht

    <meta http-equiv=\"refresh\" content=\"5; URL=<?php echo $_GET[\"id\"]; echo htmlentities($str, ENT_QUOTES);?>\">



    Beitrag geändert: 19.3.2008 13:22:01 von vadi
  12. r*******r

    <meta http-equiv=\"refresh\" content=\"5; URL=
    <?php $url = $_GET[\"id\"]; $url2 = str_replace ( \'&\', \'%26\', $url );
    echo $url2; ?>\">
    vll so^^






    Beitrag geändert: 19.3.2008 14:26:38 von rpgmacher
  13. also danke für die schnelle antwort ,aber leider ersetzt ers nicht bleibt immer noch das & in der url..
    mfg
  14. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    http://de3.php.net/manual/de/function.urlencode.php
  15. Danke nochmal super forum!:)

    wie gesagt ich bin php anfänger (hab mit htmls chon meine problems^^)
    ich habs so versucht einzubauen:

    <meta http-equiv=\"refresh\" content=\"5; URL=<?php echo, urlencode $_GET[\"?\"];?>\">
  16. Hilft mir keiner letes mal mehr ? :( please
  17. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    <meta http-equiv=\"refresh\" content=\"5; URL=<?php echo urlencode($_GET[\'id\']);?>\">

  18. <meta http-equiv=\"refresh\" content=\"5; URL=<?php echo urlencode($_GET[\'id\']);?>\">



    geht so leider auch nicht :(

    \"theard exsestiert nicht\" dadurch geht auch %26 nichtmal irgendwie komisch


    Beitrag geändert: 20.3.2008 22:36:46 von vadi
  19. <meta http-equiv=\"refresh\" content=\"5; URL=<?php echo urlencode($_GET[\'id\']);?>\">

    bist du 100 % sicher das \"urlencode\" so richtig eingebaut ist?#
    gibs hier einen der anhung von php hat das is doch kiddi problem^^
  20. Ich vermute mal, dass der PHP-Parser damit ein Problem hat.
    Das lässt sich auch recht logisch erklären, denn du sagst ihm: \"Nimm alles was nach id in der URL steht\", und genau das macht er auch. Nun weiß der Parser aber, wenn ein & kommt, beginnt die nächste Variable, was in deinem Fall t=140 wäre, also hört er dort auf, denn für ihn endet id dort.
    Du hast also eigentlich nur die Möglichkeit, die URL komplett zu nehmen, nach den ersten Vorkommen von id zu suchen und alles anderes danach mit für deine Weiterleitung zu verwenden. Du musst es quasi von Hand machen, da den Parser nunmal nicht so ändern kannst, dass er auf einmal nicht mehr das macht, was ihm gesagt wurde.


    edit
    Eigentlich ist es sogar noch einfacher. Mit $_SERVER[\'QUERY_STRING\'] kannst du alle Parameter einer URL auslesen. Als Beispiel:
    <?
    // gesamte URL ist http://anonym.to/?link=http://example.de/phpbb3/viewtopic.php?f=6&t=140
    
    echo $_SERVER[\'QUERY_STRING\']; // liefert link=http://example.de/phpbb3/viewtopic.php?f=6&t=140
    echo substr($_SERVER[\'QUERY_STRING\'],5); liefert http://example.de/phpbb3/viewtopic.php?f=6&t=140
    ?>

    Die Weiterleitung dann wie oben mit dem Meta-Refresh, urlencode brauchst du dabei eigentlich nicht.

    Beitrag geändert: 21.3.2008 17:01:42 von tct
  21. kochmarkus

    Co-Admin Kostenloser Webspace von kochmarkus

    kochmarkus hat kostenlosen Webspace.

    Ja tct, das der Parser & als nächsten Parameter erkennt ist mir auch grad aufgefallen. Ich habs jetzt so gelöst:
    <?php
    $seite = $_SERVER[\'argv\'][0];
    if(strrpos($seite, \'/\') < 7) {
      $seite = $seite.\'/\';
    }
    if(substr($seite,0,7) != \'http://\') {
      $seite = \'http://\'.$seite;
    }
    
    $teil1 = substr($seite, 0, strrpos($seite, \'/\')+1);
    $teil2 = urlencode(substr($seite, strrpos($seite, \'/\')+1));
    header(\'location: \'.$teil1.$teil2);
    ?>


    Sogar mit Fehlerabfragen :biggrin:

    In Zeile Zwei wird alles übernommen, was nach \'dateiname.php?\' steht. Man braucht also nichtmal einen Variablennamen.

    In Zeile 3-4 wird ein \'/\' angehängt, wenn jemand zum Beispiel nur \'http://www.google.de\' schreibt (Ist für die spätere Funktion wichtig)

    Für Zeile 6-7 gilt das gleiche, nur mit \'http://\' am Anfang.

    Dann wird der mitgegeben String in Servername mit Pfad und Dateiname mit evtl. Parametern geteilt. Der Datei/Parameterteil wird urlencoded um in URL reservierte Zeichen zu maskieren. (Ob es unbedingt nötig ist kann man drüber streiten, aber es ist so auf jeden Fall besser denke ich)

    Und danach wird mit header(\"location: ...\"); weitergeleitet, funktioniert alternativ auch mit <meta http-equiv...>



    Beitrag geändert: 21.3.2008 17:41:08 von kochmarkus
  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!