Drupal 6 устанавливает сообщение для разных загрузчиков - PullRequest
0 голосов
/ 18 октября 2011

Я пытаюсь с помощью приведенного выше кода установить сообщение и перенаправить в другое место, как это, и я перенаправляю с

example.com/somewere/index.php

на

example.com

Моя проблемакогда я попадаю на 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 в загрузочную ловушку, для которой включена поддержка сеанса.

in example.com/somewere/ мое сообщение

но на example.com/ я не получаю сообщение

сервер открывает мне сеанс diffrent, может быть, потому что я использую файл diffrent htaccess в example.com/somewere/

я знаю, что сообщения основаны на сеансах, есть ли способ обойти проблему, потому что в одном и том же домене и на другом друпале просто другая позиция доступа?

Ответы [ 2 ]

0 голосов
/ 18 октября 2011

Я бы запустил session_get_cookie_params, чтобы увидеть, является ли путь просто /. Возможно, PHP устанавливает путь к /somewhere для файла cookie сеанса, и поэтому установка Drupal в вашей установке не имеет файла cookie сеанса после этого.

0 голосов
/ 18 октября 2011

Вам действительно не нужно идти на эти длины, чтобы перенаправить страницу 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 в обработчике отправки для формы.

...