Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne][PHP]Wartość parametru w adresie URL zawierająca spacje
Demoneos
post 12.12.2011, 21:40:06
Post #1





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

Ostrzeżenie: (0%)
-----


W adresie URL przesyłam parametr, które wartość zawiera spacje, np:
  1. http://site.com/?name=good luck

i teraz w zmiennej $_REQUEST['name'] jest nie "good luck", a tylko "good" (czyli pierwszy wyraz przed spacją).
Czy można więc jakoś przesłać w adresie URL parametr, którego wartość zawiera w sobie spacje?

Ten post edytował Demoneos 12.12.2011, 21:41:29


--------------------
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
by_ikar
post 12.12.2011, 21:48:02
Post #2





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

Ostrzeżenie: (0%)
-----


urldecode oraz urlencode

Ten post edytował by_ikar 12.12.2011, 21:49:22
Go to the top of the page
+Quote Post
Demoneos
post 12.12.2011, 21:57:14
Post #3





Grupa: Zarejestrowani
Postów: 149
Pomógł: 0
Dołączył: 26.02.2008

Ostrzeżenie: (0%)
-----


Wysyłam więc adres URL kodując wartość parametru za pomocą funkcji urlencode:
  1. http://site.com/?name=<?php echo urlencode( "good luck" ); ?>

i rzeczywiście po najechaniu myszką na link na pasku statusu przeglądarki jest:
http://site.com/?name=good+luck
czyli + zamiast spacji.
Tyle tylko, że jak to później próbuję odebrać przy pomocji funkcji urldecode:
  1. urldecode( $_REQUEST['name'] )

to nadal otrzymuję tylko pierwszy wyraz przed pierwszą spacją.
Co więc jest źle?

------ EDIT ------
W Example #1 na stronie urldecode widzę,
że tej funkcji urldecode() nie używa się w tak prosty sposób jak myślałem smile.gif
Z tym, że w Example #1 jest błąd, bo zamiast $QUERY_STRING powinno być $_SERVER['QUERY_STRING'] smile.gif

Mogłem więc już po odświeżeniu strony odbierać już całe wartości (wraz ze spacjami) parametrów z adresu URL.
Miałem natomiast zupełnie inny problem - spacje nie działały w funkcji header(). Ale tutaj na forum (komentarz z 10 Aug 06 6:26) ktoś poradził, żeby zmienną zawierającą nazwę pliku otoczyć "podwójnym cytatem":
  1. header('Content-Disposition: attachment; filename="'.$name.'"');

i zadziałało smile.gif

Ten post edytował Demoneos 13.12.2011, 10:08:04


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 07:59