Link als Parameter
tester
- php
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!
Hi,
wie schaut's aus, wenn du das http:// automatisch übergibst und nicht in den Parameter steckst?
Gruß
Ben
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
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.
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/") ?>