2009-12-27 20 views
0

I'm trying to make a small script for my site where the user would go to the page, lets say, http://example.com/test.php?p=22입니다. 거기에서 스크립트는 'p'변수를 읽고 http://example.com/diffdir/22.exe으로 연결되는 하이퍼 링크가 표시됩니다. 지금까지, 이것이 내가 코딩 한 것입니다 : 이제정확히 a <a href> hyperlink with a variable

<?php 
$test = $HTTP_GET_VARS['p']; 
?> 
<a href="diffdir/".$test.">Test</a> 

, 나는 <a href>$test 트릭을 할 것이라고 inserthing하지만 것은 슬프게도 하이퍼 링크는 http://example.com/diffdir에 이르게 생각합니다. 아무도 내가 잘못하고있는 것을 정확하게 지적하지 않겠습니까?

답변

2
  • $HTTP_GET_VARS가 사용 $_GET 대신을 시도되지 않습니다.
  • 귀하의 '링크'방식으로, PHP 태그의 외부, 그래서 인터프리터가 $test, 따라서, 원하는 값으로 채울 수없는 실행되지 않습니다 ..

    <?php 
        $test = $_GET['p']; 
    ?> 
    <a href="diffdir/<?php echo $test ?>">Test</a> 
    
+0

내가 사용하는 경우에도 (스크립트를 똑같이 복사하고 붙여 넣기 만해도) http://test.com/diffdir으로 이동합니다. – PuppyKevin

+0

스크립트가 PHP에 의해 전혀 파싱되지 않을 수 있습니까? 실제 HTML 소스 코드를 여기에 붙여 넣을 수 있습니까? –

+0

당신이 보는 것은 내가 가진 전부입니다. 간단하고 p 변수를 잡고 링크에 삽입하지 않습니까? – PuppyKevin

0

HTTP_GET_VARS 대신 $_GET을 사용하면 deprecated입니다.

는, 당신은 PHP 태그에 변수를 넣어해야합니다

<a href="diffdir/<? echo $test; ?>">Test</a> 
0

직접 $ _GET의 URL 매개 변수에서 HTML 출력으로 데이터를 전달하면 보안 위협이 발생할 수 있습니다. 누구든지 스크립트로 연결되는 링크를 만들 수 있으며 링크를 따르는 사람에게 유해한 자바 스크립트 코드, 원치 않는 광고 등을 전달하는 페이지에 아무 것도 전달할 수 없습니다.

이전에 가능한 위협에 대한 필터 입력 데이터 무엇이든 그것을 사용합니다.

+0

왜 물론. 나는 주 스크립트를 작동시키고있다. 그 후에는 2 개의 숫자로만 작업 할 것입니다. – PuppyKevin