programmieren:statistiken
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
| programmieren:statistiken [23/05/2020 11:21] – conny | programmieren:statistiken [Unbekanntes Datum] (aktuell) – Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
|---|---|---|---|
| Zeile 8: | Zeile 8: | ||
| |kleines Counter Script|https:// | |kleines Counter Script|https:// | ||
| |Absolute Log Analyzer|http:// | |Absolute Log Analyzer|http:// | ||
| + | |||
| + | ===== Statistiken in PHP ====== | ||
| + | ==== Logfiles mit PHP generieren ==== | ||
| + | |||
| + | Wenn der Besucher eine Seite aufruft, dann werden verschiedene Daten in ein " | ||
| + | |||
| + | So sieht ein Logeintrag aus: | ||
| + | |||
| + | | 1 | 09.10.2015 22:47:10 5.178.162.14 /index.php Mozilla/5.0 (Windows NT 6.1; WOW64; rv:41.0) Gecko/ | ||
| + | |||
| + | Das Logscript sieht wie folgt aus: | ||
| + | |||
| + | <code php| statis.php> | ||
| + | <?php | ||
| + | $format = " | ||
| + | |||
| + | $datum_zeit = date(" | ||
| + | $ip = $_SERVER[" | ||
| + | $site = $_SERVER[' | ||
| + | $browser = $_SERVER[" | ||
| + | |||
| + | $monate = array(1=>" | ||
| + | $monat = date(" | ||
| + | $jahr = date(" | ||
| + | |||
| + | $dateiname=" | ||
| + | |||
| + | $header = array(" | ||
| + | $infos = array($datum_zeit, | ||
| + | |||
| + | if($format == " | ||
| + | | ||
| + | } else { | ||
| + | | ||
| + | } | ||
| + | |||
| + | $write_header = !file_exists($dateiname); | ||
| + | |||
| + | $datei=fopen($dateiname," | ||
| + | |||
| + | if($write_header) { | ||
| + | | ||
| + | | ||
| + | } else { | ||
| + | | ||
| + | } | ||
| + | |||
| + | | ||
| + | } | ||
| + | |||
| + | fputs($datei, | ||
| + | fclose($datei); | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Die Logdateien werden im Ordner logs hinterlegt, dabei ein Logfile je Monat. Bei Format könnt ihr zwischen txt und csv wählen. Bei txt werden die Logdaten in eine Textdatei geschrieben, | ||
| + | |||
| + | == Das Script im Detail == | ||
| + | |||
| + | In Zeile 5 bis 7 werden verschiedene Information abgefragt, beispielsweise die IP, die aufgerufene Seite sowie die Browser- und Betriebssystemkennung des Besuchers. | ||
| + | |||
| + | Zeile 9 bis 13 behandeln die Benennung des Logfiles. Zuerst wird ein Array mit den deutschen Monatsnamen erstellt, danach die Information zum Monat und Jahr abgefragt (siehe [[https:// | ||
| + | |||
| + | Zeile 15 und 16 beinhaltet unsere verschiedenen Informationen, | ||
| + | |||
| + | Zeile 18 bis 22 überprüft das Format. Falls csv ausgewählt wurde, werden die Einträge im Format " | ||
| + | |||
| + | Zeile 24 überprüft, | ||
| + | |||
| + | Die eigentlichen Daten zum Aufruf werden in Zeile 38 in die Datei geschrieben. | ||
| + | |||
| + | Autor: [[https:// | ||
| + | |||
| + | |||
| + | ==== Einfaches PHP Script ==== | ||
| + | <code | download> | ||
| + | <? | ||
| + | foreach (getallheaders() as $name => $value) { | ||
| + | echo " | ||
| + | } | ||
| + | ?> | ||
| + | </ | ||
| + | |||
| + | Ausgabe: | ||
| + | Host: www.dl2fbo.de | ||
| + | X-Real-IP: 188.107.167.58 | ||
| + | X-Forwarded-For: | ||
| + | Connection: close | ||
| + | User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/ | ||
| + | Accept: text/ | ||
| + | Accept-Language: | ||
| + | Accept-Encoding: | ||
| + | Cookie: PHPSESSID=21d38c033027fae3be5bcbe4ab6d7be6 | ||
| + | Upgrade-Insecure-Requests: | ||
| + | Cache-Control: | ||
| + | |||
| + | |||
| + | ==== PHP Function ==== | ||
| + | |||
| + | <code | download> | ||
| + | if (!function_exists(' | ||
| + | |||
| + | /** | ||
| + | * Get all HTTP header key/values as an associative array for the current request. | ||
| + | * | ||
| + | * @return string[string] The HTTP header key/value pairs. | ||
| + | */ | ||
| + | function getallheaders() | ||
| + | { | ||
| + | $headers = array(); | ||
| + | |||
| + | $copy_server = array( | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | foreach ($_SERVER as $key => $value) { | ||
| + | if (substr($key, | ||
| + | $key = substr($key, | ||
| + | if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { | ||
| + | $key = str_replace(' | ||
| + | $headers[$key] = $value; | ||
| + | } | ||
| + | } elseif (isset($copy_server[$key])) { | ||
| + | $headers[$copy_server[$key]] = $value; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | if (!isset($headers[' | ||
| + | if (isset($_SERVER[' | ||
| + | $headers[' | ||
| + | } elseif (isset($_SERVER[' | ||
| + | $basic_pass = isset($_SERVER[' | ||
| + | $headers[' | ||
| + | } elseif (isset($_SERVER[' | ||
| + | $headers[' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | return $headers; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | </ | ||
| + | == Ausgabe == | ||
| + | <php> | ||
| + | echo "< | ||
| + | print_r( getallheaders() ); | ||
| + | echo "</ | ||
| + | if (!function_exists(' | ||
| + | |||
| + | /** | ||
| + | * Get all HTTP header key/values as an associative array for the current request. | ||
| + | * | ||
| + | * @return string[string] The HTTP header key/value pairs. | ||
| + | */ | ||
| + | function getallheaders() | ||
| + | { | ||
| + | $headers = array(); | ||
| + | |||
| + | $copy_server = array( | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ); | ||
| + | |||
| + | foreach ($_SERVER as $key => $value) { | ||
| + | if (substr($key, | ||
| + | $key = substr($key, | ||
| + | if (!isset($copy_server[$key]) || !isset($_SERVER[$key])) { | ||
| + | $key = str_replace(' | ||
| + | $headers[$key] = $value; | ||
| + | } | ||
| + | } elseif (isset($copy_server[$key])) { | ||
| + | $headers[$copy_server[$key]] = $value; | ||
| + | } | ||
| + | } | ||
| + | |||
| + | if (!isset($headers[' | ||
| + | if (isset($_SERVER[' | ||
| + | $headers[' | ||
| + | } elseif (isset($_SERVER[' | ||
| + | $basic_pass = isset($_SERVER[' | ||
| + | $headers[' | ||
| + | } elseif (isset($_SERVER[' | ||
| + | $headers[' | ||
| + | } | ||
| + | } | ||
| + | |||
| + | return $headers; | ||
| + | } | ||
| + | |||
| + | } | ||
| + | |||
| + | </ | ||
| + | |||
programmieren/statistiken.1590225712.txt.gz · Zuletzt geändert: 23/05/2020 10:21 (Externe Bearbeitung)
