Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Adres przesyłany w GET
Forum PHP.pl > Forum > Przedszkole
Adrian1207
Witam
Mam mały problem z przesłaniem adresu URL w zmiennej GET do innej strony. Jako że w adresie url też są zmienne GET, mój skrypt bierze je jako swoje i ucina poprawny adres. Może przykład:

Jestem na stronie domena.pl ze zmienną GET['url']:
Kod
http://domena.pl/skrypt.php?url=http://www.costam.pl/innyskrypt.php?cos=a&cos2=b&cos3=c


I chcę, aby skrypt.php dostał w zmiennej GET cały url, czyli:
Kod
http://www.costam.pl/innyskrypt.php?cos=a&cos2=b&cos3=c


Ale skrypt.php za url bierze:
Kod
http://www.costam.pl/innyskrypt.php?cos=a


A resztę traktuje jako swoje zmienne.

No i tu pojawia się pytanie jak zrobić, żeby cos2 i cos3 bylo dalej w URL'u. Nie mogę edytować wcześniej przesyłanego adresu żeby przesyłał się z & zastąpionymi %26.

Czyli szukam funkcji która jakoś przeczyta mi $_GET['url'] jako całość.

Bardzo proszę o pomoc.

Pozdrawiam
SirZooro
urlencode
Adrian1207
Tylko jeszcze z tym taki problem, że url pobieram w file_get_contents a ten mi wywala failed to open stream po użyciu urlencode.
Dokładnie to użyłem tego tak:
  1. <?php
  2. $bleble=urlencode($_GET['url']);
  3. ?>
SirZooro
Do konwersji w drugą stronę służy funkcja urldecode - jej powinieneś użyć.

A tak przy okazji, nie wiem co chcesz osiągnąć, ale w ten sposób możesz narazić swój serwis WWW na niebezpieczeństwo pod tytułem Remote File Inclusion.
Adrian1207
Sprawdziłem dokładnie, i po użyciu urlencode nadal ucinało mi url, a resztę brało jako swoje zmienne. Gdyby nie ucinało to dekodując to później urldecode bym uzyskał taki efekt jakiego potrzebuje, ale na to wyszło że ten kod:
  1. <?php
  2. $bleble=urlencode($_GET['url']);
  3. $ble=urldecode($bleble);
  4. ?>


Działa tak samo jak po prostu:
  1. <?php
  2. file_get_contents($_GET['url']);
  3. ?>


Bo wcale nie łączy całego url'a, tylko nadal kończy go
Kod
http://www.costam.pl/innyskrypt.php?cos=a


A nie
Kod
http://www.costam.pl/innyskrypt.php?cos=a&cos2=b&cos3=c


Więc ta funkcja nie bardzo pomogła, pewnie by pomogła gdybym adres zakodował przed wysłaniem, no ale muszę odebrać go w całości. Także jeszcze bym prosił o pomoc.

Edit
A, o zagrożeniu wiem, ale to nieistotne w tym wypadku.
erix
Wytnij sobie zawartość z $_SERVER['QUERY_STRING'].
Adrian1207
OOO wielkie dzięki erix, to zadziałało smile.gif wyciąłem sobie cały url i wszystko gra.

SirZooro też dzięki za podanie funkcji.

Dzięki i pozdrawiam
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.