2014-07-19 1 views
1

URL을로드하는 데 AJAX를 사용하는 색인 ​​파일이 있습니다.세션이 존재하지 않으면 인덱스 파일 만들기, AJAX를 통해 로그인 화면로드

$(function(){ 
    $('#dashboard').click(function() { 
    var req = $.ajax({ 
     type  : 'POST', 
     url   : 'dashboard.php', 
     dataType : 'html' 
    }); 
     req.done(function(data){ 
      $('#loadcontent').empty().append(data); 
     }); 
    }); 
    $('#reports, #analytics').click(function() { 
     alert('Coming Soon'); 
    }); 
    $(#login).load(function() { 
    var req = $.ajax({ 
     type  : 'POST', 
     url   : 'loginscreen.php', 
     dataType : 'html' 
}); 

색인 페이지에서 개요를 선택하면 화면 중간에로드됩니다. 이것은 내가 필요한 것입니다. 그러나 화면 중간에 로그인 화면을로드하는 세션이 없으면 방법이 있습니까?

나는이

<?php 
session_start(); 
if(! $_SESSION['loggedIn']) { 
    // not logged in redirect direct to login page 
    echo "<div id='loadcontent' class='col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main'>"; 
    header('Location: loginscreen.php'); 
    echo "</div>"; 
} 
require_once(dirname(__FILE__).'/config.php') 
?> 

그러나이 페이지 나 화면의 중앙에 원하는 "loginscreen.php"로 리디렉션됩니다 시도 순간

,이를 추가하는 방법은 무엇입니까 내 에이 잭?

답변

1

브라우저에서 리디렉션이 발생하면 전체 창을 리디렉션합니다. 당신이 할 수있는 한가지는 다음과 같습니다 :

<?php 
session_start(); 
if(! $_SESSION['loggedIn']) { 
    // not logged in redirect direct to login page 
    echo "<div id='loadcontent' class='col-sm-9 col-sm-offset-3 col-md-10 col-md-offset-2 main'>"; 
    include "loginpage.php"; 
    echo "</div>"; 
    die(); 
} 
require_once(dirname(__FILE__).'/config.php') 
?> 

물론 이것은 중복 된 내용으로 인해 귀하의 SEO에 해를 입힐 수 있습니다. 이 문제를 해결하려면 로그인하지 않은 경우 빈 파일을 반환하는 것이 좋습니다. 자바 스크립트가 빈 HTML 파일을 감지하면 (탐색 막대와 같은 중요한 요소가 있는지 확인하기 만하면) 로그인 페이지가 대신 요청됩니다. 이렇게하면 약간의 오버 헤드가 줄어들어 무언가를 할 때마다 여러 개의 HTTP 요청을하지 않아도됩니다.

+0

나는 지금도 같은 결과가있을 것이라고 생각했다. 흠, 지금은. 색인 페이지는 링크를 클릭 할 때까지 중간에 아무 것도로드하지 않습니다. 설명하는 것보다 URL이 쉬울까요? 감사합니다. – Runt

+0

@Runt 당신은 지금 귀하의 사이트에 접속 했습니까? if 문을 주석 처리하면 작동합니까? 오류? 어떤 링크를 클릭합니까? –

+0

예, 현재 로깅 문제가 있습니다. 그러나 이것은 별개의 문제 일 수 있습니다. – Runt

관련 문제