2014-03-24 2 views
-1

내 HTML 파일 맨 위에서 실행되는 PHP 로그인 스크립트가 있습니다. 오프라인으로 사용할 때이 PHP 코드를 실행하지 않는 방법이 있습니까?오프라인 일 때만 PHP 스크립트를 실행하십시오.

목표는 다음과 같습니다. 휴대 전화에 캐싱 할 수있는 웹 앱이 있습니다. 사용자가 네트워크가없는 경우에도 앱을 열고 사용할 수 있어야합니다. 그러나 오프라인 일 때는 인증을 위해 사용자 데이터베이스에 연결할 수 없습니다.

그래서 :

  • 온라인 때 : loginscript

나는 이런 식으로 뭔가 생각했다 "건너 뛰기":

<?php 

function getStatus($ip,$port){ 
    $socket = @fsockopen($ip, $port, $errorNo, $errorStr, 3); 
    if(!$socket) return "offline"; 
    else return "online"; 
} 

echo getStatus("sitename.com", "80"); 
?> 

을 로그인 스크립트

  • 오프라인으로 실행 하지만 "echo online"대신 php 스크립트를 실행해야합니다. 오프라인 일 때 "아무것도하지 마십시오." 하지만 php 코드에서 "echo"PHP 코드를 사용할 수 없습니다.

    처리 방법에 대한 아이디어가 있으십니까?

  • 답변

    4

    PHP는 클라이언트 측이 아니라 서버 측에서 실행됩니다. 웹 사이트가 캐시되면 웹 서버에 전혀 연락하지 못할 수도 있습니다.

    사실 서버를 오프라인으로 연결하는 것은 불가능합니다. 서버와 전혀 접촉하지 않기 때문입니다!

    +0

    스크립트도 캐시 된 경우를 아시겠습니까? – bafplus

    +0

    @bafplus PHP 스크립트는 클라이언트로 전송되지 않으므로 캐시되지 않습니다. _is_가 클라이언트에게 보낸 것은 PHP 스크립트 _returns_입니다. 이 브라우저는 캐시 할 수 있습니다. – kba

    +0

    그렇다면 오프라인에서 헤더에 include : some.php 파일이 브라우저에서 발생하면 어떻게됩니까? 페이지를 건너 뛰고 정상적으로 처리합니까? (만약 그렇다면 나는 이미 저장되어 있습니다 ;-)) – bafplus

    0

    PHP는 서버 측에서 작동하므로 사용자가 오프라인 일 때 PHP는 로그인 할 수 없습니다. 캐싱 만 출력 파일의 수행 등

    HTML, JS, CSS 이미지

    등하지만 Cookies 수정할 수 없습니다 * 연결없이 * (actully들은 자바 스크립트가 될 수 있음) 섬기는 사람.

    +0

    오프라인 일 때 로그인 스크립트를 전혀 사용하지 않는 것이 좋습니다 ... 따라서 오프라인 일 때 인증이 없을 것입니다 (사용자가 로그인하고 온라인 상태가 된 후에 만 ​​사이트가 캐시 됨) – bafplus

    +0

    사용자가 오프라인 일 경우 서버에 연결하고 로그인하십시오. – user3452098

    +0

    그래서 내가 사용자가 오프라인 일 때 인증 스크립트가로드되는 것을 원하지 않는 이유는 다음과 같습니다. 그러면 모든 콘텐츠가 표시됩니다. 사례 온라인 : 사용자 인증이로드되었습니다. 사례 오프라인 : 사용자 인증이 전혀 사용되지 않고 모든 콘텐츠를 볼 수 있습니다. – bafplus

    관련 문제