Informationen über Besucher - Tutorial

PHP - alles Rund um die Programmierung von PHP und MySQL

Ist die geniale Programmiersprache, da sowohl für Einsteiger geeignet wie auch für Profis.

Moderator: lauras

Beiträge bitte im neuen Forum

Informationen über Besucher - Tutorial

Beitragvon Basiii » Donnerstag 22. April 2010, 14:32

Vorwort

Hier jetzt mal ein Tutorial für Benutzerinfos, es gibt bis jetzt 4 Punkte, ich werde es bei Zeiten erweitern.

Dieses Tutorial bitte nicht kopieren.

Nach Absprache dürft ihr es jedoch benutzen.

Verlinken erwünscht!

Hier gibt es leider keine kleine Demo von Punkt 2 bis 4 mehr. ~ Link veraltet, sorry ~

Inhaltsverzeichnis:

Uhrzeit
Datum
Internetbrowser
Betriebssystem
Zuletzt geändert von Basiii am Mittwoch 22. Februar 2012, 19:46, insgesamt 11-mal geändert.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Uhrzeit ausgeben

Beitragvon Basiii » Donnerstag 22. April 2010, 17:14

Inhaltsverzeichnis:

Uhrzeit
Datum
Internetbrowser
Betriebssystem

Schritt 1, Uhrzeit

Die Uhrzeit ausgeben ist nicht sonderlich schwer, alles was wir brauchen ist folgender Code:
Code: Alles auswählen

  echo date
("H:i");

 


Wir erhalten folgende Ausgabe:
19:03 (Meine jetzige Uhrzeit)



Das sieht eventuell ein bisschen merkwürdig aus, deswegen erweitern wir das ganze jetzt:
Code: Alles auswählen

  echo date
("H:i") ." Uhr";

 


Wir erhalten folgende Ausgabe:
19:03 Uhr



Hier eine Liste sämtlicher Buchstaben die wir für die Uhrzeit Funktion brauchen:

H = Stunde, nummerisch, 24-Stunden-Uhr
h = Stunde, nummerisch, 12-Stunden-Uhr
i = Minute, nummerisch
s = Sekunde, nummerisch
A = AM / PM
a = am / pm


Beispiele:
Code: Alles auswählen

  echo date
("H:i:s:A");

 

Ergibt:

19:10:06:PM



Code: Alles auswählen

  echo date
("h:i:s:a");

 

Ergibt:

07:10:06:pm

Zuletzt geändert von Basiii am Montag 11. Oktober 2010, 20:03, insgesamt 4-mal geändert.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Datum ausgeben

Beitragvon Basiii » Donnerstag 22. April 2010, 17:15

Inhaltsverzeichnis:

Uhrzeit
Datum
Internetbrowser
Betriebssystem

Schritt 2, Datum

Jetzt wird es schon ein bisschen lustiger, wir benutzen wieder date:

Code: Alles auswählen

  echo date
("d.m.Y");

 


Wir erhalten folgende Ausgabe:

20.04.2010 (ungefähr ;) )



Hier nun die Liste sämtlicher Buchstaben die wichtig sind:

d = Tag des Monats, nummerisch (01-31)
z = Tag des Jahres, nummerisch (001-366)
w = Wochentag, nummerisch, Sonntag ist 0 (0-6)
j = Tag des Monats, nummerisch (1-31)
m = Monat, nummerisch (01-12)
n = Monat, nummerisch (1-12)
t = Länge des Monates in Tagen (28,29,30,31)
y = Jahr, zweistellig (96, 67, 09)
Y = Jahr, vierstellig (1996, 1967, 2009)



Dies sind erst einmal die wichtigsten Funktionen. Doch nun wird es spannend, was ist wenn ich folgendes haben möchte:

Sonntag der 05. September 1867



Dies ist wie folgt zu lösen, wir definieren einfach 2 Arrays.
Einen Array nehmen wir für die Wochentage, und einen für die Monate. Wichtig ist das wir als Index zwar Zahlen nehmen, diese jedoch trotzdem als String kennzeichnen, ansonsten geht der PHP Parser von einer anderen Codierung aus.

Zuerst schauen wir einmal was für einen Index wir brauchen, wir nehmen jetzt mal w für die Tage, und n für die Monate (siehe Liste oben), also definieren wir unser Array für die Tage, bedenken wir das bei w Sonntag den Index 0 hat:

Code: Alles auswählen

  $array_wochentage 
= Array
  
