php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.12.2007, 16:59  
zim
Neuer Benutzer
 
Registriert seit: 10.12.2007
Beiträge: 1
zim
Standard PHP Windows Benutzernamen auslesen

Hallo,

ich möchte für unser Intranet den Benutzernamen der Windows Anmeldung auslesen. Hab auch schon gegoogelt aber nichts brauchbares gefunden. Meistens kam man zu keinem resultat! Hier nun meine Fragen:

1. Geht das mit php überhaupt?

2. Hier ein möglicher Ansatz:

Code:
<?php

$api = new win32;

/*
     BOOL GetUserName(
        LPTSTR lpBuffer,    // address of name buffer
        LPDWORD nSize       // address of size of name buffer
     );
    Returns the current threads username
    "&" passes argument as "refrence" not as "copy"
*/
$api->registerfunction("long GetUserName (string &a, int &b) From advapi32.dll");

/*
    DWORD GetTickCount(VOID)
    Returns the ms the OS is running
*/
$api->registerfunction("long GetTickCount () From Kernel32.dll");

$len = 255;                   // set the length your variable should have
$name = str_repeat("\0", $len); // prepare an empty string
if ($api->GetUserName($name, $len) == 0)
{
    die("failed");
}

if (!($time = $api->GetTickCount()))
{
    die("failed");
}

echo "Username: $name
\nSystemtime: $time
\n";

?>
Funktioniert allerdings auch nicht, da die w32api.dll nicht aufgerufen werden kann. Warum kann ich keine dll's aufrufen?!

3. Ich glaube ich habe eine andere möglichkeit die über ein auslesen der Kommandozeile geht, doch der Befehl "set USERNAME" liefert keinen Wert zurück, für alle anderen Parameter tut er es![/code]
zim ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.12.2007, 17:31  
Moderator und Wett-König
 
Benutzerbild von dr.e.
 
Registriert seit: 21.05.2008
Beiträge: 3.657
PHP-Kenntnisse:
Fortgeschritten
dr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblickdr.e. ist ein Lichtblick
dr.e. eine Nachricht über Skype™ schicken
Standard

Hallo zim,

zunächst ein herzliches Willkommen im phpfriend.de-Forum und viel Spass bei uns!

Ich nehme an, dass die DLL nicht in den Extensions des Servers geladen ist. das kannst du ganz einfach mit einem phpinfo() prüfen und in der php.ini korrigieren. Grundsätzlich ist jedoch darauf zu achten, dass der Logon-Name nicht unbedingt bekannt sein muss, wenn sich deine Benutzer nicht an der Intranetwebseite authentifizieren müssen.

Eine ganz andere Möglichkeit hast du, wenn du PHP als Apache-Modul installiert hast, dann stehen dir bei .htaccess-Authentifizierung die Offsets "PHP_AUTH_USER" und "PHP_AUTH_PASS" zur Verfügung, die du verarbeiten kannst.
__________________
Viele Grüße,
Dr.E.

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1. Think about software design before you start to write code!
2. Discuss and review it together with experts!
3. Choose good tools (-> Adventure PHP Framework (APF))!
4. Write clean and reusable software only!
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
dr.e. ist offline   Mit Zitat antworten
Alt 10.12.2007, 19:13  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Willkommen hier bei uns im Forum

Das sollte es auf Windows-System schon tun:
Code:
$_ENV["USERNAME"]
(zumindest hier bei mir)

Für Pfade, Umgebung etc. einfach mal var_dump($_SERVER, $_ENV) aufrufen, dann werden dir beide Arrays angezeigt.

Edit: Achso halt vom Client oder vom Server?
Zergling-new ist offline   Mit Zitat antworten
Alt 11.12.2007, 08:39  
Erfahrener Benutzer
 
Benutzerbild von lazydog
 
Registriert seit: 02.04.2008
Beiträge: 4.032
lazydog befindet sich auf einem aufstrebenden Ast
Standard

Alle diese Bemühungen beziehen sich ja auf den Server. Da kannst du ja gleich deinen Provider fragen, unter was für einem Benutzer der Apache läuft. Es dürfte ja immer derselbe sein.
Den Benutzer des Clients wirst du kaum rauskriegen, mit PHP erst recht nicht. Und du kannst ja nicht davon ausgehen, dass alle Benutzer windoof benutzen.
__________________
Gruss
L
lazydog ist offline   Mit Zitat antworten
Alt 11.12.2007, 16:39  
moderatives Dielektrikum
 
Benutzerbild von nikosch
 
Registriert seit: 21.05.2008
Beiträge: 35.987
PHP-Kenntnisse:
Fortgeschritten
nikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunftnikosch hat eine strahlende Zukunft
Standard

Zitat:
Zitat von lazydog
Und du kannst ja nicht davon ausgehen, dass alle Benutzer windoof benutzen.
In nem definierten Intranet schon.

Benutz doch einfach ein einmalig gesetztes Cookie.
nikosch ist offline   Mit Zitat antworten
Alt 05.01.2008, 23:38  
Benutzer
 
