0

如何通过 PHP 或 JavaScript 获取当前登录的系统用户名。

我们在 Java 中有一个内置函数,例如:

String userName = System.getProperty("user.name");

但我在我需要的任何技术中都找不到类似的命令。

我需要它用于 Web 应用程序,我正在为 Web 应用程序 HTML、CSS、Bootstrap、Ajax、Jquery、Datatables、PHP、MS SQL 使用以下技术/库。

有没有办法通过任何提到的技术找到系统用户名。

4

2 回答 2

0

下面将为您提供正在运行 PHP 进程的用户。例如,如果您正在运行 Apache,它将为您提供拥有 Apache 进程的用户。如果您从命令行运行,那么您将获得登录人的用户名。

如果您通过 Apache(或任何网络服务器)运行它并且该网络服务器在您的计算机上以用户_www运行并且您以用户zippy登录,那么这些将返回您_www,而不是zippy

在 Linux 或 macOS 上:

$processUser = exec('whoami');

或者:

$userInfo = posix_getpwuid(posix_geteuid());
$processUser = $userInfo['name'];

您还可以尝试查看它是否可以通过环境使用。

$user = $_ENV['USERNAME'] ?? '-unknown';

我以下面的 Java 为例:

public class Main {
    public static void main(String[] args) {
        String username = System.getProperty("user.name");
        System.out.println("username = " + username);
    }
}

然后我使用了以下PHP:

<?php
echo `whoami`;
echo "\n";

然后我在命令行上运行并得到完全相同的输出。

在 macOS 和 Linux 上,这将为您提供当前登录的所有用户的列表:

<?php
$users = exec('/usr/bin/users', $output);
print_r($output);

根据这个 Oracle Java 文档System.getProperty("user.name") 给你“用户帐户名”。我假设在 Web 服务器环境中,这将为您提供运行 Java 或 Webserver 进程的用户的名称。

如果您正在使用这些,我不完全确定这些在 Windows 上是否有效。

于 2017-08-19T03:17:07.083 回答
0
<?php echo get_current_user(); ?>
<?php echo getenv("username"); ?>

有关更多信息,请参阅phpinfo()。适用于 Linux 和 Windows。

于 2017-08-19T04:09:25.250 回答