ectouch 最新版的调试方式 。。ectouch很容易出现 404 错误 因为他是thinkphp写的

时间:2022-12-22 10:16:58


打开include/Convention.php


/* 访问控制 */
defined('IN_ECTOUCH') or die('Deny Access');

return array(
	/* 应用配置 */
	'APP' => array(
		'DEFAULT_TIMEZONE' => 'PRC', // 时区设置
		/* 日志和错误调试配置 */
		'DEBUG' => false, // 是否开启调试模式,true开启,false关闭
		'LOG_ON' => false, // 是否开启出错信息保存到文件,true开启,false不开启
		'LOG_PATH' => ROOT_PATH . 'data/cache/log/', // 出错信息存放的目录,出错信息以天为单位存放,一般不需要修改
		'ERROR_URL' => '', // 出错信息重定向页面,为空采用默认的出错页面,一般不需要修改
修改这里
'DEBUG' => <span style="font-family: Arial, Helvetica, sans-serif;">true</span>
, // 是否开启调试模式,true开启,false关闭



ectouch 最新版的调试方式 。。ectouch很容易出现 404 错误 因为他是thinkphp写的

例如

:(





Call to undefined function eixt()

出错信息

FILE: D:\wwwroot\szny\wwwroot\mobile\include\apps\default\controller\FlowController.class.php  LINE: 1408

错误级别: 致命错误(E_ERROR)


==============================================


  /**
     * 输出错误信息
     */
    protected function showError() {
        //如果开启了日志记录,则写入日志
        if (C('LOG_ON')) {
            self::write($this->message);
        }


        $error_url = C('ERROR_URL');
        //错误页面重定向
        if ($error_url != '') {
            echo '<script language="javascript">
                if(self!=top){
                  parent.location.href="' . $error_url . '";
                } else {
                 window.location.href="' . $error_url . '";
                }
                </script>';
            exit;
        }


        if (defined('DEBUG') && false == DEBUG) {
            @header("HTTP/1.1 404 Not Found");
            exit;
        }


========================

ectouch.php

try {
    /* 常规URL */
    defined('__HOST__') or define('__HOST__', get_domain());
    defined('__ROOT__') or define('__ROOT__', rtrim(dirname($_SERVER["SCRIPT_NAME"]), '\\/'));
    defined('__URL__') or define('__URL__', __HOST__ . __ROOT__);
defined('__ADDONS__') or define('__ADDONS__', __ROOT__ . '/plugins');
    defined('__PUBLIC__') or define('__PUBLIC__', __ROOT__ . '/data/common');
    defined('__ASSETS__') or define('__ASSETS__', __ROOT__ . '/data/assets/' . APP_NAME);
    /* 安装检测 */
    if (! file_exists(ROOT_PATH . 'data/install.lock') && APP_NAME !== 'install') {
        header("Location: " . url('install/index/index'));
        exit();
    }
    /* 控制器和方法 */
    $controller = CONTROLLER_NAME . 'Controller';
    $action = ACTION_NAME;
    /* 控制器类是否存在 */
    if (! class_exists($controller)) {
        E(APP_NAME . '/' . $controller . '.class.php 控制器类不存在', 404);
    }
    $obj = new $controller();
    /* 是否非法操作 */
    if (! preg_match('/^[A-Za-z](\w)*$/', $action)) {
        E(APP_NAME . '/' . $controller . '.class.php的' . $action . '() 方法不合法', 404);
    }
    /* 控制器类中的方法是否存在 */
    if (! method_exists($obj, $action)) {
        E(APP_NAME . '/' . $controller . '.class.php的' . $action . '() 方法不存在', 404);
    }
    /* 执行当前操作 */
    $method = new ReflectionMethod($obj, $action);
    if ($method->isPublic() && ! $method->isStatic()) {
        $obj->$action();
    } else {
        /* 操作方法不是Public 抛出异常 */
        E(APP_NAME . '/' . $controller . '.class.php的' . $action . '() 方法没有访问权限', 404);
    }
} catch (Exception $e) {
    EcError::show($e->getMessage(), $e->getCode());
}