użyj ciągu zapytania w adresie URL, aby wyświetlić treść na stronie

9

Chciałbym powiedzieć coś na mojej stronie na podstawie strony, z której dana osoba się tam dostała. Mogę skonfigurować link do tej strony:

www.example.com/page?parameter=myparameter

Czy istnieje sposób, aby uzyskać dostęp do tego parametru, dzięki czemu mogę wyświetlać go na stronie, gdzieś w mojej treści?

użytkownik 3515
źródło
Przykro mi, rozumiem, że odpowiedzi są przykładami, ale uważam, że ważne jest, aby pamiętać, że nie należy ich używać w obecnej postaci. Dane wejściowe użytkownika (takie jak parametry ciągu zapytania) nigdy nie powinny być powtarzane bez echa, aby zapobiec atakom XSS ! Wszystkie dotychczasowe odpowiedzi są podatne na XSS i powinny zawierać przynajmniej ostrzeżenie.
kubi

Odpowiedzi:

4

Możesz użyć sesji PHP, poszukać żądania w obiekcie zapytania lub użyć $ _GET z adresem URL, ale nie dotyczy to poufnych informacji ...

Coś takiego;

Chwyć nazwę podróży z adresu URL

$tripname = $_GET['tripname'];

Użyj go w swoim nagłówku;

if(isset($tripname)) echo '<h1>Plan Your Trip To ' .$tripname. '</h1>';

Dan
źródło
Dzięki! To nie są poufne informacje. Jak miałbym to zrobić?
user3515
To może ci pomóc: w3schools.com/php/php_get.asp
Dan
Dzięki! Czy mogę to umieścić bezpośrednio na stronie, czy też musi przejść do pliku szablonu?
user3515
Zależy, gdzie go potrzebujesz - jeśli wyświetla się tylko na stronie, która działa na jednym szablonie, umieścisz go tam. Skąd pochodzą informacje i gdzie się one kończą?
Dan
Historia wygląda tak: mam wiele „stron podróży”, z których każda zawiera informacje o pewnej podróży, którą prowadzimy. Następnie klikają „rejestruj” i przenosi ich na stronę z formularzem rejestracyjnym (formularze grawitacyjne). Chciałbym, aby strona (lub opis na górze formularza) powiedziała „Wypełnij ten formularz, aby zarejestrować się na podróż xxxx”.
user3515
4

Według odpowiedzi PO w obrębie pytania:

Z twoją pomocą i trochę Googlinga, stworzyłem krótki kod, który zwraca wartość dowolnego parametru adresu URL. Oto on:

//THIS IS A CUSTOM SHORTCODE TO DISPLAY A PARAMETER FROM THE URL
function URLParam( $atts ) {  
    extract( shortcode_atts( array(
        'param' => 'param',
    ), $atts ) );
    return $_GET[$param];  
}
add_shortcode('URLParam', 'URLParam'); 

Używam takiego kodu, aby uzyskać trip_typez mojego adresu URL:

[URLParam param='trip_type']
Ethan Jinks O'Sullivan
źródło
To mi pomogło, dzięki! Jak uzyskać wartości z danych formularza post zamiast ciągu zapytania?
Amjad
1

Oto kolejny świetny sposób na osiągnięcie tego. Nie będzie to wymagało skrótów i automatycznie zaktualizuje każdą utworzoną stronę, na której występuje parametr „trip”!

1) Przejdź do folderu motywu i otwórz functions.php (lub utwórz go, jeśli go brakuje)

2) Dodaj następujący kod i zapisz:

<?php 
    add_filter( 'the_content', 'my_trip_filter' );

    function my_trip_filter( $content ) {
        if ( isset($_REQUEST['trip']) && is_single() ) {
            $content = "<h1>Fill out this form to register for the " . $_REQUEST['trip'] . " trip</h1>" . $content;
        }

        return $content;

    }
?>

Ten kod używa filtru_kontraktów do nadpisywania za każdym razem, gdy używasz funkcji the_content () do drukowania informacji o blogu. Wykrywa, czy żądana strona jest pojedynczą stroną / postem, a nie archiwum. Można do niego dodać dodatkową logikę lub przesłonięcia. Upewnij się, że zwrócisz zawartość $, a dowolna wiadomość zostanie zwrócona na ekran.

Cieszyć się!

Wtyczka WordPress
źródło