2016-06-12 2 views
-1

리디렉션을 실행하기 전에 BOTH $ _GET 조건이 참인지 확인하려고하지만 두 번째 조건이 참인지 확인하는 것입니다. 무슨 일이야 것은 내가 스스로 = testing123에 utm_campaign을 설정하면, 그것은 리디렉션되지 것입니다

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 

if (strpos($url,'this-is-an-example-post') !== false) { 
if($_GET['utm_campaign']==testing123 && $_GET['utm_source']==testing456) { 
function preserve_qs() { 
if (empty($_SERVER['QUERY_STRING']) && strpos($_SERVER['REQUEST_URI'], "?") === false) { 
    return ""; 
} 
return "?" . $_SERVER['QUERY_STRING']; 
} 
header("Location: http://example123.com/this-is-an-example-post" . preserve_qs()); 
exit; 
} 
} 

:

이 내가 가진 것입니다. 좋습니다, 둘 다 요구하기를 바랍니다. utm_campaign을 = testing123으로 설정하고 utm_source를 = testing456으로 설정하면 리디렉션됩니다. 이제는 utm_source 만 = testing456으로 설정하면 다시 리디렉션됩니다. 즉, 두 번째 조건을 확인하는 것입니다.하지만 사실이거나 스크립트가 종료되어야합니다. 이유는 알 수 없습니다. 그것이해야하는 방식으로 작동하지 않습니다.

이것은 Wordpress header.php 파일에 있습니다 (차이가 있는지 확실하지 않음).

+0

if 문의 분기에서 'preserve_qs'를 선언하므로 실행되지 않으면 함수가 정의되지 않습니다. 그 외에도'testing123'과'testing456'을'testing456'과'testing123'으로 변경해야합니다. 정의 된 상수가 없다면 말입니다. –

+0

preserve_qs는 헤더와 동일한 if 문에 있으므로 많이 변경되지는 않습니다 ... – user3528269

+0

오류보고를하면 정의되지 않은 상수에 대해 뭔가를 던졌을 것입니다. http://php.net/manual/en/function.error-reporting.php –

답변

0

사용 arround를 문자열을 인용

if($_GET['utm_campaign']== 'testing123' && $_GET['utm_source']=='testing456') { 
+0

이 상수가 정의되어 있지 않으면 각각 'testing456'및 'testing456'으로 평가되기 때문에 실제로 작동해야합니다. –

+0

매력처럼 일했습니다. 감사합니다! – Coalission

0

난 당신이 매개 변수가 설정되어 있는지 확인하고 코드를 조금 포맷한다고 생각합니다. 또한 함수를 선언 할 필요가 없습니다. preserve_qs().

if (strpos($url,'this-is-an-example-post') !== false) { 

    if(isset($_GET['utm_campaign']) && isset($_GET['utm_source']) && $_GET['utm_campaign']=='testing123' && $_GET['utm_source']=='testing456') { 
     $qs = "?" . $_SERVER['QUERY_STRING']; 
     if (empty($_SERVER['QUERY_STRING']) && strpos($_SERVER['REQUEST_URI'], "?") === false) 
      $qs = ""; 

     header("Location: http://example123.com/this-is-an-example-post" . $qs); 
     exit; 

    } 

} 
+0

고마워요, 이제이 방법으로 청소했습니다. – Coalission

+0

@Coalission 귀하의 환영 :) –