2008-12-04 25 views
0

基於bugzilla(基於perl的)系統具有使用http服務器環境變量自動登錄的功能。如果您填寫正確的用戶名或用戶名,您將自動登錄。如何從PHP爲Bugzilla設置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"; 
} 

回答

0

這只是一種猜測,但(假設你使用的Apache2)您可以使用apache_setenv()來設置環境變量。然而,這隻會持續當前http請求的生命週期,所以我不確定你是如何使它工作的 - 從瀏覽器框架請求bugzilla頁面將被Apache完全分開。您可能可以使用virtual()來調用Bugzilla的子請求,然後應該可以看到該環境變量。我不確定是否需要爲每個Bugzilla頁面請求執行此操作,或者只需要啓動登錄操作。

很抱歉,如果我錯過了點或得到這個非常錯誤的

+0

謝謝你的信息。 HTTP請求的生存期確實是問題。 我還沒有看到virtual()函數,但是它可能會做詭計,因爲它必須首先進行登錄註冊(設置cookie或其他),然後才能執行其他操作。 – Roalt 2008-12-08 08:00:03

+0

經過測試,此解決方案實際上可行!我確實必須使用REQUEST_URI env。變量來重新發送請求,併爲POST變量進行一些處理。在添加htaccess.txt文件之後,每個bugzilla調用都通過這個php例程轉向。很棒! – Roalt 2009-01-07 06:52:08

0

我不知道你需要做的,創造的Bugzilla會話什麼,但我知道什麼需要上的Joomla發生!結尾:您將需要創建一個響應onLoginUser事件的用戶插件。有關這個實例的示例,請查看plugins/user/joomla.php中的onLoginUser函數。

(注意,這隻適用於Joomla!1.5)