在appaction.class.php中
<pre><code>public function index() { parent::tologin(); $appname=trim($this->_get('appname')); $action=$this->_get('action');//直接调用方法 $out=urldecode($_GET['out']); //是否开启应用 $app=M('Plugins')->where("directory='$appname' AND available=1")->find(); $this->assign('app',$app); if (!$app) { $this->display('apperror'); exit; } //是否添加</code></pre>
//获取内容
<pre><code>if (@file_exists(ET_ROOT .'/Apps/'.$appname.'/index.class.php')) { include_once(ET_ROOT .'/Apps/'.$appname.'/index.class.php'); if (class_exists($appname)) { if (!@file_exists(ET_ROOT.'/Apps/'.$appname.'/'.$out)) { $out=''; } if (!$out) { $plugin=new $appname($this); if ($action) { echo $plugin->$action(); exit; } else { if (method_exists($appname,index)) { $content=$plugin->index(); } } } else { include_once(ET_ROOT .'/Apps/'.$appname.'/'.$out);//这里包含了 无语截断。 exit; } }</code></pre>
if (@file_exists(ET_ROOT .'/Apps/'.$appname.'/index.class.php'))
需要满足这个 让$appname 为baseexp
然后$out可控。则可以包含了。