Problem mit Counter

wSam

Erfahrenes Mitglied
Hallo zusammen

Ich habe folgenden Counter:

PHP:
<?php
include("forum/inc/connect.inc.php");
$ip = $_SERVER["REMOTE_ADDR"];

$sql = mysql_query("select * from tabip where ip='$ip'");
if(mysql_num_rows($sql) < 1) { 
    $zeit = time();
    mysql_query("update tabcounter set hits=hits+1");
    mysql_query("insert into tabip (ip, zeit) values ('$ip', '$zeit')");
} 

$del = $zeit - 86400;

echo $del;
mysql_query("delete * from tabip where zeit <= '$del'");

$sql = mysql_query("select * from tabcounter");
$row = mysql_fetch_array($sql);
echo 'Besucher: ';
echo $row["hits"];
?>

Nur wird irgendwie $zeit wohl immer wieder auf 0 gesetzt, sodass der Counter nicht funktioniert. Weiss da jemand eine Lösung?
 
Da du der Variable $time den Wert time() nur in der IF-Abfrage zuweist, existiert sie auch nur, wenn der IF-Zweig ausgeführt wird
 
Hmm das ist aber schlecht. Und wie könnte ich dies Umgehen?

PS: Ich bin in absoluter Zeitnot, darum poste ich hier so schwasinnige Probleme. Sorry.
 
Du musst einfach nur das $zeit=time(); vor dem IF schreiben:
PHP:
 <?php
 include("forum/inc/connect.inc.php");
 $ip = $_SERVER["REMOTE_ADDR"];
 $zeit=time(); //<------
 $sql = mysql_query("select * from tabip where ip='$ip'");
 if(mysql_num_rows($sql) < 1) {
 	mysql_query("update tabcounter set hits=hits+1");
 	mysql_query("insert into tabip (ip, zeit) values ('$ip', '$zeit')");
 }
 
 $del = $zeit - 86400;
 
 echo $del;
 mysql_query("delete * from tabip where zeit <= '$del'");
 
 $sql = mysql_query("select * from tabcounter");
 $row = mysql_fetch_array($sql);
 echo 'Besucher: ';
 echo $row["hits"];
 ?>
 
@birnkammer

Ich habe es so gelöst:

PHP:
<?php
include("forum/inc/connect.inc.php");
$ip = $_SERVER["REMOTE_ADDR"];

$sql = mysql_query("select * from tabip where ip='$ip'");
if(mysql_num_rows($sql) < 1) {
    $zeit = time();
    mysql_query("update tabcounter set hits=hits+1");
    mysql_query("insert into tabip (ip, zeit) values ('$ip', '$zeit')");
    return $zeit;
}
$del = time() - 86400;

mysql_query("delete from tabip where zeit <= '$del'")or die("Keine DB Verbind.");

$sql = mysql_query("select * from tabcounter");
$row = mysql_fetch_array($sql);
echo 'Besucher: ';
echo $row["hits"];


?>

Nochmals Vielen Dank
 
Zurück