Как установить переменную среды HTTP из PHP для Bugzilla?
Вопрос
Система bugzilla (на основе Perl) имеет функцию автоматического входа в систему с помощью переменной среды http-сервера. Если вы введете правильный идентификатор или имя пользователя, вы автоматически войдете в систему.
Мой сервер работает на Joomla (на основе PHP) и содержит всю информацию о том, кто вошел в систему. Он запускает bugzilla в подкадре.
Итак, как я могу установить это значение среды из скрипта PHP?
Другими словами, как следующий скрипт возвращает мою переменную собственного набора в другом месте сеанса из PHP:
#!/usr/bin/perl -wT
print "Content-type: text/html\n\n";
while (($key, $val) = each %ENV) {
print "$key = $val<BR>\n";
}
Решение
Это только предположение, но (при условии, что вы используете Apache2) вы можете установить переменные окружения, используя apache_setenv()
. Однако это будет продолжаться только в течение срока действия текущего http-запроса, поэтому я не уверен, как вы заставите его работать - запрос Apache на страницу bugzilla из фрейма браузера будет считаться совершенно отдельным. Возможно, вы сможете использовать virtual()
, чтобы вызвать дополнительный запрос к Bugzilla, который затем сможет увидеть эту переменную среды. Я не уверен, нужно ли вам это делать для каждого запроса страницы Bugzilla или только для того, который инициирует вход в систему.
Извините, если я упустил суть или очень неправильно понял
Другие советы
Я не уверен, что вам нужно сделать, чтобы создать сеанс в Bugzilla, но я знаю, что должно произойти в конце Joomla!: вы захотите создать плагин пользователя, который будет реагировать на событие onLoginUser , Для примера этого в действии взгляните на функцию onLoginUser в plugins / user / joomla.php.
(обратите внимание, это только для Joomla! 1.5)