Cookie bis 0 Uhr setzen

Xym

Erfahrenes Mitglied
Hi!

Ich brauche einen Cookie der um 0 Uhr verfällt. Brauche ihn um zu gucken, ob der Besucher heute schon auf der Seite war oder nicht, für den Besucher zähler.

PHP:
$hour = 23 - date('G');  
$minute = 60 - date('i'); 
setcookie("CookieName", "Value",time() + 60 * $minute + 60 * 60 * $hour);

Aber Firefox sagt, dass der Cookie nur bis zum Ende der Sitzung bestehen bleibt.

Wieso?
 
Wenn ich time() weglasse, kommt die richtige Zeit schon raus.

Ich würde ja verstehe, wenn der Cookie nur 5 Stunden o.ä.

Aber er würd ja am Ende der Sitzung schong gelöscht ...
 
Hast du vielleicht im Firefox eingestellt das die Privaten Daten nach Sitzungsende gelöscht werden?
 
  • Gefällt mir
Reaktionen: Xym
Liegt scheinbar echt an Firefox. In Opera stimmt die Zeit.

Nur das stellt für mich das Problem da, dass ich nicht genau sagen kann ob der Besucher heute schon da war.

Gibts es einen zuverlässige Methode das zu bestimmen?
 
Ich würde mal sagen Datenbank, speicherst dort einfach seine Loginzeit und seine Auslogzeit, oder bin ich da jetzt auf dem falschem Dampfer?
 
Das Problem ist, der Besucher hat vermutlich keine Logindaten die man ihm dann zuordnen könnte.
Eventuell - neben Cookies - über eine DB machen, mit IP und der Verfallszeit.
 
  • Gefällt mir
Reaktionen: Xym
Habe ich mir erst heute gebastelt, wer Interesse hat:
Besucher wird nur einmal pro Tag gezählt.


PHP:
<?php 
#error_reporting(E_ALL);
#ini_set('display_errors', TRUE);

mysql_connect('localhost', 'NAME', 'PASSWORT') or die  ("Keine Verbindung möglich: ".mysql_error());
mysql_select_db('DATENBANKNAME') or die  ("Keine Verbindung möglich: ".mysql_error());

$IP = $_SERVER['REMOTE_ADDR'];
$DATE = date('m.d.y');
$TIME = date('h:i:s');

$SQL_ABF = "SELECT * FROM `counter` WHERE `ip`='{$IP}' AND `date`='{$DATE}'";
#echo "{$SQL_ABF}\n";
$SQL_ERG = mysql_num_rows(mysql_query($SQL_ABF));
#echo "{$SQL_ERG}\n";
if($SQL_ERG==true) {

    #echo 'nichts tun da zeit noch nicht vorbei.';
        
} else {
  
    mysql_query("INSERT INTO `counter` (id, ip, date, time) VALUES ('','{$IP}','{$DATE}','{$TIME}')");
    #echo 'OK';
}                          
?>


DATENBANK:
PHP:
CREATE TABLE IF NOT EXISTS `counter` (
  `id` int(11) NOT NULL auto_increment,
  `ip` varchar(50) NOT NULL default '',
  `date` varchar(50) NOT NULL default '',
  `time` varchar(50) NOT NULL default '',
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8;
 
Zurück