如何在其他用户启动xampp时获取当前的Windows用户名

时间:2015-10-29 16:19:19

标签: php apache

我已经创建了php程序,我试图获取当前的Windows用户名。我在服务器上安装了这个,我在服务器上有多个用户,例如:[(administrator-user-1),(sam-user-2),(mac-user-3)]等等。

我使用user-1启动xampp。 我在localhost中启动我的应用程序(localhost / myapplication / index.php) 我为--->管理员

得到了正确的o / p
echo getenv("username"); or echo get_current_user(); or echo trim(shell_exec('whoami'));

对于用户-2(他登录到他的Windows会话) 没有必要启动xampp,因为它的alredy由user-1启动 user-2在localhost(localhost / myapplication / index.php)中启动应用程序(使用不同的会话登录)

当我执行

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

我得到o / p - >管理员而不是山姆

你可以帮助我吗?

2 个答案:

答案 0 :(得分: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;
}

编译此代码。如果您不知道如何操作,请执行Google搜索How to compile C code

编译完成后,将编译代码保存在与php脚本相同的目录中。我把我保存为a.out

然后在您的PHP代码中执行以下操作:

exec("./a.out");

这将返回当前登录的用户。

答案 1 :(得分:0)

您的网络服务器由用户帐户启动。所有PHP命令都由该用户运行。

服务器不知道谁在连接它(想想如果有人通过互联网连接到你的服务器,你会期望它显示什么。)

如果你想识别不同的用户,你需要有某种登录系统。