Próbuję przekazać adres URL jako parametr adresu URL w php, ale kiedy próbuję uzyskać ten parametr, nic nie dostaję
Używam następującego formularza URL:
http://localhost/dispatch.php?link=www.google.com
Próbuję przejść przez:
$_GET['link'];
Ale nic nie wróciło. Jaki jest problem?
var_dump
z$_GET
param, powinien tam być$_REQUEST['link']
działa? Pamiętaj też, że w kluczu indeksulink
rozróżniana jest wielkość liter w stosunku do zawartości adresu URL.$_GET
ale zdarza się, że piszesz, prawda?Odpowiedzi:
$_GET
nie jest funkcją ani konstrukcją języka - jest tylko zmienną (tablicą). Próbować:W szczególności jest to superglobal : wbudowana zmienna zapełniana przez PHP i dostępna we wszystkich zakresach (możesz jej użyć z wnętrza funkcji bez globalnego słowa kluczowego ).
Ponieważ zmienna może nie istnieć, możesz (i powinieneś) upewnić się, że Twój kod nie wyzwala powiadomień za pomocą:
Alternatywnie, jeśli chcesz pominąć ręczne sprawdzanie indeksu i być może dodać dalsze sprawdzanie poprawności, możesz użyć rozszerzenia filtru :
Last but not least, możesz użyć zerowego operatora koalescencyjnego (dostępnego od PHP / 7.0 ) do obsługi brakujących parametrów:
źródło
localhost
i to rozwiązanie nie działa.http://localhost/station?type=2
echo $_GET['type'];
jestnull
parse_str(parse_url($actual_link)['query'], $params);
. Więcej informacji stackoverflow.com/a/11480852/4458531Proszę opublikować swój kod,
lub
wykonać pracę ...
źródło
Aby upewnić się, że zawsze jesteś po bezpiecznej stronie, bez wszelkiego rodzaju niechcianego wstawiania kodu, użyj FILTRÓW:
Więcej informacji na temat funkcji php.net filter_input lub sprawdź opis różnych filtrów
źródło
Użyj tego:
Lub po prostu użyj:
źródło
Przyjęta odpowiedź jest dobra. Ale jeśli masz taki scenariusz:
Nazwaną kotwicę można traktować jako ciąg zapytania w następujący sposób:
Następnie przejdź do tego w następujący sposób:
źródło
Jeszcze nic nie dostawałem
$_GET["..."]
(np.print_r($_GET)
Podałem pustą tablicę)$_SERVER['REQUEST_URI']
pokazałem, że rzeczy powinny tam być. W końcu okazało się, że wchodzę tylko na stronę internetową, ponieważ mój .htaccess przekierowuje ją tam (mój program obsługi 404 był tym samym plikiem .php, a podczas testowania napisałem literówkę w przeglądarce).Po prostu zmiana nazwy oznaczała, że działał ten sam kod php, gdy przekierowanie 404 nie było uruchamiane!
Są więc sposoby, by
$_GET
nic nie zwracać, nawet jeśli kod php może być poprawny.źródło
źródło
Ktokolwiek nic nie odzyskuje, myślę, że musi zawrzeć wynik w tagach HTML,
Lubię to:
źródło
Jak powiedział Alvaro, $ _GET nie jest funkcją, ale tablicą zawierającą parametry, więc możesz pobrać jeden element z tej tablicy za pomocą
Oczekiwany PO:
źródło