php letzter Besuch mit Cookie

Christian Böttger 10 Sep 2014 0 Kommentare
12 Stimmen (4.25 von 5.00)

Hallo, heute möchte ich euch mit meinen Script, php letzter Besuch mit Cookie, zeigen wie Ihr euren Besuchern das Datum und die Uhrzeit des letzten Besuchs auf eurer Seite anzeigen könnt.

Vorwort zu php letzter Besuch mit Cookie:

Im heutigen Beitrag möchte ich euch zeigen wie Ihr ein Cookie erstellt, dieses bei dem nächsten Besuch des Benutzers wieder einlesen könnt und dieses in einer Variable abspeichert. Dieses kleine Script ist für mich dazu gedacht meinen Besuchern neue Artikel seit des letzten Besuches anzuzeigen. Die hier verwendete Sprache ist PHP.

 

Das Script php letzter Besuch mit Cookie:

Was will ich machen? Ich möchte meinen Besuchern anzeigen was sich seit dem letzten Besuch getan hat in meinem Blog und das nicht nur einmal sondern die ganze Zeit so lange sie auf meinem Blog sich um schauen und lesen.

Um das zu erreichen speichere ich die Daten des Cookies in eine Session-Variable. Um aber die Daten in einer Session zu speichern, muss erst einmal eine erstellt werden. Wenn euer Hoster die Funktion auto.session unterstützt braucht Ihr nichts weiter tun, ist diese aber abgestellt beim Server müssen wir eine neuer Session erstellen und das machen wir mit folgender Zeile.

<?php session_start(); ?>

Diese Zeile schreibt Ihr am besten als erstes in eure PHP Datei. Jetzt bekommt jeder Besucher eine Session-ID zugewiesen, die er dann für diesen Besuch behält und sich auf unserer Seite aufhält und surft.

Da wir den letzten Besuch anzeigen wollen, geben wir jetzt noch zur Sicherheit die Zeitzone an in dem unsere Website veröffentlicht ist an.

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

?>

 Als nächstes brauchen wir eine Variable für die Bezeichnung unseres Cookies z.B. letzterBesuch.

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

?>

 Soweit so gut, jetzt müssen wir überprüfen ob dieser Besucher schon einmal auf unserer Seite war oder nicht. Das machen wir wie folgt:

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

if (isset($_COOKIE[$cookiename])) {

} else {

}
?>

 Die Variable $_COOKIE  ist eine Globale Variable von PHP und in ihr stehen alle vorhandenen Cookies zu unserer Seite und abrufen können wir diese mit der Bezeichnung des Cookies.

Die Überprüfung ist geschehen und wir nehmen erst mal an das ein Cookie vorhanden ist. Nun müssen wir überprüfen ob dieses Cookie auch in unserer Session schon gespeichert ist, mit folgendem Abschnitt unseres Scripts php letzter Besuch mit Cookie.

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

if (isset($_COOKIE[$cookiename])) {
   if (isset($_SESSION["last_visit"])) {

   } else {

   }
} else {

}
?>

 Ok, diese Überprüfung ist auch geschehen und es ist eine Variable gesetzt und der Cookie ist eingelesen und gespeichert in der Session-Variable $_SESSION[„last_visit“]  dann können wir den vorhandenen Cookie überschreiben und die neue Besuchszeit setzten, mit folgender markierter Zeile.

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

if (isset($_COOKIE[$cookiename])) {
   if (isset($_SESSION["last_visit"])) {
      setcookie( $cookiename, time(), time() + (60*60*24*365), '/' );
   } else {

   }
} else {

}
?>

 Ok, der Cookie ist neu gesetzt und die Gültigkeit beträgt 365 Tage, so lange speichert der Browser den Cookie bevor er gelöscht wird.

Was fehlt uns jetzt noch im Script php letzter Besuch mit Cookie? Genau, was ist wenn die $_SESSION[„last_visit“]  nicht gesetzt ist und muss noch gesetzt werden? Dazu geben wir in unser Script diese kleine Zeile nach dem ersten } else {  ein.

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

if (isset($_COOKIE[$cookiename])) {
   if (isset($_SESSION["last_visit"])) {
      setcookie( $cookiename, time(), time() + (60*60*24*365), '/' );
   } else {
      $_SESSION["last_visit"] = $_COOKIE[$cookiename];
   }
} else {

}
?>

 Wenn nun die Variable $_SESSION[„last_visit“] nicht gesetzt ist wird die markierte Zeile ausgeführt und der Inhalt unseres Cookies in dieser Variable gespeichert.

Soweit haben wir das erst mal, aber was ist wenn der Besucher nun das erste mal auf unserer Seite ist und noch kein Cookie hat? Dazu brauchen wir die folgenden markierten Zeilen nach dem zweiten } else { .

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

if (isset($_COOKIE[$cookiename])) {
   if (isset($_SESSION["last_visit"])) {
      setcookie( $cookiename, time(), time() + (60*60*24*365), '/' );
   } else {
      $_SESSION["last_visit"] = $_COOKIE[$cookiename];
   }
} else {
  setcookie( 'howto-blog', time(), time() + (60*60*24*365), '/' );
  $_SESSION["last_visit"] = time();
}
?>

 Mit diesen zwei Zeilen wird ein neuer Cookie erstellt und mit er aktuellen Zeit gefüttert und gleichzeitig die aktuelle Zeit in unserer Session-Variable gespeichert. Bei dem nächsten Seitenaufruf wird dann die Zeit aus unserem Cookie genommen und angezeigt, solange die Session gültig ist ändert sich das angezeigte Datum nicht.

Ich habe hier die Funktion time();  verwendet um die Zeit abzuspeichern, gebt ihr die $_SESSION[„last_visit“] direkt aus erhaltet ihr nur viele Zahlen hintereinander, also müssen wir die Ausgabe in ein leserliches Format umwandeln z.B. mit dieser Zeile.

<?php
session_start();
date_default_timezone_set("Europe/Berlin");

$cookiename = "letzterBesuch";

if (isset($_COOKIE[$cookiename])) {
   if (isset($_SESSION["last_visit"])) {
      setcookie( $cookiename, time(), time() + (60*60*24*365), '/' );
   } else {
      $_SESSION["last_visit"] = $_COOKIE[$cookiename];
   }
} else {
  setcookie( 'howto-blog', time(), time() + (60*60*24*365), '/' );
  $_SESSION["last_visit"] = time();
}

echo date("d.m.Y H:i", $_SESSION["last_visit"]);
?>

 Nun erhaltet Ihr eine Ausgabe im Format: 09.09.2014 10:22

Nun bin ich auch schon wieder fertig mit dem Artikel und ich hoffe das ich euch mit meinem kleinen Script php letzter Besuch mit Cookie helfen konnte.

 

Links zum Script php letzter Besuch mit Cookie:

Beschreibung zu $_COOKIE

Beschreibung zu $_SESSION

Beschreibung zu time();

Artikel drucken

Kommentare (0)