2014-03-24 188 views
-1

我有一個php登錄腳本,它從我的html文件的頂部執行。有沒有辦法不離線使用它時不執行這個php代碼?只在脫機時執行php腳本

的目標是: 我可以在手機上緩存web應用程序。 當用戶沒有網絡時,應該仍然可以打開和使用該應用程序。 但是,當脫機時,它無法連接到用戶數據庫進行身份驗證。

所以:

  • 當在線:執行登錄腳本
  • 離線時: 「跳過」 的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"); 
?> 

但是,當脫機「不做任何事」時,它應該執行php腳本而不是「echo online」但是你不能在php代碼中「回顯」php代碼。

有關如何處理此問題的任何想法?

回答

4

PHP在服務器端執行,而不是在客戶端執行。如果一個網站被緩存,你甚至可能根本就沒有聯繫網絡服務器。

其實,使得在脫機狀態下是不可能的服務器上執行的PHP代碼,因爲你不會在與服務器的所有聯繫!

+0

當腳本還被緩存時應答? – bafplus

+0

@bafplus PHP腳本不會被緩存,因爲它永遠不會發送到客戶端。什麼_is_發送到客戶端是什麼PHP腳本_returns_。這您的瀏覽器可以緩存。 – kba

+0

那麼,如果瀏覽器在離線時遇到include頭文件中的some.php文件,會發生什麼情況?它是否正常跳過並處理頁面? (如果是的話,我已經保存;-)) – bafplus

0

PHP在服務器端工作,所以當用戶離線時它將無法登錄。 緩存完成只的輸出文件,如

HTML,JS,CSS,圖像

等,但Cookies不能編輯*(actully它們可以是由JavaScript)*沒有連接到服務器。

+0

這個想法是在離線時根本不使用登錄腳本...因此,離線時不會使用身份驗證(站點僅在用戶登錄和聯機後才被緩存) – bafplus

+0

如果用戶無法離線連接到服務器並登錄。 – user3452098

+0

這就是爲什麼我不想在用戶離線時加載認證腳本...然後只是顯示所有內容。 在線案例:Userauthentication已加載, 案例離線:Userauthentication根本不使用,所有內容都可見 – bafplus