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.