我在stackoverflow上发现了很多关于这个主题的问题,但是没有一个适合我到目前为止遇到的问题:
当我将基本配置文件中的Scriptpath设置为:
时define("SCRIPTPATH","inc/img/");
我最终得到了错误:
WARNING: REQUIRE_ONCE(C:/XAMPP/HTDOCS/INC/IMG//CONF.PHP): FAILED TO OPEN STREAM: NO SUCH FILE OR DIRECTORY IN
所以我将路径更改为适合我的localhost设置,
localhost/MyProjet/inc/img
现在我没有PHP错误,但是javascript错误。无论哪种方式,我选择我做错了。这里的问题是什么?
JS错误消息:
Uncaught TypeError: Cannot read property 'msie' of undefined
谢谢!
答案 0 :(得分:1)
实际上,我认为所有你必须改变(删除尾随斜杠)
define("SCRIPTPATH","inc/img");
答案 1 :(得分:0)
对于每个有类似问题的人 - 我找到了答案,或者至少是为什么会这样做的原因:
phpChart似乎有一个bug或者至少有一些非常奇怪的预期行为。基本上这一切都归结为:当加载php代码形式phpChart时,脚本获取相对SCRIPTPATH并将其添加到localhost根目录,因此您必须调整您的SCRIPTPATH,就像您在localhost根目录中一样。但是,当生成javascript代码时,它会以不同方式生成它,并使用它包含的index.php文件作为根。这会导致路径问题,因为您无法立即解决这两个标准。我认为这是一个错误。
使用unphp.net解码混淆的phpChart代码后找到此功能。你得到这样的东西:
<?php ?><?php if (str_replace('\', ' / ',$_SERVER['DOCUMENT_ROOT']) == SCRIPTPATH) { define('_ABS_PATH_pC', '');} else { define('_ABS_PATH_pC', SCRIPTPATH); } require_once($_SERVER['DOCUMENT_ROOT'].' / '. _ABS_PATH_pC .' / conf . php'); class C_Config { private $_E901A667AA80A80858A0CE75D1AB5503 = ''; protected $debug; private $default_js = array(); private $default_css = array(); private $load_initial_js = array(); private $load_initial_css = array(); private $load_jquery_plugins = array(); public function __construct() { } public function set_jqplot_config(){ $this->_E901A667AA80A80858A0CE75D1AB5503 = SCRIPTPATH; $this->debug = (defined('DEBUG'))?DEBUG:false; $this->default_js = array('jquery . jqplot'); $this->default_css = array('jquery . jqplot'); $this->load_initial_js = array_merge($this->default_js, explode(', ', ADDITIONAL_JS_FILES)); $this->load_initial_css = array_merge($this->default_css, explode(', ',ADDITIONAL_CSS_FILES)); } public function get_jqplot_plugin_list(){ return $this->load_jquery_plugins; } public function get_scriptpath(){ return $this->_E901A667AA80A80858A0CE75D1AB5503; } public function get_default_js_to_load(){ return $this->default_js; } public function get_default_css_to_load(){ return$this->default_css; } } ?>
您必须将其更改为:
<?php ?><?php define('_ABS_PATH_pC', SCRIPTPATH); require_once(ABS_PATH_pC . '/conf.php'); class C_Config { private $_E901A667AA80A80858A0CE75D1AB5503 = ''; protected $debug; private $default_js = array(); private $default_css = array(); private $load_initial_js = array(); private $load_initial_css = array(); private $load_jquery_plugins = array(); public function __construct() { } public function set_jqplot_config(){ $this->_E901A667AA80A80858A0CE75D1AB5503 = SCRIPTPATH; $this->debug = (defined('DEBUG'))?DEBUG:false; $this->default_js = array('jquery . jqplot'); $this->default_css = array('jquery . jqplot'); $this->load_initial_js = array_merge($this->default_js, explode(', ', ADDITIONAL_JS_FILES)); $this->load_initial_css = array_merge($this->default_css, explode(', ',ADDITIONAL_CSS_FILES)); } public function get_jqplot_plugin_list(){ return $this->load_jquery_plugins; } public function get_scriptpath(){ return $this->_E901A667AA80A80858A0CE75D1AB5503; } pubet_default_js_to_load(){ return $this->default_js; } public function get_default_css_to_load(){ return$this->default_css; } } ?>lic function g
但是我强烈建议不要使用这个“hack”,因为:
我的解决方案适用于给定方案,但请将其视为非法并且不使用它。我刚刚发布了这个,因为我想对它为什么不起作用给出一些见解。