PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : PHP Session-User in Access Log schreiben



Ldi91
04-12-2006, 20:27
Ich will einen User-Name, den ich über PHP in Sessions erhalte, in Das Access log schreiben. Das Access-log hat einen Bereich, der für Login-namen im log reserviert ist.
So sollte es um Access log aussehen:

123.123.123.123 - ldi91- [03/Dec/2006:01:46:53 +0100] "GET /?page=rssread&url=http://aktuell.de.selfhtml.org/weblog/rss-feed&item=0 HTTP/1.1" 200 1768 "-" "Opera/9.10 (Macintosh; Intel Mac OS X; U; de)"

kann ich den User über eine Variable setzen?

Ldi91
06-12-2006, 17:42
ok, da das wohl nicht geht eine andere Frage:

Wie kann ich den aktuellen User, der per HTTP:AUTH angemeldet ist, per PHP auslesen?

undefined
07-12-2006, 08:14
Siehe PHP Info Enviroment Variablen und
REMOTE_USER http://httpd.apache.org/docs/2.2/logs.html#accesslog

Turbohummel
07-12-2006, 16:44
Sieh dir mal $_SERVER an.

Ldi91
11-12-2006, 19:00
ok
ich werde es so lösen...

Ldi91
11-12-2006, 19:06
Wie kann ich die Gruppenzugehörigkeit auslesen?

Romanday
11-12-2006, 19:39
Wie kann ich die Gruppenzugehörigkeit auslesen?

Welche Gruppe?
Php gehört doch zu einer Gruppe.

Ldi91
11-12-2006, 19:40
man kann per htaccess User in Gruppen stecken.

AuthUserFile /srv/vhost/backend/server_manager/auth/.htusers
AuthGroupFile /srv/vhost/backend/server_manager/auth/.htgroups
datei sieht so aus:

Admin: lukas
User: daniel tobi
wie kann ich nun auslesen welche Gruppe die User angehören?

undefined
12-12-2006, 11:50
Siehe meine Signatur, Im Download findest du Beispiele ;)

PS:
Du kannst keine htaccess Variablen in PHP oder CGI Lesen. ( Dateien ja aber keine Enviroment Variablen )
Weil sie keine Rechte dazu besitzen und auch nichts mit htaccess zu tun haben. ( Anderes Modul andere Geschichte )
Du kannst aber mit SSL Zertifikaten Benutzer Lesen und Steuern. $_SERVER['SSL_SERVER_I_DN_O'] Dies ist auch die Sicherste Methode weil du eine PEER Verbindung mit einem Session Realm aufmachst.

Ldi91
12-12-2006, 16:29
Siehe meine Signatur, Im Download findest du Beispiele ;)


Ich bin gerade dabei ein webbasierendes Kunden-Login zu Programmieren.....

EDIT:
Wie kann ich ein komplett php basierendes HTTP-Auth-System programmieren?

Romanday
12-12-2006, 18:33
Ich bin gerade dabei ein webbasierendes Kunden-Login zu Programmieren.....

EDIT:
Wie kann ich ein komplett php basierendes HTTP-Auth-System programmieren?

Schau dir mal $_SERVER an, da gibts auch PHP_AUTH_USER und PHP_AUTH_PW und dann einfach mit if/else abfragen.

undefined
12-12-2006, 22:50
Ich bin gerade dabei ein webbasierendes Kunden-Login zu Programmieren.....

EDIT:
Wie kann ich ein komplett php basierendes HTTP-Auth-System programmieren?
Eigentlich Relativ Einfach in dem du die Header Funktionen nutzt.
Wobei .htaccess, .htdigest und SSL ganz klar die Sicheren Methoden sind.
Ausschnitt eines meiner Scripte für eine C++/PHP Schnittstelle an PORT 80.


if ( isset( $_SERVER['PHP_AUTH_USER'] ) && isset( $_SERVER['PHP_AUTH_PW'] )
&& $_SERVER['PHP_AUTH_USER'] == "qspokecalc"
&& $_SERVER['PHP_AUTH_PW'] == getLoginPassword($_SERVER['PHP_AUTH_PW'] ) ) {
### SCHNIPP ###
} else if ( isset( $_POST['SERVER_QUERY'] ) && (int)$_POST['SERVER_QUERY'] == 2
&& isset( $_POST['ID'] ) && isset( $_POST['TYPE'] ) ) {
### SCHNIPP ###
} else {

header( "HTTP/1.0 400 Bad request" );
header( "Content-Type: text/xml; charset=utf-8" );
print PrintXmlMessage( "Bad request!" );
flush();
exit(1);

}

} else {

header( 'WWW-Authenticate: Basic realm="Spokecalc Database"');
header( "HTTP/1.0 401 Unauthorized" );
header( "Content-Type: text/xml; charset=utf-8" );
print PrintXmlMessage( "Permission denied!" );
flush();
exit(1);

}

if ( ! headers_sent() && ! empty( $XML ) && ereg( 'xml', $XML ) )
{
DebugToLog( $XML );
$Length = strlen( $XML );
header( "Content-Type: text/xml; charset=utf-8" );
header( "Content-Language: en" );
header( "Content-Location: http://" . $_SERVER['HTTP_HOST'] );
header( "Host:" . $_SERVER['HTTP_HOST'] );
header( "Accept-Charset: utf-8" );
header( "Content-MD5: " . md5( $XML ) );
header( "Content-Range: bytes " . decbin( $Length ) );
header( "Content-Length: " . $Length );
print $XML;
} else
$XML = null;

if ( isset( $GLOBALS['CON'] ) || is_object( $GLOBALS['CON'] ) )
mysqli_close( $GLOBALS['CON'] );