URL에 쿼리 문자열을 사용하여 페이지에 내용 표시


9

나는 그 사람이 어떤 페이지에서 왔는지에 따라 내 페이지에 무언가를 말하고 싶습니다. 해당 페이지에 대한 링크를 다음과 같이 설정할 수 있습니다.

www.example.com/page?parameter=myparameter

해당 매개 변수에 액세스하여 내 컨텐츠 어딘가에 페이지에 표시 할 수있는 방법이 있습니까?


죄송 합니다만 답변은 예입니다. 그러나 그대로 사용해서는 안됩니다. XSS 공격 을 방지하기 위해 사용자 입력 (쿼리 문자열 매개 변수와 같은)은 절대 비위생 화되지 않아야합니다 ! 지금까지의 모든 답변은 XSS에 취약 하며 최소한 경고를 포함해야합니다.
— kubi

답변:


4

PHP 세션을 사용하거나 요청에 대한 쿼리 객체를 찾거나 URL과 함께 $ _GET을 사용할 수 있지만 민감한 정보는 아닙니다.

이 같은;

URL에서 여행 이름을 가져옵니다

$tripname = $_GET['tripname'];

제목에 사용하십시오.

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


감사! 이것은 민감한 정보가 아닙니다. 어떻게하면 될까요?
— user3515

도움이 될 것입니다 : w3schools.com/php/php_get.asp
— Dan

감사! 페이지에 바로 넣을 수 있습니까, 아니면 템플릿 파일로 이동해야합니까?
— user3515

필요한 위치에 따라 하나의 템플릿에서 실행되는 페이지에만 표시되는 경우 해당 위치에 배치합니다. 정보는 어디에서 왔으며 어디에서 발생합니까?
— Dan

이야기는 다음과 같습니다. 나는 많은 '여행 페이지'를 가지고 있으며, 각 여행 페이지에는 우리가 달리는 특정 여행에 대한 정보가 있습니다. 그런 다음 "등록"을 클릭하면 등록 양식 (중력 양식)이있는 페이지로 이동합니다. "xxxx 여행에 등록하려면이 양식을 작성하십시오"라고 말하는 페이지 (또는 양식 맨 위에있는 설명)를 원합니다.
— user3515

4

질문에 대한 OP의 답변에 따라 :

귀하의 도움과 일부 인터넷 검색을 통해 모든 URL 매개 변수의 값을 반환하는 짧은 코드를 작성했습니다. 여기있어:

//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'); 

다음과 같은 단축 코드를 사용하여 trip_typeURL 을 가져옵니다 .

[URLParam param='trip_type']

감사합니다. 쿼리 문자열 대신 양식 게시물 데이터에서 값을 얻는 방법은 무엇입니까?
— Amjad

1

이것을 달성하는 또 다른 좋은 방법이 있습니다. 여기에는 단축 코드가 필요하지 않으며 매개 변수 "trip"이있는 곳에 만든 각 페이지를 자동으로 업데이트합니다!

1) 테마 폴더로 이동하여 functions.php 를여십시오 (또는없는 경우 작성하십시오)

2) 다음 코드를 추가하고 저장하십시오.

<?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;

    }
?>

이 코드는 the_content 필터를 사용하여 the_content () 함수를 사용하여 블로그 정보를 인쇄 할 때마다 대체 합니다. 요청 된 페이지가 아카이브가 아닌 단일 페이지 / 포스트인지 여부를 감지합니다. 추가 논리 또는 재정의를 추가 할 수 있습니다. $ content 를 반환 하면 원하는 메시지가 화면에 표시됩니다.

즐겨!

당사 사이트를 사용함과 동시에 당사의 쿠키 정책과 개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.