2011-10-18 23 views
0

我試圖上面的代碼來設置消息和重定向到一個不同的位置這樣 和即時從Drupal的6組消息發送到不同的自舉

example.com/somewere/index.php 

重定向到

example.com 

我的問題是,當我到達example.com Drupal doesen't保持會話, 和消息不顯示。

任何想法將不勝感激。

chdir('../'); 
require_once './includes/bootstrap.inc'; 
require_once './includes/common.inc'; 
require_once './includes/module.inc'; 

$url = "http://".$_SERVER['SERVER_NAME']; 

drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL); 
drupal_set_message(t('Your message has been sent'), 'status', TRUE); 
drupal_goto($url); 

我正在採取一個窗體和頁面的其他元素,並把它放在啓動會話的引導程序之外的drupal。

在 example.com/somewere/ 我的消息

但example.com/ 我沒有得到消息

服務器打開我指出錯誤會話 可以說,它是因爲我在example.com/somewere/中使用不同的htaccess文件

我知道消息是基於會話的 有沒有辦法繞過問題,因爲在同一個域和相同的drupal只是不同的訪問位置?

回答

0

我會運行session_get_cookie_params來查看路徑是否僅爲/。這可能是PHP爲會話cookie設置路徑爲/somewhere,因此安裝後的Drupal安裝在此之後沒有會話cookie。

+0

我會檢查它thenks。 – aViNoAm

0

你真的不需要去這些長度重定向一個Drupal頁面,事情如此簡單的自定義模塊,將做到這一點:

function mymodule_init() { 
    if ($_GET['q'] == 'index.php') { 
    $url = "http://".$_SERVER['SERVER_NAME']; 
    drupal_set_message(t('Your message has been sent'), 'status', TRUE); 
    drupal_goto($url); 
    } 
} 

我不完全知道你爲什麼會盡管如此,從你的信息中我收集到這個以迴應表單提交?如果是這樣,您最好在表單的提交處理程序中設置$form_state['redirect'] = $url

+0

但是你爲什麼試圖把它放在Drupal之外?爲什麼不使用標準的Drupal頁面回調來輸出表單,然後調用'exit()'以便立即顯示?這樣你就不必擔心引導Drupal,你可以相信你的會話會保持不變。 – Clive

+0

我正在使用表單和頁面的其他元素,並將其放置在具有會話啓用的引導程序之外的drupal外部。 在 example.com/somewere/ 我的消息是有 但example.com/ 我沒有得到消息 服務器打開我指出錯誤會話 它可能是因爲我使用的不同勢htaccess文件example.com/somewere/ 我知道消息是基於會話的 有沒有辦法繞過這個問題,因爲有相同的域和相同的drupal只是不同的訪問位置? 如果沒有生病的管理.... 但這會很好 – aViNoAm