我已经创建了php程序,我试图获取当前的Windows用户名。我在服务器上安装了这个,我在服务器上有多个用户,例如:[(administrator-user-1),(sam-user-2),(mac-user-3)]等等。
我使用user-1启动xampp。 我在localhost中启动我的应用程序(localhost / myapplication / index.php) 我为--->管理员
得到了正确的o / pecho 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 - >管理员而不是山姆
你可以帮助我吗?
答案 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命令都由该用户运行。
服务器不知道谁在连接它(想想如果有人通过互联网连接到你的服务器,你会期望它显示什么。)
如果你想识别不同的用户,你需要有某种登录系统。