Schnipsel mit Mysql
MySQL-Dump
CREATE TABLE ips_test (
id int(10) unsigned NOT NULL auto_increment,
ip char(15) NOT NULL default '',
time int(14) NOT NULL default '0',
PRIMARY KEY (id)
) TYPE=MyISAM;
<?php
$db_host = "localhost";
$db_user = "******";
$db_passwd = "******";
$db_name = "******";
$tab = "ips_test";
$time_to_del = 30*60;
$diff = time()-$time_to_del;
$ip = $_SERVER['REMOTE_ADDR'];
$ver = mysql_connect($db_host,$db_user,$db_passwd);
mysql_select_db($db_name);
mysql_query("DELETE FROM `".$tab."` WHERE `time` < ".$diff.""
$qdrin = "SELECT COUNT(*) FROM `".$tab."`";
$qdrin .= " WHERE `ip`='".$ip."'";
list($drin) = mysql_fetch_row(mysql_query($qdrin));
if($drin > 0) {
// IP steht bereits in DB
$query = "UPDATE `".$tab."` SET `time`='".time()."'";
$query .= " WHERE `ip`='".$ip."'";
mysql_query($query);
echo "Du warst vor kurzer Zeit schonmal hier";
} else {
// IP steht noch nicht in DB
$query = "INSERT INTO `".$tab."` SET";
$query .= " `time`='".time()."',`ip`='".$ip."'";
mysql_query($query);
echo "Du warst in letzter Zeit nicht hier";
}
?>
Schnipsel mit TXT datei.
<?php
$file = "ip_data.dat";
$duration = 30*60; // 30 Minuten
$lines = file($file);
foreach($lines as $line) {
list($ip, $time) = explode("µ", $line);
if($time > time()-$duration) {
$ips[$ip] = trim($time);
}
}
$ip = $_SERVER['REMOTE_ADDR'];
if(@array_key_exists($ip, $ips)) {
if($ips[$ip] > time()-$duration) {
// TRUE
$ips[$ip] = time();
$was_here = TRUE;
}
} else {
$ips[$ip] = time();
$was_here = FALSE;
}
$fp = fopen($file, "w"
foreach($ips as $ip=>$time) {
fputs($fp, $ip."µ".$time."\n"
}
fclose($fp);
if($was_here) {
echo "Du warst innerhalb der letzten 30 Minuten hier.";
} else {
echo "Du warst innerhalb der letzten 30 Minuten <b>nicht</b> hier.";
}
?>
Datei muss CHMOD 777 haben.
[B]
Quelle: www.php4u.net
Selbstgeschrieben würde es mir jetzt zu lange dauern.
mfg alex