Registriert seit: 06.08.2005
Beiträge: 55
nickie12
Standard

Einmalig gesetztes Cookie: Die dürften bei Windoof-Intranets aber ziemlich häufig neu gesetzt werden müssen
Konnte nicht widerstehen.

Wenn du den Benutzer des Clients rauskriegen möchtest, dann könntest du einen Browser auf OpenSource-Basis (oder mit Benutzung der IE Engine, das dauert dann aber länger) programmieren, der speziellen Seiten auf spezielle Anfrage hin diese Information gibt. (Wenn du nur PHP kannst: Vielleicht funktioniert da PHP-GTK, nicht getestet) Wenn das zur Authentifizierung verwendet werden soll: Schick das Passwort mit, wenn der Benutzer des Computers es wissen darf.

Serverseitig wurde von meinen Vorrednern bereits gesagt.
nickie12 ist offline   Mit Zitat antworten
Alt 06.01.2008, 02:29  
CIX88
Gast
 
Beiträge: n/a
Standard

Zitat:
Funktioniert allerdings auch nicht, da die w32api.dll nicht aufgerufen werden kann. Warum kann ich keine dll's aufrufen?!
Sofern ich das verstanden habe, gibt es dies nicht mehr in PHP.
Das war nur mal ein Experiment, und wird nicht mehr unterstützt.
Alternative soll wohl php_win32std.dll sein.

Zitat:
Den Benutzer des Clients wirst du kaum rauskriegen
Jetzt nur mit WinXP und Local-Server ausprobiert:

PHP-Code:
<?php
$strMainKey 
'Software\Microsoft\Windows\CurrentVersion\Explorer';
$mainKey reg_open_keyHKEY_CURRENT_USER$strMainKey );
$mainVal reg_enum_value($mainKey);
echo 
'Logon User Name: 'reg_get_value($mainKey'Logon User Name');
reg_close_key($mainKey);
?>
Wenn sich ein anderer Benutzer anmeldet wechselt natürlich dieser Wert.
In der php.ini muss allerdings extension=php_win32std.dll gesetzt sein.

Würde mich mal interessieren ob es bei Vista auch geht.
  Mit Zitat antworten
Alt 06.01.2008, 03:52  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Zitat:
Zitat von CIX88
Würde mich mal interessieren ob es bei Vista auch geht.
reg_get_value($mainKey, 'Logon User Name') liefert mir FALSE.
Zergling-new ist offline   Mit Zitat antworten
Alt 06.01.2008, 09:47  
CIX88
Gast
 
Beiträge: n/a
Standard

Oha, da wird das sicherlich einen anderen Ordner haben, oder Vista sperrt den Zugriff - vermute ich mal.
  Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[Erledigt] WAMP unter Windows 2000 Server oder Windows 2003 Server Mecronomecon Server, Hosting und Workstations 3 18.06.2008 09:15
Ordner auslesen und während des auslesen sortieren Dooki PHP Tipps 2008 6 14.05.2008 17:50
Vom Browser verschickte Daten auslesen und anzeigen? andy32 PHP Tipps 2008 3 22.08.2007 18:33
Probleme mit IE7 und transparentem Hintergrund oschmidt HTML, Usability und Barrierefreiheit 15 04.05.2007 20:47
[Erledigt] gelöst: Tabelle auslesen -&amp;amp;amp;amp;gt; Gleiche Einträge nur 1 Mal Datenbanken 3 31.03.2006 01:44
Frage zu Windows Server 2003 b++ Off-Topic Diskussionen 1 03.03.2006 09:41
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
[Erledigt] browsererkennung; wie kann man einen firefox von... PHP Tipps 2005-2 17 25.07.2005 22:35
Name auslesen, auf den Windows registriert PHP-Fortgeschrittene 8 02.05.2005 09:47
Festplatten-, Windows, PartitionMagic, SuSE-Linux - Problem Quadaptor Off-Topic Diskussionen 14 09.04.2005 19:01
Windows Authentifizierung und Passwort auslesen PHP-Fortgeschrittene 3 15.03.2005 16:42
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
[Erledigt] Windows Benutzername auslesen mit PHP? PHP Tipps 2004-2 5 12.11.2004 14:19
Mehrere Benutzernamen PHP Tipps 2004 6 26.10.2004 22:38
Variable %username% auslesen und übergeben PHP Tipps 2004 5 25.06.2004 13:09

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php windows user auslesen, php benutzername auslesen, php windows benutzer auslesen, php windows user, php username auslesen, php benutzer auslesen, php windows benutzername auslesen, php windows username, php benutzername, php windows benutzername, php user auslesen, php windows username auslesen, php benutzernamen auslesen, php windows anmeldename, php windows anmeldung, benutzername auslesen php, benutzername php, windows benutzername auslesen, php windows benutzer, windows user php

Alle Zeitangaben in WEZ +2. Es ist jetzt 00:28 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.