2012-03-14 20 views
0

我正在做一些用PHP編寫的自定義身份驗證,需要設置REMOTE_USER變量,並使其保持不變,以用於Web服務器上的其他應用程序。在PHP中設置時如何使REMOTE_USER粘住?

我能夠設置REMOTE_USER變量和$_SERVER顯示出來,並用apache_setenv(),但phpinfo()呼叫並在第二頁沒有列出變量被設置。

Web服務器是Apache 2與PHP 5.任何想法?

附錄:一個例子的情況是我認證對數據庫表中的用戶,並設置REMOTE_USER變量它們,然後通過代理向他們發送到第二服務器,傳遞REMOTE_USER沿着代理,如這裏描述的用於一個系統:

http://docs.splunk.com/Documentation/Splunk/4.3.1/Admin/Usesinglesign-onwithSplunk

回答

2

不要使用$_SERVER。該變量是從託管PHP的服務器填充的,並不是你應該搞亂的東西。

您要找的是$_SESSION

http://php.net/manual/en/features.sessions.php

+0

謝謝,布拉德,但我不認爲這正是我期待的。我需要將REMOTE_USER設置爲在PHP之外使用,甚至可以通過AJP連接等將它作爲標頭傳遞。我開始擔心我可能需要與Apache進行更深入的整合。你有沒有這樣做,具體? REMOTE_USER應該顯示在phpinfo()中,而不是在使用$ _SESSION變量時。 – Rob 2012-03-14 21:44:39

+0

@Rob,這不是在PHP級別的事情。你需要的是一個單獨的Apache認證插件。你的代理建議也可以,但是很混亂。如果您的其他應用程序使用PHP,只需執行此操作,並在每個應用程序中設置某種單一登錄。 – Brad 2012-03-14 22:42:38

+0

那麼這會成爲另一個論壇的問題嗎? – Rob 2012-03-14 22:56:22