文件作用解析之:application_top.php

1、首先检查访问的链接中,有没有携带系统禁用的参数,如'GLOBALS', '_COOKIE'等,由$paramsToAvoid来指定。
如果包含有,则返回:header('HTTP/1.1 406 Not Acceptable');并退出。
如果你这样访问: http://localhost/zencart/index.php?GLOBALS=1,你会得到一片空白,并且控制台会报错:"NetworkError: 406 Not Acceptable - http://localhost/zencart/index.php?GLOBALS=1"

2、其次,对于允许的参数进行检查,由$paramsToCheck数组指定。
如果里面的任意一个参数的值以http开头,或者包含了//,或者长度大于43,也同样不允许,一样会得到406的错误。
或者:http://localhost/zencart/index.php?main_page=jjjjjjjjjjjjjjjjjjkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk  
都会得到406的访问错误。

3、检查是否有用户自定义的配置文件,有就加载:
if (file_exists('includes/local/configure.php')) {
  /**
   * load any local(user created) configure file.
   */
  include('includes/local/configure.php');
}

4、判断文件includes/configure.php是否存在,如果不存在,将会设置报错字符串,返回一个页面:require('includes/templates/template_default/templates/tpl_zc_install_suggested_default.php');
并退出。该页面内容大概是说:

您好,多谢使用 Zen Cart® 中文版

看到本页面有几个原因:

  1. 您是第一次使用 Zen Cart® 中文版 且还未正常安装。
    如果是这样的话, 请先通过FTP上传 "zc_install" 目录,然后在浏览器中运行 zc_install/index.php (或者刷新本页面查看链接)。 

  2. 您的 /includes/configure.php 和 /admin/includes/configure.php 文件中的路径设置不正确,或者数据库参数不正确。
    如果您修改过 configure.php 文件,或者移动了安装目录,那么请更新设置。
    可访问 Zen Cart® 中文论坛获取更多信息。
  3. 其他*重要*说明: includes/configure.php not found

开始安装 ...

  1. 安装说明请点这里: 文档
  2. 请先通过FTP上传 "zc_install" 目录,然后在浏览器中运行 zc_install/index.php (或者刷新本页面查看链接)。
  3. Zen Cart® 中文论坛的新手上路栏目有基本的入门资料。

5、检查文件路径和结构是否正确
在上面的includes/configure.php中会定义一个常量:
  define('DIR_FS_CATALOG', 'D:/PHPWeb/zencart/');
如果没有这个常量,或者,这个常量下的includes/class不是一个目录,则认为要么configure.php是无效的,要么zencart的文件结构不正确。此时也会返回那个zc_install_suggestz的页面。


6、加载includes/extra_configures下的所有配置文件,
大概有关于邮箱发送的,是否打印log等。

7、设置变量$loader_file='config.core.php';
然后require文件:includes/initsystem.php
这个initsystem.php文件是一个壳子,根据loader_file文件的内容,来自动加载loader_file里指定的文件。
1)首先判断auto_loaders/overrides/是否存在config.core.php文件,如果是,就设置base_dir为auto_loaders/overrides/,否则,就是auto_loaders/。
判断base_dir目录下是否有config.core.php文件,如果有,就加载(include),没有,则不理会。
2)假设存在config.core.php文件,
这个文件定义了一个比较大的二维数组:
$autoLoadConfig[0][] = array('autoType'=>'class',
                                'loadFile'=>'class.base.php');
...
/**
 * Breakpoint 180.
 *
 * require('includes/init_includes/init_header.php');
 *
 */
  $autoLoadConfig[180][] = array('autoType'=>'init_script',
                                 'loadFile'=> 'init_header.php');

3)引入includes/auto_loaders下的php文件,如果在overrides目录下存在同名文件,则加载overrides下的同名文件。
这些文件都是在补充$autoLoadConfig这个变量。

8、再一次做检查,确定安装ok,
然后require('includes/autoload_func.php');
这个autoload_func.php就用来真正加载$autoLoadConfig这个数组里的所有文件。这些文件分布在includes/init_includes下,includes/classes下,



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值