2015-10-29 78 views
1

我已經創建了php程序,在該程序中我試圖獲取當前windows用戶名。我在服務器上安裝了此服務器,並且在服務器上有多個用戶,例如:[(administrator - user-1),(sam - user - 2),(mac - user - 3)]等。如何獲得當前Windows用戶名,而其他用戶啓動xampp時

我使用user-1開始我的xampp。 我開始在本地主機的應用程序(本地主機/所有MyApplication/index.php文件) 我得到正確的O/P爲--->管理員

echo getenv("username"); or echo get_current_user(); or echo trim(shell_exec('whoami')); 

對於用戶2(他登錄到自己的Windows會話) 有是無需啓動XAMPP作爲其由用戶1開始alredy用戶 -2(使用登錄不同的會話)

當我執行開始於本地主機(本地主機/所有MyApplication/index.php的)應用程序

echo getenv("username"); or echo get_current_user(); or echo trim(shell_exec('whoami')); 

我得到o/p - >管理員而不是sam

你能幫我嗎?

+0

因爲用戶啓動服務器會話綁定到他。這就是爲什麼它仍然顯示管理員用戶,而不是用戶2. –

+0

當我正在執行C:\用戶> whoami旁邊的CMD與Windows用戶SAM會話登錄時,我越來越O/P「山姆」(右O/P))。 – Sam

+0

你好安德烈謝謝你的回覆。是的,但你能告訴我如何獲得當前的Windows用戶名嗎? – Sam

回答

0

您的Web服務器由用戶帳戶啓動。所有PHP命令都由該用戶運行。

服務器不知道誰是連接到它(想想你希望它顯示,如果有人通過因特網連接到你的服務器。)

你需要有某種形式的登錄系統如果你想識別不同的用戶。

+0

你好miken已經有用戶登錄(使用瀏覽器)。它的應用程序僅適用於會話(帶有Intranet的Windows會話用戶)用戶,而不適用於Internet用戶。我只想獲得會話用戶(windows用戶名作爲其Windows服務器)。 – Sam

+0

然後他們將不得不將它提供給服務器。 – miken32

1

由於我在上面張貼的原因,不可能用你的方式。但是可以採取其他方式。

我創建了一個C腳本

#include <stdlib.h> 
int main(int argc, char *argv[]) 
{ 
    char *p=getenv("USER"); 
    if(p==NULL) return EXIT_FAILURE; 
    printf("%s\n",p); 
    return 0; 
} 

編譯的代碼。如果你不知道該怎麼做,請執行谷歌搜索How to compile C code

編譯完成後,將編譯代碼保存在與php腳本相同的目錄中。我救了我的a.out

然後在你的PHP代碼執行以下操作:

exec("./a.out"); 

這回登錄的用戶的電流。

相關問題