Ich grüsse Euch,
ich habe ein Problem mit dem löschen von DB-Inhalten nach einer abgelaufenen Zeit:
Vorgeschichte:
Beim Seitenaufruf der Home-Seite erstelle ich eine Session, die ich zusätzlich in eine DB-Tabelle "session" eintrage.
Hinein schreibe ich (mittels Flash vom Client) im Intervall von 1 min einen Timestamp "ses_time2" - D.h. "ses_time2" hat so ziemlich die gleiche Zeit wie der Server hat.
Wenn jetzt der User die Hompage verlässt, weis die DB ja nicht, dass er wieder weg ist.
D.h. der Inhalt der Users-Session möchte ich wieder entfernen.
Das versuche ich wie folgt zu lösen:
PHP-Code:
<?
include ("db_zugang.php"); //ausführen vom "db_zugang.php"
// Variablen setzen
$del_time = 5; //Zeit, nachdem ein inaktiver Sessioneintrag gelöscht werden soll
$time = date ("Y-m-d-H-i",time()); // Datum + Zeit
$time_ex = explode("-",$time);
$todo = "SELECT ses_time2 FROM session";
$ergebnis = mysql_db_query($db_name, $todo);
while($inhalt = mysql_fetch_array( $ergebnis ) ) {
$time2 = $inhalt['ses_time2'];
$time2_ex = explode("-",$time2);
$min = $time_ex[4]-$time2_ex[4];
$stu = $time_ex[3]-$time2_ex[3];
$tag = $time_ex[2]-$time2_ex[2];
$mon = $time_ex[1]-$time2_ex[1];
$jahr = $time_ex[0]-$time2_ex[0];
$gesamt = $min+($stu*60)+($tag*60*24)+($mon*60*24*30)+($jahr*60*24*30*12);
$todo2 = "DELETE FROM session WHERE '$gesamt' > '$del_time'";
$delete = mysql_query($todo2);
echo $gesamt."<br>";
};
?>
Aber !!! wenn einer der User über die in "$del_time" eingetragenen 5 Minunten darüber hinaus kommt, löscht er mir den gesamten Inhalt der Tabelle.
Wiso?