PHP在Joomla 3.5中包含后不执行

时间:2016-10-04 09:37:45

标签: php joomla

我有以下代码,每当我尝试回应上面的内容时,包含它不起作用,似乎'include'是我的代码。

PD:有关详细信息,我的文件位于/ my_main_folder / administrator / components / com_helloworld /

<?php 
define( '_JEXEC', 1 );
define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../' ));  

include(JPATH_BASE.'/libraries/loader.php');

$name = "a";
$username = "b";
$password = "jhvv";
$email = "arcghh";

addJoomlaUser($name, $username, $password, $email);

function addJoomlaUser($name, $username, $password, $email) {
    jimport('joomla.user.helper');
    $data = array(
        "name"=>$name,
        "username"=>$username,
        "password"=>$password,
        "password2"=>$password,
        "email"=>$email,
        "block"=>0,
        "groups"=>array("1","2")
    );

    $user = new JUser;
    //Write to database
    if(!$user->bind($data)) {
        throw new Exception("Could not bind data. Error: " . $user->getError());
    }
    if (!$user->save()) {
        throw new Exception("Could not save user. Error: " . $user->getError());
    }

    return $user->id;
}

&GT;

2 个答案:

答案 0 :(得分:1)

您正尝试重新定义已定义的常量,使用:

define( 'JPATH_BASE', realpath(dirname(__FILE__).'/../../../' ));  

这可能是破坏你的代码的原因。见Joomla constants

答案 1 :(得分:0)

假设您的相对路径确实有效,很可能您遇到了一些ModSecurity规则 - 现在任何服务器都会仔细查看../...,因为有可能读取关键服务器文件。

尝试使用实际的物理路径而不是相对路径......