2012-08-07 3 views
1

나는 아주 간단한 질문이 있어야한다. 다음 간단한 PHP if/else 문을 사용하고 있습니다. nomobile이 정의되어 있지 않거나 "true"가 아닌 경우 아래에 표시된 javascript가 실행되어야합니다. 참인 경우, 실행해서는 안됩니다. 그러나 nombobile = true 일 때도 자바 스크립트가 실행 중입니다. 모든 것을 엉망으로 만드는 사소한 오자가있을 수 있지만, 나는 틀린 것을 찾기 위해 미친 듯이 운전하고 있습니다. 그리고 그것을 알아 내지 못합니다.PHP IF/Else Not working

<?php 
    if ($_GET["nomobile"]!="true") 
    {echo ' 
    <script type="text/javascript"> 
    if (screen.width <= 699) { 
    document.location = "http://www.heliohost.org/m/"; 
    } 
    </script>';} 
    else {} ?> 
+4

문자열이 "true"로 설정되었거나 값이 true 인 부울을 의미합니까? – andrewsi

+1

'var_dump ($ _ GET [ 'nonmobile'])'은'if' 문장 위에 추가 될 때 무엇을 생성합니까? – Matt

+0

저는 PHP에 익숙하지 않지만 문자열이라고 생각합니다. http://www.heliohost.org/?nomobile=true에 가면/m/ – Christopher

답변

2

$ _GET 값이 설정되어 있는지 확인하지 않았습니까? 코드에 그것을 당신이 문을 복용하고 변환하면이를 생산해야합니다

nomobile 정의되지 않았거나 동일하지 않을 경우 "true"로에

if (!isset($_GET["nomobile"]) || $_GET["nomobile"] != "true"){ ... } 

이 설정되어 있지 않은 경우 발생하는 문제가있을 수 있습니다 .

도움이 되었기를 바랍니다.

0
if(!isset($_GET['nomobile']) || (isset($_GET['nomobile']) && $_GET['nomobile'] != "true")){ 
    echo '<script type="text/javascript"> 
    if (screen.width <= 699) { 
     document.location = "http://www.heliohost.org/m/"; 
    } 
    </script>'; 
} 
+1

''isset() '를 두 번 호출하는 이유는 무엇입니까? 'if (isset ($ _GET [ 'nomobile']) && $ _GET [ 'nomobile']! = 'true')'이면 충분합니다. – Crontab

+0

아, 단지 영어로 번역 된 코드 일뿐입니다. 존재하지 않거나 "사실"이 아닌 경우 _ 존재합니다. – Prasanth

-2

큰 따옴표를 삭제하십시오.

<?php 
    if ($_GET["nomobile"]!=true) { 
     echo '<script type="text/javascript"> if (screen.width <= 699) { document.location = "http://www.heliohost.org/m/"; } </script>'; 
    } 
    else {} 
?> 
+1

이것은 해결책이 아니며 [OP의 코드와 동일합니다] (http://viper-7.com/uS5vv1)입니다. – nickb

1

나는 문제가 당신의 자바 스크립트로 생각합니다. screen.width숫자으로 평가되는지 699 이하로 경고하는지 (또는 로깅할지 또는 수행할지 선택) 확인하십시오. 내가 http://www.heliohost.org/?nomobile=true로 이동하려고 할 때

나는 코드에서 자바 스크립트를 참조 명확히합니다. http://www.heliohost.org/ 또는 http://www.heliohost.org/?nomobile=foo으로 이동하려고하면 Javscript가 표시되지 않습니다. 어떤 점에서 Javascript는 PHP 코드에 문제가있는 것이 아니라 PHP가 기대하는 바를 수행하고 있다는 것을 나타냅니다.

+0

문제는 PHP가 실행되어서는 안되는 경우에 실행되는 것입니다. 자바 스크립트가이 문제를 일으키지 않는다 – PriestVallon

+0

@PriestVallon 내 테스트에 따르면 PHP 코드는 정상적으로 실행되고 자바 스크립트가 삽입 될 때 주입된다. 당신은 당신의 주장을 시험 했습니까, 아니면 당신은 논쟁 중입니까? – Crontab

+0

나는 단지 If/Else가 JS가 아니라 문제 였다고 주장했다. 논쟁의 여지가 없다. – PriestVallon