SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Fortgeschrittene CSS-Techniken

Fortgeschrittene CSS-Techniken zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten
Hilfe Community Kalender Heutige Beiträge Suchen

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 22.07.2003, 22:54:37
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Log-File-Daten bekommen..

Nabend..
Wie in einem anderen Thread bereits erwähnt programmiere ich zur Zeit ein Statistik-Script für Websites!

Da ich schon oft gesehen habe das welche mit PHP den Browser sowie das OS rausbekommen haben, will ich doch gleich mal fragen wie man sowas rausbekommt?

Die Befehle HTTP_USER_AGENT helfen da, aber ich kann mit den Angaben nichts anfangen?!?

Bei mir steht zum Beispiel folgendes:

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)

Wie erkennt man welches OS man hat, welchen Browser man hat und vorallen Dingen, was ist iOpus-I-M ??? Hab ich noch nie gelesen!

Welche Daten, ausser Bildschirmhöhe und Breite, sowie Uhrzeit, Datum und Referer wären denn noch interessant und mit PHP rauszubekommen??

Ich hoffe mir kann man(n) helfen!

Achja, habe letztens noch ein Script gesehen das auch die eingestellte Sprache (ich glaube des Browsers) ausliest!

Wie geht das?


Gruß und nen schönen Abend... nivram
Mit Zitat antworten
  #2  
Alt 23.07.2003, 07:25:52
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Willst Du den Logfile selber erstellen oder nimmst Du den, der vom Apache generiert wird? Bei letzterem hast Du herzlich wenig Möglichkeiten einzugreifen.
Die Auflösung bekommst Du nur mit JavaScript raus, ist also zu vermeiden. Die meisten nutzen 1024x768 oder höher.

Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)
in dieser Zeile sind 3 Infos enthalten:
Mozilla: die Renderengine
MSIE 6.0: Browser
Windows NT 5.0: Betriebssystem (in dem Fall Windows 2000)

Was dieses iOpus-I-M ist weiß ich nicht. Manchmal steht auch $rFO11RR oder so ein Quark da. Darf also ignoriert werden.

Was man so alles auslesen kann, kannst Du Dir ja mal anschauen, in dem Du Dir eine Datei erstellst, die diesen Inhalt hat: <?php phpinfo(); ?>
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #3  
Alt 23.07.2003, 10:18:40
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Schönund gut..

Wenn irgendwer mir jez noch sagen könnte welches Kürzel "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)"

für welchen Browser und welches OS steht, dann bin ich meinem Ziel schon etwas näher!


Nochmal ne programmiertehnische Frage:

Fügt man so einzelne Daten zu nem Array zusammen?

$platform_array[]=$platform;



Wenn ja: Ich hab immer gedacht dafür müsste man den Befehl array_push verwenden!


Gruß, nivram
Mit Zitat antworten
  #4  
Alt 23.07.2003, 10:24:52
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Zitat:
Wenn irgendwer mir jez noch sagen könnte welches Kürzel "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)"

für welchen Browser und welches OS steht, dann bin ich meinem Ziel schon etwas näher!
hab ich doch geschrieben:
--------------------------------------------------
Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)
in dieser Zeile sind 3 Infos enthalten:
Mozilla: die Renderengine
MSIE 6.0: Browser
Windows NT 5.0: Betriebssystem (in dem Fall Windows 2000)
--------------------------------------------------

Daten zu einem Array kannst Du so hinzufügen, wie Du es geschrieben hast oder auch so: $arr[3]='snaf';
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #5  
Alt 23.07.2003, 10:31:19
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Sorry, ich meinte eigentlich das es doch bei jedem OS ein anderes Kürzel gibt! Für Windows 98 z.B. Win98 oder was weiss ich!

Die Kürzel die in diesen Infos für alle OS existieren wollte ich eigentlich haben! Gibs da irgendwo ne Liste? Genauso möchte ich das für die Browser haben!

Habe mich wahrscheinlich falsch ausgedrückt!


Gruß, nivram
Mit Zitat antworten
  #6  
Alt 23.07.2003, 10:35:21
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Oh. Klar, gibt's. Ich bin 'damals' einfach diese Liste durchgegangen und hab mir alles rausgenommen, was ich wollte. Am Ende hatte ich dann diese Liste:
PHP-Code:
<?php
// mehrere Varianten sind durch # getrennt und müssen erst mittels explode() getrennt werden
// internes kuerzel => Name, Eintrag in Logfile
$names_browser=array(
    
'ie3' => array('Internet Explorer 3''msie 3'),
    
'ie4' => array('Internet Explorer 4''msie 4'),
    
'ie5' => array('Internet Explorer 5''msie 5'),
    
'ie6' => array('Internet Explorer 6''msie 6'),
    
'op3' => array('Opera 3''opera/3'),
    
'op4' => array('Opera 4''opera/4'),
    
'op5' => array('Opera 5''opera/5'),
    
'op6' => array('Opera 6''opera/6'),
    
'op7' => array('Opera 7''opera/7'),
    
'gal' => array('Galleon''galleon'),
    
'kon' => array('Konqueror''konqueror'),
    
'aol5' => array('AOL 5''aol 5'),
    
'aol6' => array('AOL 6''aol 6'),
    
'aol7' => array('AOL 7''aol 7'),
    
'aol8' => array('AOL 8''aol 8'),
    
'ns4' => array('Netscape 4''netscape/4'),
    
'ns5' => array('Netscape 5''netscape/5'),
    
'ns6' => array('Netscape 6''netscape/6'),
    
'ns7' => array('Netscape 7''netscape/7'),
    
'fir' => array('Firebird''firebird'),
    
'pho' => array('Phoenix''phoenix'),
    
'gec' => array('Gecko''gecko'),
    
'null' => array('Unbekannt''^°^')
);

$names_player=array(
    
'rp' => array('RealPlayer''realplayer'),
    
'qts' => array('QuickTime''qts '),
    
'msmp' => array('Windows MediaPlayer''windows-media-player'),
    
'null' => array('Unbekannt''^°^')
);

$names_os=array(
    
'win95' => array('Windows 95''win95#windows 95'),
    
'win98' => array('Windows 98''win98#windows 98'),
    
'winme' => array('Windows ME''winme#windows me'),
    
'winnt3' => array('Windows NT 3''windows nt 3#winnt_3'),
    
'winnt4' => array('Windows NT 4''windows nt 4#winnt_4'),
    
'winnt5' => array('Windows 2000''windows nt 5.0#winnt_5.0#windows 2000'),
    
'winxp' => array('Windows XP''windows nt 5.1#winnt_5.1'),
    
'linux' => array('Linux''linux'),
    
'unix' => array('UNIX''unix'),
    
'mac' => array('Macintosh''mac#powerpc'),
    
'null' => array('Unbekannt''^°^')
);
?>
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #7  
Alt 23.07.2003, 10:43:05
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Da sin wa doch schonmal aufn richtigen Weg!

Wir nehmen mal an:

'winnt5' => array('Windows 2000', 'windows nt 5.0#winnt_5.0#windows 2000'),

Wir müsste ich nun überprüfen, was wo drin stehen muss?

Muss ich überprüfen ob der letztere Teil (vorher durch explode gesplittet) in der Ausgabe steht?
Dieses Windows 2000 is doch nur für die Statistik selbst der Name und das Kürzel vorne wird für die interne Statistik-Speicherung verwendet!?


Gruß, nivram
Mit Zitat antworten
  #8  
Alt 23.07.2003, 10:50:14
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
Also wie ich es gelöst habe, kann ich Dir nicht zeigen, das ist mir zu komplex, was ich da gebastelt habe. ;)

Das 'winnt5' ist für die Arrays: $browser['winnt5'][0]++ und so.
Das 'Windows 2000' ist für die Ausgabe in der Statistik.
Der Rest ist halt das, was in der Statistik vorkommen kann.

Das Ganze halt dann irgendwie so:
PHP-Code:
<?php
$str
='Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; iOpus-I-M)'
$temp=explode('#'$names_browser['winnt5'][1]);
$i=0;
while (
$i<count($temp)) {
 if (
strstr($str$temp[$i])) {
  
// gefunden
 
}
 
$i++;
}
?>
Mann könnte $str ja noch an den ; aufsplitten und dann nur mit dem dritten Feld arbeiten, aber das sollte eigentlich nicht nötig sein. Präziser wäre es allerdings.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
  #9  
Alt 23.07.2003, 11:01:39
nivram nivram ist offline
Junior Member
 
Registriert seit: Jul 2002
Ort: Heiden, NRW
Alter: 38
Beiträge: 218
Hört sich recht einfach an!

Woher willst du aber wissen wann du $names_browser['winnt5'][1] und wann du z.B. win98 nehmen musst?

Ich hab in einem Script schonmal sowas gesehen und der hatte das total komplex mit if-Abfragen usw. gemacht! Ich wollte mir das nich kopieren, weil es nich mein eigenes Werk war und deswegen frage ich hier..



Gruß, nivram
Mit Zitat antworten
  #10  
Alt 23.07.2003, 11:07:09
c4 c4 ist offline
SELFPHP Guru
 
Registriert seit: Jul 2002
Ort: Oberursel
Alter: 54
Beiträge: 4.748
War ja nur ein Beispiel das da oben. Im eigentlichen Skript gehe ich ja Zeile für Zeile durch und extrahiere die Daten. Hab dann also mal sowas wie $str von oben. Bei den Browsern wird dann in einer Schleife das gesamte Array durchgegangen und die Überprüfung vorgenommen. Sollte sich also mal was an den Namen der Browser ändern, dann muss ich nichts am Quelltext ändern, sondern nur bei $names_browser & Co.
__________________
sic!
--> http://dbCF.de/
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

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

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 07:49:12 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt