programmieren:statistiken
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
programmieren:statistiken [23/05/2020 11:20] – angelegt conny | programmieren:statistiken [27/05/2020 12:39] (aktuell) – conny | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
===== Statistik Programme ===== | ===== Statistik Programme ===== | ||
+ | {{ : | ||
Folgende Programme sind interessant: | Folgende Programme sind interessant: | ||
|CrazyStat|https:// | |CrazyStat|https:// | ||
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 (455 views) · Zuletzt geändert: 23/05/2020 11:20 von conny