2013-04-08 2 views
1

나는 'if'조건이 있는데, 사실이라면 자바 스크립트로 다른 곳으로 사용자를 리디렉션하고 싶습니다. 그러나 조건이 맞는지 아닌지에 관계없이 항상 리디렉션되므로 작동하지 않는 것 같습니다.PHP 조건 - 자바 리디렉션

<?php 
if (isset($_SESSION['lol'])) { 
    ?><script type="text/javascript"> 
<!-- 
window.location = "http://www.test.org" 
//--> 
</script><?php 
} 
?> 

어떻게 가능합니까? 아니면 어떻게 작동시킬 수 있습니까?

<? 
    if (isset($_SESSION['lol']) { 
     header("Location: test.org"); 
    } 
?> 

편집 :

+0

당신은 문법이 errroR입니다 (isset ($ _ SESSION [ 'lol'])) - 닫는 대괄호가 없습니다. – matpol

+0

왜 JS 리다이렉트가'header ("Location : http://www.test.org" ; ' – Jon

+0

미안하지만 그냥 오타였습니다. 편집 됨. – user1406071

답변

3

그냥 대신 PHP에서 리디렉션하지만 현재의 코드를 사용하기를 원한다면, 당신은 스크립트 태그 에코해야합니다 얼마나 쉬운 자바 스크립트에 관계없이

<? 
    if (isset($_SESSION['lol'])) { 
     echo "<script>window.location.href = 'test.org';</script>"; 
    } 
?> 
+0

브라우저가 HTTP_HEADER를 방문 페이지로 전달하도록합니다. (test.org) – user1406071

+0

나는 본다. Javascript가 그렇게하면 (잘 모르겠다), 두 번째 코드를 사용할 수 있습니다. – GJK

+0

남자, 고맙습니다! :) – user1406071

0

<?php 
    header('Location: http://test.org'); 
    exit; 
?> 

우선, javascrip 경우가있을 수 있습니다 방법을 사용하면 PHP에서 리디렉션을 수행해야합니다, 보일 수 있습니다 사용자가 호환되지 않는 브라우저를 사용하고 있거나 NoScript가 설치되어있는 등의 브라우저 플러그인이있을 수 있습니다.

또한 리디렉션 후 코드 실행을 중지해야합니다. (그게 내 예에서는 exit입니다) 악의적 인 방문자가 리디렉션을 무시하고 어쨌든 페이지 콘텐츠를 읽을 수 없도록했습니다.