Bugzilla의 PHP에서 HTTP 환경 변수를 설정하는 방법은 무엇입니까?
문제
Bugzilla (Perl 기반) 시스템에는 HTTP 서버 환경 변수를 사용하여 자동으로 로그인 할 기능이 있습니다. 오른쪽 ID 또는 사용자 이름을 작성하면 자동으로 로그인됩니다.
내 서버는 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 요청의 수명 만 지속될 것이므로 어떻게 작동하는지 잘 모르겠습니다. 브라우저 프레임의 Bugzilla 페이지 요청은 Apache에 의해 완전히 분리 된 것으로 간주됩니다. 당신은 사용할 수 있습니다 virtual()
그런 다음 해당 환경 변수를 볼 수 있어야하는 Bugzilla에 하위 요청을 호출하려면. 모든 Bugzilla 페이지 요청에 대해 그렇게 해야하는지 또는 로그인을 시작한 요청에 대해 확실하지 않습니다.
내가 요점을 놓쳤다면 미안하거나 이것을 매우 잘못 받았다.
다른 팁
Bugzilla에서 세션을 만들기 위해 무엇을 해야하는지 잘 모르겠지만 Joomla!의 끝에서 무슨 일이 일어나야하는지 알고 있습니다. onloginuser 이벤트에 응답하는 사용자 플러그인을 만들고 싶을 것입니다. 이 작업의 예를 들어, 플러그인/사용자/joomla.php의 Onloginuser 기능을 살펴보십시오.
(주, 이것은 Joomla에만 해당됩니다! 1.5)