2014-11-09 3 views
0

내 응용 프로그램은 다음과 같은 구조를 가지고는 데이터베이스에 대한 자격 증명을 가지고있는 config.php에 포함되어 새로 고침 포함/PHP 파일에서 페이지를 리디렉션

main.php를.

page1.php 또한 config.php가 포함되어 있으며 AJAX를 통해 get_page1_content.php를 호출합니다.

get_page1_content.php 느릅 나무는 또한 config.php를을 포함하고 때마다 page1.php 요구 아약스를 통해이라고합니다.

내 URL은 항상 www.mysite.com/main.php이며 JavaScript를 통해 모든 pagesX.php 파일을로드합니다. page1.php, get_page1_content.php 및 main.php 첫번째 라인의

예 :

include("config.php"); 
$conf=new config(); 

나는 PHP 세션이 UP 있는지 확인하고 싶은 것이 아니라면 내가 페이지를 새로 고침합니다. 문제는 내 모든 파일의 config.php에 지금은 config.php를

을 포함한다는 것입니다 I 다음 __construct() 함수가 있습니다

if (isset($_SESSION['@ADMIN'])){ 
     $result=true; 
    } 
    else { 
     echo "<meta http-equiv=\"refresh\" content=\"0\">"; 
    } 

하지만이 작동하지 않는 것입니다. get_page1_content.php에 대한 응답으로 태그가 새로 고쳐지지만 브라우저가 새로 고침되지 않음을 알 수 있습니다.

내 아키텍처가 잘못 되었나요? 어떻게 해결할 수 있습니까?

미리 감사드립니다. 당신 경우 조건에 해당하는 경우, 다음 페이지는

답변

0

저는 많은 아약스가 있었기 때문에,이 함수는 AJAX 오류 일 때마다 호출됩니다.

// Deal with ajax calls errors   
$(document).ajaxError(function(e) { 
    if ($.cookie('sitecookie')!=null){ 
     console.log("cookie exists"); 
     console.log($.cookie('sitecookie')); 
     console.log(e); 
    } else { 
     alert("Your session expired. Please log in again."); 
     location.reload(); 
    } 
}); 
0

이있는 페이지를 새로 고칠 수 있습니다 get_page1_content.php에 세션을 추가하고 세션이 만료되면 오류 메시지를 반환하십시오. AJAX 스크립트에서 오류가 있는지 확인하고 필요한 경우 document.location.reload(true)을 사용하십시오. 자세한 내용은 https://developer.mozilla.org/en-US/docs/Web/API/Location.reload을 참조하십시오.

+0

그 코드는 마지막으로 config.php를 호출 한 PHP 파일을 새로 고치기 위해 헤더를 보냅니다. 그래서 그 요청 헤더 : 새로 고침 : 0; url =/베타/v4/adm/inc/get_page1_content.php 그리고 내 main.php 새로 고치지 않습니다 – NewK

+0

헤더 ("새로 고침 : 0"); 지금은 무엇입니까? – Milad

+0

방금 ​​구조를 모방하고 테스트 해 보았습니다. 내게 잘 작동합니다. – Milad

0

당신은 확인할 수 있습니다 새로 고침,

$page = $_SERVER['PHP_SELF']; 
    $sec = "0"; 
    header("Refresh: $sec; url=$page"); 

이 페이지마다 0초를 새로 고쳐집니다 : 그래서,

관련 문제