2013-04-02 2 views
0

이것은 쉽지는 않지만 작동하지 않을 것 같습니다. 쿼리 문자열에서 변수를 검사하고 있습니다. 예를 들어 리다이렉트합니다. 새로운 페이지. 아니요를 반환하면 양식 위에 오류 메시지가 표시됩니다.PHP 유효성 검사 쿼리 문자열 if 문

내 문제는 오류 메시지를 표시하는 것입니다, var = Yes 일 때 리디렉션되지만 var = no를 주었을 때 오류 메시지를 표시 할 수 없습니다. $ errormsg를 헤더 (..)로 대체하면; 그것은 작동 그래서 그것은 내 if 진술 아니에요.

if (isset($_GET['var'])) { 
      $var = $_GET['var']; 
      $errormsg = ''; 
      if ($var == 'Yes') { 
       header('Location: http://www.google.com'); exit; 
      } 
      else if ($var == 'no') { 
       $errormsg = 'This is an error message.'; 
      } 

     }; 

는 그리고이 양식 위의 오류 메시지입니다 :

<div class="errormsg"><?php echo $errormsg; ?></div> 

내 PHP 능력이 제한되어 나는 내가 잘못 뭘하는지 알아낼 수 없습니다, 어떤 도움을 이해할 수있을 것이다.

감사합니다.

+3

어리석은 질문 ...하지만 "예"같은 자본을 가진 "아니오"이어야합니까? – Mattt

+0

간단하다. 실제로는 & var = no이다. 이것은 분리 된 서비스에서 나옵니다. – user1272433

+0

리다이렉트가 'else if ($ var =='no ') {'부분에서 작동한다면, $ errormsg가 같은 범위에 있지 않거나 덮어 쓰여질 가능성이 있습니다 어딘가에 빈 값이 있습니다. – dbf

답변

0

내 생각은 $ var에 당신이 (기대하고 무엇을 반환하지 않습니다되는 가능하게 "아니오"대신 mjayt는 의견 제안 "아니오"가.

첫 번째 단계는 디버깅, 그리고 결정하는 것이 무엇 $ var에 실제로 반환합니다. 단순 인쇄 문을 시도하고 거기에서 이동합니다.

+0

것은 "header ('Location : http://www.google.com'); exit;" $ var == 'no'문에서 그것은 나를 리디렉션합니다. 그래서 나는 $ errormsg로 뭔가 잘못하고있을 것입니다. – user1272433

0

시도를 어떤 HTML없는 경우 블록 바로 아래에 $에서 errormsg 반향. 텍스트가 반환되는 경우를 참조하십시오.

당신이 그 반을 제거 할 수 생각 마지막 중괄호의 콜론도

+0

그럴 수는 없지만 WordPress 사이트에 있습니다. 머리말에서 PHP를 페이지 템플릿으로 옮겼습니다. 그리고 그것은 작동했습니다 ... 제가 처음 테스트했을 때 어떤 이유로 리디렉션은 헤더에없는 경우 작동합니다. 이제는 모든 사람의 도움 덕분에 고맙게 여긴다. 그러나 나는 그것을 해결 한 것 같다. – user1272433