2013-07-23 91 views
0

比方說,我創建了一個PHP腳本,我想每次有人打開它在本地主機/他的Web服務器,重定向到安裝目錄創建一個PHP安裝腳本

我一定要修改的.htaccess並添加DirectoryIndex Install.php還是有另一種方式?

在此先感謝:)

P.S:我已經創建了安裝腳本。

+0

您可以在http://www.reddit.com/r/webdev/ .in上提出這類問題,這裏的人只是幫助您的代碼。你需要製造一些東西。 –

+1

請告訴我們你已經嘗試過了。 – Pogrindis

+0

安裝腳本的用途是什麼?如果它正在安裝數據庫表,則應檢查這些數據庫的存在,然後處理安裝。請記住,安裝可能已被中止或損壞。 – BenM

回答

1

您可以檢查安裝與添加以下代碼腳本的索引文件頭:

隨着文件存在:

//if the install file doesn't exist, the script hasn't been installed. 
if(file_exists(dirname($_SERVER['SCRIPT_FILENAME']).'/install.php')) 
{ 
    $folder = dirname($_SERVER['SCRIPT_NAME']); 
    $path = rtrim($_SERVER['HTTP_HOST'].$folder, '/\\').'/'; 
    header('Location: http://'.$path.'install.php'); 
    die; 
} 

隨着DB存在:

//if the install file doesn't exist, the script hasn't been installed. 
if(mysql_select_db('db_name')) 
{ 
    $folder = dirname($_SERVER['SCRIPT_NAME']); 
    $path = rtrim($_SERVER['HTTP_HOST'].$folder, '/\\').'/'; 
    header('Location: http://'.$path.'install.php'); 
    die; 
} 
+0

這認爲用戶在「安裝」後刪除install.php並不總是正確的方法,例如,如果更新通過安裝腳本本身運行。 – Pogrindis

+0

安裝完成與否,您如何看待安裝?你可以用db存在或任何東西來改變install.php。 – Bora

+0

同意,只是爲了給它一個更全面的答案,我會建議將DB檢查添加到您的答案! – Pogrindis

0

我總是有多個值插入到數據庫以指示安裝狀態。如果缺少這些值,則表示未執行安裝或需要運行安裝來修復損壞的安裝。

腳本中的同一個系統用於觸發更新。因此,請先考慮一下。你想讓用戶看到更新信息和按鈕來初始化更新嗎?

我把安裝看作是一種狀態,而不僅僅是動作,即我讓我的應用程序經常檢查安裝狀態,而且當用戶沒有執行操作以避免太多處理時,我這樣做。如果安裝時發現有問題,我的應用程序會強制用戶查看安裝/更新屏幕,其中將顯示關於可能的故障的信息。

沒有轉發完成。相反,在我的腳本很早之前,我有一個if參數,用於檢查指示整個安裝狀態的變量。因此,如果$ installstate = true,那麼正常加載應用程序,如果$ installstate = false,那麼出現問題,請加載安裝/更新屏幕。

一系列其他值用於創建智能安裝/更新過程。也許有點比你想創建,但沒有安裝系統是沒有診斷的傻瓜證明。考慮到在初始安裝期間是否有故障,用戶會篡改安裝或黑客。因此,診斷系統與安裝相關聯,而不是對文件進行轉發,我希望它仍然存在。我只是調用一些函數。