tester: Link als Parameter

halo

für mein weiterleitungsscript will ich den link, zu dem weitergeleitet werden soll, als parameter übergeben.
somit sieht also ein link z.b. so aus:
./weiterleitung.php?param1=bla1&link=http://test.de/?nochwas/das=für die andre?seite bestimmt ist&

o.ä.

nun könnt Ihr Euch das problem denken, oder?

nunja, wie lässt sich sowas lösen, ohne eine db anzulegen mit den links drin?

danke!

  1. Hi,

    wie schaut's aus, wenn du das http:// automatisch übergibst und nicht in den Parameter steckst?

    Gruß
    Ben

  2. halo

    ./weiterleitung.php?param1=bla1&link=http://test.de/?nochwas/das=für die andre?seite bestimmt ist&

    Machs doch den URI so
    http://example.com/redir.php?url=http://home.vr-web.de/rolfrost/

    und im Script wird ganz normal geparst, Du hast danach:

    Variablenname => url
    Wert => http://home.vr-web.de/rolfrost/

    Gruss, Rolf

    --
    Gestern hab ich mich auf morgen gefreut, morgen werde ich mich auf übermorgen freuen...
  3. Hallo tester!

    für mein weiterleitungsscript will ich den link, zu dem
    weitergeleitet werden soll, als parameter übergeben.
    somit sieht also ein link z.b. so aus:
    ./weiterleitung.php?param1=bla1&link=http://test.de/?
    nochwas/das=für die andre?seite bestimmt ist&

    o.ä.

    nun könnt Ihr Euch das problem denken, oder?

    Ja: Wenn du die URL einfach so ranhängst und das ganze ohne Formular machst, sondern einfach so als selbstzusammengebastelten Link, musst du den Parameter der gesamten URL vorher noch encoden, damit die in einer URL reservierten Zeichen mit Ersatzzeichen dargestellt werden.

    Dies wird folgendermaßen gemacht:
       <a href="./weiterleitung.php?param1=bla1&link=<?php urlencode(http://test.de/) ?>

    Mehr Informationen in der dclp-FAQ unter:
      5.12. Wie kann ich einen Parameter von einer PHP-Seite an eine andere weitergeben?
      http://www.dclp-faq.de/q/q-variable-weitergeben.html

    Übrigens werden Parameter nach dem Folgenden Schema angefügt:

    http://www.example.de/?option1=wert&option2=wert&option3=wert

    Soll heissen, _nur_ vor dem _ersten_ Parameter (option1=wert) steht immer ein Fragezeichen. Bei allen darauf folgenden Parametern steht vor jedem Parameter ein "&".

    nunja, wie lässt sich sowas lösen, ohne eine db anzulegen mit den
    links drin?

    Alternativ zu einer Datenbank kannst du in der Datei "weiterleitung.php" ein Array anlegen, in denen du alle möglichen URLs ablegst. Um dann zu prüfen, ob eine übergebene URL erlaubt ist, durchsuchst du einfach das Array, ob die übergebene URL im Array vorhanden ist.
    Dies geht z. B. mit folgenden Funktionen:
     - array_search(): http://de.php.net/manual/de/function.array-search.php
     - in_array(): http://de.php.net/manual/de/function.in-array.php

    Hättest du anstatt "nun könnt Ihr Euch das problem denken, oder?" dein Problem genau geschildert, so hätte man gezielter antworten können.

    Ich hoffe, dass ich dich richtig verstanden habe und dass ich dir weiterhelfen konnte.

    1. Dies wird folgendermaßen gemacht:
         <a href="./weiterleitung.php?param1=bla1&link=<?php urlencode(http://test.de/) ?>

      Da ist mir leider ein kleiner Fehler unterlaufen. Richtig muss es natürlich so heissen:

      <a href="./weiterleitung.php?param1=bla1&link=<?php urlencode("http://test.de/") ?>