2013-07-23 49 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,那么出现问题,请加载安装/更新屏幕。

一系列其他值用于创建智能安装/更新过程。也许有点比你想创建,但没有安装系统是没有诊断的傻瓜证明。考虑到在初始安装期间是否有故障,用户会篡改安装或黑客。因此,诊断系统与安装相关联,而不是对文件进行转发,我希望它仍然存在。我只是调用一些函数。