Tag,
Habe schon die Foren durchsucht, habe aber keine passende Antwort zur Frage "Reloadsperre" gefunden.
Was ich benötige ist eine Reloadsperre die den User verhindert wie er Lust und Laune hat, seine Startseite aufzurufen. Diese Startseite wird in einer Mysql-Datenbank protokolliert. Das heißt beim Aufruf werden 5 Punkte in sein Feld eingefügt. Wenn er wieder die Startseite aufruft, dann werden aber 5 Punkte nur dann eingetragen, wenn er auch die Reloadsperre nicht unterschritten hat.
Kann mit jemand helfen ?
Hier mein jetziges Script, daß ich irgendwie zusammengeflickt habe, funktioniert aber nicht so richtig. Entweder er trägt die Punkte immmer ein, oder wenn ein neuer Tag ist, trägt er keine Punkte mehr ein.
Was ist falsch oder wie kann ich den Code einfacher schreiben?
<?php
$day = date("Y-m-d"); // format the date like it is written in the database
if ($QUERY_STRING)
$dbhost = "localhost";
$dbuser = "root";
$dbpasswd = "";
$db=mysql_connect("$dbhost","$dbuser","$dbpasswd");
mysql_select_db("cash",$db);
$username = urldecode($QUERY_STRING);
$result = mysql_query("SELECT username FROM logfiles WHERE username='$username' AND day='$day'",$db);
if(mysql_num_rows($result) > 0) {
mysql_free_result($result);
$result = mysql_query("SELECT UNIX_TIMESTAMP(time) FROM logfiles WHERE (username='$username' AND ip='$REMOTE_ADDR' AND day='$day')",$db);
if($row = mysql_fetch_row($result)) {
if(($row[0]+3600) < time()) {
mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username'",$db);
mysql_query("UPDATE logfiles SET time=NOW() WHERE username='$username'",$db);
} else { // the click is raw
mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username'",$db);
}
mysql_free_result($result);
} else { // it's a new ip (BRAUCHE ICH EIGENTLICH NICHT)
//mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username' AND day='$day'",$db);
mysql_query("INSERT INTO logfiles (username,ip,day,time) VALUES ('$username','$REMOTE_ADDR','$day','$time')",$db);
}
} else { // it's a new url or day
//mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username'",$db);
mysql_query("INSERT INTO logfiles (username,day,time,ip,paidstart) VALUES ('$username','$day','$time','$REMOTE_ADDR',5)",$db);
//mysql_query("INSERT INTO logfiles (username,day,paidstart) VALUES ('$username','$day',5)",$db);
}
exit;
?>
Die Startseite heißt http://www....de/portal.php?XXXXX
XXXXX heißt der jeweilige Username.
Vielen Dank im Voraus.
XAROC
Habe schon die Foren durchsucht, habe aber keine passende Antwort zur Frage "Reloadsperre" gefunden.
Was ich benötige ist eine Reloadsperre die den User verhindert wie er Lust und Laune hat, seine Startseite aufzurufen. Diese Startseite wird in einer Mysql-Datenbank protokolliert. Das heißt beim Aufruf werden 5 Punkte in sein Feld eingefügt. Wenn er wieder die Startseite aufruft, dann werden aber 5 Punkte nur dann eingetragen, wenn er auch die Reloadsperre nicht unterschritten hat.
Kann mit jemand helfen ?
Hier mein jetziges Script, daß ich irgendwie zusammengeflickt habe, funktioniert aber nicht so richtig. Entweder er trägt die Punkte immmer ein, oder wenn ein neuer Tag ist, trägt er keine Punkte mehr ein.
Was ist falsch oder wie kann ich den Code einfacher schreiben?
<?php
$day = date("Y-m-d"); // format the date like it is written in the database
if ($QUERY_STRING)
$dbhost = "localhost";
$dbuser = "root";
$dbpasswd = "";
$db=mysql_connect("$dbhost","$dbuser","$dbpasswd");
mysql_select_db("cash",$db);
$username = urldecode($QUERY_STRING);
$result = mysql_query("SELECT username FROM logfiles WHERE username='$username' AND day='$day'",$db);
if(mysql_num_rows($result) > 0) {
mysql_free_result($result);
$result = mysql_query("SELECT UNIX_TIMESTAMP(time) FROM logfiles WHERE (username='$username' AND ip='$REMOTE_ADDR' AND day='$day')",$db);
if($row = mysql_fetch_row($result)) {
if(($row[0]+3600) < time()) {
mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username'",$db);
mysql_query("UPDATE logfiles SET time=NOW() WHERE username='$username'",$db);
} else { // the click is raw
mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username'",$db);
}
mysql_free_result($result);
} else { // it's a new ip (BRAUCHE ICH EIGENTLICH NICHT)
//mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username' AND day='$day'",$db);
mysql_query("INSERT INTO logfiles (username,ip,day,time) VALUES ('$username','$REMOTE_ADDR','$day','$time')",$db);
}
} else { // it's a new url or day
//mysql_query("UPDATE logfiles SET paidstart=paidstart+5 WHERE username='$username'",$db);
mysql_query("INSERT INTO logfiles (username,day,time,ip,paidstart) VALUES ('$username','$day','$time','$REMOTE_ADDR',5)",$db);
//mysql_query("INSERT INTO logfiles (username,day,paidstart) VALUES ('$username','$day',5)",$db);
}
exit;
?>
Die Startseite heißt http://www....de/portal.php?XXXXX
XXXXX heißt der jeweilige Username.
Vielen Dank im Voraus.
XAROC
Kommentar