(
    "0" => "Sonntag",
    "1" => "Montag",
    "2" => "Dienstag",
    "3" => "Mittwoch",
    "4" => "Donnerstag",
    "5" => "Freitag",
    "6" => "Samstag"
  );

 


Geben wir nun unser Array aus:

Code: Alles auswählen

  print_r
($array_wochentage);

 


Wir erhalten folgende Ausgabe:

Array (
[0] => Sonntag
[1] => Montag
[2] => Dienstag
[3] => Mittwoch
[4] => Donnerstag
[5] => Freitag
[6] => Samstag )


Definieren wir nun unser Monatsarray, n nutzt den Index 1 - 12:

Code: Alles auswählen

$array_monate 
= Array
  
(
    "1" => "Januar",
    "2" => "Februar",
    "3" => "März",
    "4" => "April",
    "5" => "Mai",
    "6" => "Juni",
    "7" => "Juli",
    "8" => "August",
    "9" => "September",
    "10" => "Oktober",
    "11" => "November",
    "12" => "Dezember"
  );

 


Geben wir unser Array nun zum testen aus:

Code: Alles auswählen

print_r
($array_monate);

 


Auf dem Bildschirm erscheint folgende Ausgabe:

Array (
[1] => Januar
[2] => Februar
[3] => März
[4] => April
[5] => Mai
[6] => Juni
[7] => Juli
[8] => August
[9] => September
[10] => Oktober
[11] => November
[12] => Dezember
)


So weit, so gut.

Wir definieren nun als erstes den Wochentag, hierfür erstellen wir eine Variable die mit der date-Funktion den Index des Wochentages ausgibt, und verwenden diesen für unser Array:

Code: Alles auswählen

  $wochentag 
= date('w'); // enthält jetzt eine zahl von 1 - 6

  $wochentag_ausgeschrieben = $array_wochentage[$wochentag]; // $wochentag ist der index des arrays

 


In meinem Beispiel ist es Dienstag, das heißt w müsste eine 2 zurückgeben, wir nutzen also in unserem Wochentage Array den Index 2, Dienstag.

Geben wir unseren Wochentag aus:

Code: Alles auswählen

print $wochentag_ausgeschrieben
;

 


Bei Ausführung des Scriptes sollte nun der Aktuelle Wochentag im Volltext ausgegeben werden.

Jetzt brauchen wir erst einmal den Tag des Monats, wir nutzen d:

Code: Alles auswählen

  $tag_des_monates 
= date('d');

  print $tag_des_monates;

 


Als nächstes widmen wir uns den Monaten, selbes Prinzip wie bei den Tagen:

Code: Alles auswählen

  $monat 
= date('n');

  $monat_ausgeschrieben = $array_monate[$monat];

  print $monat_ausgeschrieben;

 


Es sollte der aktuelle Monat ausgegeben werden.

Nun generieren wir das Jahr, wir verwenden Y:

Code: Alles auswählen

  $jahr 
= date('Y');

  print $jahr;

 


Es sollte das aktuelle Jahr ausgegeben werden.

Endlich können wir die Uhrzeit generieren (siehe oben):

Code: Alles auswählen

  $uhrzeit 
= date("H:i");

  print $uhrzeit;

 


Wir sehen die Uhrzeit.

Nun wird es spannend, wir bauen uns unser Datum zusammen, wir verwenden folgenden Code:

Code: Alles auswählen

$datum 
= $wochentag_ausgeschrieben ." der ". $tag_des_monates ." ". $monat_ausgeschrieben ." ". $jahr ." ". $uhrzeit ." Uhr";

  print $datum;

 


Wir sollten nun ungefähr sowas sehen:


Dienstag der 20 April 2010 20:13 Uhr


Hier noch einmal der komplette Code:

Code: Alles auswählen

$array_wochentage 
= Array
  
(
    "0" => "Sonntag",
    "1" => "Montag",
    "2" => "Dienstag",
    "3" => "Mittwoch",
    "4" => "Donnerstag",
    "5" => "Freitag",
    "6" => "Samstag"
  );

$array_monate = Array
  
