0

JoomlaでユーザーIDを取得し、そのIDでディレクトリを作成するこのdiretorio.phpファイルがあります(まだ存在しない場合):

/* Get the current user id */
$user = JFactory::getUser();
$usr_id = $user->get('id');

/*Define the path to this user's directory */
$diretorio=$_SERVER['DOCUMENT_ROOT']."/Apps/files/".$usr_id;

/*Create the user's directory if it doesn't exist */
if (!file_exists($diretorio) and !is_dir($diretorio)) {
    mkdir($diretorio, 0755);
};

ここで、上記で作成した同じディレクトリに別の PHP ファイルをトリガーする Ajax を使用して、オブジェクト内のデータを含むファイルを保存したいと考えています。

$myFile = $diretorio."/dados.json";
$fh = fopen($myFile, 'w') or die("não é possível abrir o ficheiro");
$stringData = $_POST['data'];
$stringData='{  "data":'.json_encode($stringData).'}';
fwrite($fh, $stringData);
fclose($fh);

ただし、ファイルは作成されません。最初の行を次のように置き換えると:

$myFile = "dados.json";

この PHP スクリプトが格納されているディレクトリと同じディレクトリにファイルが作成されます。

4

1 に答える 1

0

次のような Joomla コーディング標準を使用することをお勧めします。

$user = JFactory::getUser();
$usr_id = $user->get('id');

$diretorio = JPATH_SITE . "/Apps/files/" . $usr_id;

if (!JFolder::exists($diretorio)) {
    JFolder::create($diretorio, 0775);
}

$myFile = $diretorio."/dados.json";

$stringData = $_POST['data'];
$stringData = '{ "data":'.json_encode($stringData).'}';
JFile::write($myFile, $stringData);

JPATH_SITEJoomla サイトのルートです

于 2013-10-08T15:27:33.033 に答える