2016-08-30 2 views
-3

나는 다음과 같은 두 조각이 있습니다결합 헤더와 반드시 htmlspecialchars

<?php header('Location: example.com/login.php?name='); ?> 

<?php echo 'Hello' . htmlspecialchars($_GET["name"]) . ', welcome'; ?> 

내가 example.com/login.php?name== 후 반드시 htmlspecialchars 인코딩 이름을 추가 할 수 있지만이 작업을 수행하려고 할 때 , 그것은 작동하지 않았다.

어떻게하면됩니까?

+1

로 사용자를 리디렉션 것이라고 가정 "을 시도했지만 작동하지 않았다"- 당신은 무엇을하려고 했습니까? – noahnu

+1

당신의 코드에 이미 이런 일이 일어나도록하는 데 필요한 모든 것을 감안할 때, 정신 블록이 당신을 그렇게하지 못하게하는 것은 무엇입니까? –

+0

@noahnu 나는 이것을 시도했다' ' –

답변

0

당신은 문자열 연결을 사용할 수 있습니다;

  • 가 난 후 명시 적 exit() 전화를 추가 : PHP에서, 당신은 당신이 볼 수 마침표 (.)

    <?php 
    header('Location: http://www.example.com/login.php?name=' 
          . htmlspecialchars($_GET['name'])); 
    exit(); 
    

    다른 몇 가지 변화와 함께 두 개의 문자열 (CONCATENATE 문자열)를 결합 할 수 있습니다 위치 헤더를 설정하십시오. 이렇게하면 더 이상 코드를 실행하지 않고 리디렉션이 발생하게되며 이는 종종 바람직하지 않습니다.

  • 위치에 프로토콜 (http, https)을 추가했습니다.

$_GET['name'] = 'Mary';, 이것은

http://www.example.com/login.php?name=Mary 
+0

감사합니다. Chris! 효과가있다. –

0

다시 시도 - 따옴표

<?php header("Location: example.com/login.php?name=htmlspecialchars($_GET['name'])"); ?> 
+0

감사합니다. –