PHPChart库 - Scriptpath

时间:2015-03-26 21:24:53

标签: javascript php

我在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

谢谢!

2 个答案:

答案 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”,因为:

  • 解码和更改phpCharts代码是非法的
  • 我不知道这是否适用于所有情况
  • unphp.net无法解码phpChart库中最大的.php文件,因此您无法更改其内容,因为我不知道任何其他能够反编译的服务。

我的解决方案适用于给定方案,但请将其视为非法并且不使用它。我刚刚发布了这个,因为我想对它为什么不起作用给出一些见解。