我做了很多测试,以便在我的php代码中捕获dos环境%USERNAME%
,我的操作系统是Windows 7。
这将允许我的php
程序知道当前登录到网络中的用户名
这里有一些测试在环境Wamp
和Xampp
中运行。
我们将非常感谢您的帮助。
<?php
session_start();
//1°test, not ok
//echo "user=". $username;
//2° test, not ok
//echo 'My username is ' .$_ENV["USER"] . '!';
//3°test in this case I get back "user-pc$" . It's not correct , the right username - logged in in Windows 7 operating system - is "user".
//infact I got "user" value running from command line "cmd" the "set username" command.
$user_name = getenv('USERNAME');
echo "username=".$user_name."<br>";
// running phpinfo I see as USERNAME "user-pc$" but unfortunately this is not the right value
phpinfo();
答案 0 :(得分:0)
我这里没有PHP / Windows系统来检查这个,但它应该有效:
$user_name = exec('echo %USERNAME%');
如果由于RiggsFolly在评论中说明的原因而不能产生预期的输出:
这里的基本问题是这样的结果将基于Apache登录的帐户,而对于wampserver或xampp将是
nt authority\system
而不是Valgo
然后您可能想尝试获取query user
命令的输出,解析数据,并根据STATE
值进行一些过滤和/或决定您想要的用户是什么。不要忘记可能有许多用户登录,处于“活动”状态。
$data_to_parse = exec('query user');
答案 1 :(得分:0)
您好,感谢您的建议。 运行$ data_to_parse = exec('查询用户');在家里我得到以下输出 “valgo console 1 Active nobody 24/04/2016 15:52” 其中valgo是当前连接用户的名称。大!我会在网络内尝试,然后让你知道。
答案 2 :(得分:0)
我测试过: $ data_to_parse = exec(&#39;查询用户&#39;); 我回来了 gorlav rdp-tcp#0 1 Attivo。 2016/04/26 14:22 在哪里&#34; gorlav&#34;是连接帐户的名称。 大。非常感谢