(
    "1" => "Januar",
    "2" => "Februar",
    "3" => "März",
    "4" => "April",
    "5" => "Mai",
    "6" => "Juni",
    "7" => "Juli",
    "8" => "August",
    "9" => "September",
    "10" => "Oktober",
    "11" => "November",
    "12" => "Dezember"
  );

  $wochentag = date('w'); // enthält jetzt eine zahl von 1 - 6

  $wochentag_ausgeschrieben = $array_wochentage[$wochentag]; // $wochentag ist der index des arrays

  $tag_des_monates = date('d');

  $monat = date('n');

  $monat_ausgeschrieben = $array_monate[$monat];

  $jahr = date('Y');

  $uhrzeit = date("H:i");

  $datum = $wochentag_ausgeschrieben ." der ". $tag_des_monates ." ". $monat_ausgeschrieben ." ". $jahr ." ". $uhrzeit ." Uhr";

  print $datum;

 
Zuletzt geändert von Basiii am Montag 11. Oktober 2010, 20:04, insgesamt 4-mal geändert.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Browser herausfinden

Beitragvon Basiii » Donnerstag 22. April 2010, 17:26

Inhaltsverzeichnis:

Uhrzeit
Datum
Internetbrowser
Betriebssystem

Schritt 3, den vom User benutzten Browser feststellen:

Jetzt wird es interessant, wir interessieren uns dafür welchen Browser der User benutz?

Wir könnten get_browser() verwenden, doch viele PHP Webserver haben keine oder eine veraltete browscap.ini Datei.

Doch davon lassen wir uns nicht einschränken, wir nutzen die von PHP bereitgestellte Variable $_SERVER['HTTP_USER_AGENT'].

Dann müssen wir leider eine Liste mit allen verbreiteten Browsern erstellen.

Danach haben wir nur noch ein Problem, $_SERVER['HTTP_USER_AGENT'] gibt in der Regel folgendes aus (Beispiel):

Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/532.5 (KHTML, like Gecko) Chrome/4.1.249.1045 Safari/532.5



Tolle Wurst, aber egal, wir durchsuchen den String mit strstr und strpos.

Als erstes rufen wir die so genannte Umgebungsvariable ab:

Code: Alles auswählen

  $information 
= $_SERVER['HTTP_USER_AGENT'];

 



Nun erstellen wir eine Liste mit Browsern, ich stelle hier meine zur Verfügung:

Code: Alles auswählen

    if
(strpos($information, "Firefox") OR strpos($information, "Firebird"))
    {
        $browser = 'Firefox';
    }
    if(strpos($information, "Avant"))
    {
        $browser = 'Avant Browser';
    }
    if(strpos($information, "AppleWebKit"))
    {
        $browser = 'AppleWebKit';
    }
    if(strpos($information, "MSIE 5.0"))
    {
        $browser = 'Internet Explorer 5.0';
    }
    if(strpos($information, "MSIE 6.0"))
    {
        $browser = 'Internet Explorer 6.0';
    }
    if(strpos($information, "MSIE 7.0"))
    {
        $browser = 'Internet Explorer 7.0';
    }
    if(strpos($information, "MSIE 8.0"))
    {
        $browser = 'Internet Explorer 8.0';
    }
    if(strpos($information, "Netscape"))
    {
        $browser = 'Netscape';
    }
    if(strpos($information, "Camino"))
    {
        $browser = 'Camino';
    }
    if(strpos($information, "Galeon"))
    {
        $browser = 'Camino';
    }
    if(strpos($information, "Galeon"))
    {
        $browser = 'Galeon';
    }
    if(strpos($information, "Konqueror"))
    {
        $browser = 'Konqueror';
    }
    if(strpos($information, "Safari"))
    {
        $browser = 'Safari';
    }
    if(strpos($information, "OmniWeb"))
    {
        $browser = 'OmniWeb';
    }
    if(strpos($information, "Opera"))
    {
        $browser = 'Opera';
    }
    if(strpos($information, "Chrome"))
    {
        $browser = 'Google Chrome';
    }
    if(strpos($information, "Mozilla/5.0"))
    {
        $browser = 'Mozilla';
    }
    if
    
(
      strpos($information, "Mozilla/4.0") OR
      strpos
($information, "Mozilla/3.0") OR
      strpos
($information, "Mozilla/4.8")
    )
    {
        $browser = 'Netscape';
    }

 


So, nun enthält die Variable $browser den vom User benutzen Browser, toll oder?

Probieren wir es aus:

Code: Alles auswählen

  print $browser
;

 


Und tatsächlich:

Google Chrome,

Firefox


Es klappt, doch Achtung auf keinen Fall elseif nutzen, es klappt nicht!

Nicht genug? Lies weiter.
Zuletzt geändert von Basiii am Montag 11. Oktober 2010, 20:04, insgesamt 5-mal geändert.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Betriebssystem herausfinden

