Как получить текущее имя пользователя Windows, когда xampp запущен другим пользователем

1

Я создал php-программу, в которой я пытаюсь получить текущее имя пользователя Windows. Я установил это на сервере, и у меня есть несколько пользователей на сервере, например: [(administrator - user-1), (sam - user-2), (mac - user-3)] и т.д.

Я запускаю свой xampp с помощью user-1. Я запускаю свое приложение в 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 запускается пользователем-1 user-2 запускает приложение в localhost (localhost/myapplication/index.php) (используя другой сеанс с логином)

Когда я выполняю

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

Я получаю o/p → administrator вместо sam

Не могли бы вы помочь мне в этом?

  • 0
    Поскольку пользователь один запустил сервер, сеанс привязан к нему. Вот почему он все еще показывает администратора пользователя, а не пользователя 2.
  • 0
    Я получаю o / p "sam" (правильно o / p)), когда я выполняю C: \ Users> whoami в стороне cmd с Windows user sam login login.
Показать ещё 2 комментария
Теги:

2 ответа

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");

Это возвращает текущего зарегистрированного пользователя.

0

Ваш веб-сервер запускается с учетной записью пользователя. Все команды PHP управляются этим пользователем.

Сервер не имеет понятия, кто к нему подключается (подумайте о том, что вы ожидаете от него, если кто-то подключился через Интернет к вашему серверу.)

Вам нужно будет иметь какую-то систему входа, если вы хотите узнать разных пользователей.

  • 0
    Здравствуйте, miken, для пользователей уже есть логин (также с браузером). Его приложение доступно только для пользователей сеансов (пользователей Windows с интранетом), но не для пользователей Интернета. Я просто хочу, чтобы получить сеанс пользователя (имя пользователя Windows, как его сервер Windows).
  • 0
    Затем они должны будут предоставить его на сервер.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню