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
|
:: Anbieterverzeichnis ::
Globale Branchen
Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP
:: Newsletter ::
Abonnieren Sie hier den kostenlosen
SELFPHP Newsletter!
|
PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken |
22.07.2003, 22:54:37
|
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
|
23.07.2003, 07:25:52
|
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(); ?>
|
23.07.2003, 10:18:40
|
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
|
23.07.2003, 10:24:52
|
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';
|
23.07.2003, 10:31:19
|
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
|
23.07.2003, 10:35:21
|
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', '^°^')
);
?>
|
23.07.2003, 10:43:05
|
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
|
23.07.2003, 10:50:14
|
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.
|
23.07.2003, 11:01:39
|
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
|
23.07.2003, 11:07:09
|
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.
|
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.
HTML-Code ist aus.
|
|
|
Alle Zeitangaben in WEZ +2. Es ist jetzt 07:49:12 Uhr.
|