Beitragvon Basiii » Donnerstag 22. April 2010, 18:00

Inhaltsverzeichnis:

Uhrzeit
Datum
Internetbrowser
Betriebssystem

Schritt 4, das Betriebssystem des Benutzers feststellen:

Cool was?

Wir nutzen wieder die Umgebungsvariable:

Code: Alles auswählen

  $information 
= $_SERVER['HTTP_USER_AGENT'];

 


Nun setzen wir erst einmal die Variable $betriebssystem auf "Unbekannt", falls ein nicht in der Liste enthaltenes Betriebssystem verwendet wird:

Code: Alles auswählen

  $betriebssystem 
= "Unbekannt";

 


So weit, so gut...

Diesmal benutzen wir strstr statt strpos.

Außerdem benutzen wir nicht if, sondern switch(Finde ich übersichtlicher, ihr könnt auch if nutzen)

Meine Liste:

Code: Alles auswählen

switch 
($information)
  {

    case strstr($information, "Win 95") OR strstr($information, "Windows 95"):
      $betriebssystem = 'Windows 95';
    break;

    case strstr($information, "Win 98") OR strstr($information, "Windows 98"):
      $betriebssystem = 'Windows 98';
    break;

    case strstr($information, "NT 4.0") OR strstr($information, "WinNT 4.0"):
      $betriebssystem = 'Windows NT';
    break;

    case strstr($information, "NT 5.0") OR strstr($information, "WinNT 5.0"):
      $betriebssystem = 'Windows 2000';
    break;

    case strstr($information, "NT 5.1") OR strstr($information, "WinNT 5.1"):
      $betriebssystem = 'Windows XP';
    break;

    case strstr($information, "Mac"):
      $betriebssystem = 'Mac OS';
    break;

    case strstr($information, "Linux"):
      $betriebssystem = 'Linux';
    break;

    case strstr($information, "Unix"):
      $betriebssystem = 'Unix';
    break;

    case strstr($information, "NT 6.0") OR strstr($information, "WinNT 6.0"):
      $betriebssystem = 'Windows Vista';
    break;

    case strstr($information, "NT 6.1") OR strstr($information, "WinNT 6.1"):
      $betriebssystem = 'Windows 7';
    break;

  }
 


Nun enthält die Variable $betriebssystem entweder das Betriebssystem, wenn ihr aber Pech habt aber "Unbekannt", da ich Windows 7 nutze wird mir folgendes ausgegeben:

Windows 7



Wenn ich folgendes tippe:

Code: Alles auswählen

print $betriebssystem
;

 
Zuletzt geändert von Basiii am Montag 11. Oktober 2010, 20:05, insgesamt 7-mal geändert.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Beitragvon Basiii » Donnerstag 22. April 2010, 18:02

Inhaltsverzeichnis:

Uhrzeit
Datum
Internetbrowser
Betriebssystem

Schritt 3 + 4 Code:

Hier könnt ihr noch einmal den vollständigen Code zur Ausgabe des Browsers und des Betriebssystem sehen.

Code: Alles auswählen

  $information 
