2011-10-18 9 views
0

Iメッセージを設定し、この ような別の場所にリダイレクトするために上記のコードをしようとしていると私はDrupalの6組のメッセージ

example.com 

example.com/somewere/index.php 

からリダイレクトしてい

私の問題は、私がexample.comのdrupalにアクセスしてセッションを維持しないときです。 とメッセージは表示されません。

何か考えていただければ幸いです。

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がセッションクッキーのパスを/somewhereに設定しているため、インストールのDrupalインストールでセッションクッキーが作成されないことがあります。

+0

私はそれをチェックします。 – 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の外に置いています。 私は切り抜いたのhtaccessファイルを使用しているため、それができる example.com/somewere/に 私のメッセージは がありますが、example.com/ に私がメッセージ サーバーが私に切り抜いたセッション を開く取得いけませんexample.com/somewere/ 私はメッセージがセッションベースであることを知っています 同じドメインと同じdrupal上に異なるアクセス位置が存在するため、問題を回避する方法はありますか? いいえ管理していない場合... これはいいです – aViNoAm

関連する問題