2012-12-07 77 views
0

我正在開發一個獨立的應用程序,它使用drupal函數和我遇到了一些麻煩。首先,我的應用程序必須檢查是否有用戶訪問此應用程序,如果他沒有權限顯示錯誤消息。如果用戶已登錄並且擁有許可權,我的應用程序必須向他展示一些操作...首先,我在Apache中創建了子域,例如我將其命名爲: myapps.site.com。麻煩的是:當未經授權的用戶輸入這個地址時,site.com的主頁被加載(只有沒有圖片的文字),而不是我的頁面有錯誤信息,但是當他打印myapps.site.com/index.php時,一切正常,加載錯誤消息。當授權用戶進入此頁面時,一切正常。我已籤,這個問題是與drupal_bootstrap和子域名

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>'; ?> 

正如我已經明白這個問題可能還會上漲,因爲這是在設置子域和基本路徑.php是site.com,默認情況下,drupal_bootstrap加載主頁的內容。

回答

1

嘗試從性能選項中清除緩存。同時取消選中「爲匿名用戶緩存頁面」選項,它爲我工作(直到現在)

也檢查此https://www.drupal.org/node/2333361,我會再次發佈那裏,如果我發現別的東西或問題再次出現。