= $_SERVER['HTTP_USER_AGENT'];

  print $information;

  $betriebssystem = "Unbekannt";

  switch ($information)
  {

    case strstr($information, "Win 95") OR strstr($information, "Windows 95"):
      $betriebssystem = 'Windows 95';
    break;

    case strstr($information, "Win 98") OR strstr($information, "Windows 98"):
      $betriebssystem = 'Windows 98';
    break;

    case strstr($information, "NT 4.0") OR strstr($information, "WinNT 4.0"):
      $betriebssystem = 'Windows NT';
    break;

    case strstr($information, "NT 5.0") OR strstr($information, "WinNT 5.0"):
      $betriebssystem = 'Windows 2000';
    break;

    case strstr($information, "NT 5.1") OR strstr($information, "WinNT 5.1"):
      $betriebssystem = 'Windows XP';
    break;

    case strstr($information, "Mac"):
      $betriebssystem = 'Mac OS';
    break;

    case strstr($information, "Linux"):
      $betriebssystem = 'Linux';
    break;

    case strstr($information, "Unix"):
      $betriebssystem = 'Unix';
    break;

    case strstr($information, "NT 6.0") OR strstr($information, "WinNT 6.0"):
      $betriebssystem = 'Windows Vista';
    break;

    case strstr($information, "NT 6.1") OR strstr($information, "WinNT 6.1"):
      $betriebssystem = 'Windows 7';
    break;

  }


    if(strpos($information, "Firefox") OR strpos($information, "Firebird"))
    {
        $browser = 'Firefox';
    }
    if(strpos($information, "Avant"))
    {
        $browser = 'Avant Browser';
    }
    if(strpos($information, "AppleWebKit"))
    {
        $browser = 'AppleWebKit';
    }
    if(strpos($information, "MSIE 5.0"))
    {
        $browser = 'Internet Explorer 5.0';
    }
    if(strpos($information, "MSIE 6.0"))
    {
        $browser = 'Internet Explorer 6.0';
    }
    if(strpos($information, "MSIE 7.0"))
    {
        $browser = 'Internet Explorer 7.0';
    }
    if(strpos($information, "MSIE 8.0"))
    {
        $browser = 'Internet Explorer 8.0';
    }
    if(strpos($information, "Netscape"))
    {
        $browser = 'Netscape';
    }
    if(strpos($information, "Camino"))
    {
        $browser = 'Camino';
    }
    if(strpos($information, "Galeon"))
    {
        $browser = 'Camino';
    }
    if(strpos($information, "Galeon"))
    {
        $browser = 'Galeon';
    }
    if(strpos($information, "Konqueror"))
    {
        $browser = 'Konqueror';
    }
    if(strpos($information, "Safari"))
    {
        $browser = 'Safari';
    }
    if(strpos($information, "OmniWeb"))
    {
        $browser = 'OmniWeb';
    }
    if(strpos($information, "Opera"))
    {
        $browser = 'Opera';
    }
    if(strpos($information, "Chrome"))
    {
        $browser = 'Google Chrome';
    }
    if(strpos($information, "Mozilla/5.0"))
    {
        $browser = 'Mozilla';
    }
    if
    
(
      strpos($information, "Mozilla/4.0") OR
      strpos
($information, "Mozilla/3.0") OR
      strpos
($information, "Mozilla/4.8")
    )
    {
        $browser = 'Netscape';
    }

    print '<p>Betriebssystem: <b>'. $betriebssystem .'</b></p>';
    print '<p>Browser: <b>'. $browser .'</b></p>';

 
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Frage zu dem USER_AGENT ...

Beitragvon drPHIP132 » Donnerstag 26. Januar 2012, 20:09

Frage zu dem USER_AGENT von Mobilgeräten:


Gibt es dort irgendwelche Gemeinsamkeiten, die darauf hindeuten, dass es sich um ein Mobilgerät handelt oder müsste man jetzt einzeln von jedem Handy dieser Welt den USER_AGENT herausfinden?
Gibt es dafür evtl. irgendwo vorgefertigte Listen?
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Informationen über Besucher - Tutorial

Beitragvon Basiii » Freitag 27. Januar 2012, 00:35

Schau doch selbst nach ;)

Mal ein paar User Agents von mobilen Geräten:

Code: Alles auswählen
Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_0_1 like Mac OS X; de_DE) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.2;FBBV/4020.0;FBDV/iPhone2,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/4.0.1;FBSS/1; FBCR/Carrier;FBID/phone;FBLC/de_DE;FBSF/1.0]

Mozilla/5.0 (iPhone; CPU iPhone OS 5_0_1 like Mac OS X) AppleWebKit/534.46 (KHTML, like Gecko) Version/5.1 Mobile/9A405 Safari/7534.48.3

Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_4 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8K2 Safari/6533.18.5

Mozilla/5.0 (iPhone; U; CPU iPhone OS 5_0_1 like Mac OS X; de_DE) AppleWebKit (KHTML, like Gecko) Mobile [FBAN/FBForIPhone;FBAV/4.0.3;FBBV/4030.0;FBDV/iPhone3,1;FBMD/iPhone;FBSN/iPhone OS;FBSV/5.0.1;FBSS/2; FBCR/Vodafone.de;FBID/phone;FBLC/de_DE;FBSF/2.0]

Mozilla/5.0 (Linux; U; Android 2.3.3; de-de; HTC_DesireS_S510e Build/GRI40) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1

Mozilla/5.0 (Linux; U; Android 2.2.2; de-de; LG-P990 Build/FRG83G) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 MMS/LG-Android-MMS-V1.0/1.2

Mozilla/5.0 (Linux; U; Android 2.3.3; de-de; GT-S5830 Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1


Ich entdecke zum Beispiel verhaltensauffällig oft Wörter wie iPhone oder Android.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57


Beiträge bitte im neuen Forum

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron