Drupal関数を使用するスタンドアロンアプリケーションを開発していますが、いくつかの問題に直面しました。まず、私のアプリケーションは、ユーザーがこのアプリケーションにアクセスできるかどうかを確認する必要があります。ユーザーが権限を持っていない場合は、エラーメッセージが表示されます。ユーザーがログオンしていて権限を持っている場合、アプリケーションはユーザーにいくつかのアクションを表示する必要があります...まず、Apacheでサブドメインを作成しました。たとえば、myapps.site.comという名前を付けました。問題は、許可されていないユーザーがこのアドレスを入力すると、site.comのメインページが読み込まれ(画像のないテキストのみ)、エラーメッセージが表示された私のページではなく、myapps.site.com/index.phpを印刷したときにすべてが正常であるということです。エラーメッセージが読み込まれます。許可されたユーザーがこのページに入ると、すべてOKです。問題がにあることを確認しました
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
これが私のコードのサンプルです:
<?php
chdir('/www/mysite/');
require_once './includes/bootstrap.inc';
require_once './includes/form.inc';
// Here is problem
// if I comment this and show only err message everything is also OK
drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);
global $user;
// Here I am loading additional info to check if the user has access
profile_load_profile(&$user);
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link rel="stylesheet" href="styles/styles.css" />
<script src="jscripts/jQuery.js"></script>
<title>app</title>
</head>
<body>';
// here i check user priviliges
if (!$user->uid || $user->profile_is_priviliged == FALSE )
{
echo 'some err msg';
}
else
{
echo 'some actions';
}
echo '</body></html>'; ?>
私が理解したように、これはサブドメインであり、settings.phpの基本パスはsite.comであり、デフォルトではdrupal_bootstrapがメインページのコンテンツをロードするため、問題が発生する可能性もあります。