19.07.2003, 10:01
Ich arbeite gerade an meinem Coundown Hack fürs wbb2.1. Ich will auch einen Counter einbauen aber ich weiß nicht wie ich das mit der Ip Sperre lösen soll.
Bisher habe ich es so:
User geht auf Seite
wenn die Ip schon in der Datenbank steht wird nichts gezählt
ansonsten wird die Ip in einer Tabelle eingetragen.
Soweit ist klar nur bei 10.000 Usern hätte man 10.000 Zeilen in einer Datenbank.
Ich suche nach einer möglichkeit das er nach 100 Usern allen Zeilen löscht und den Counter Stand updatet.
ich zeige einfach mal das script
Irgendwie müsste es doch gehen das er immer bei 100 alle Zeilen bis auf die erste löscht und den aktuellen Counter Stand in der ersten Zeile einträgt.
(ich denke das ist nicht das beste Script aber mir soll es reichen )
Ich würde mich freuen wenn ihr wüsstet wie ich das machen könnte.
DANKE! )
EDIT: Habe es jetzt erstmal so gelöst das die Ip adressen in einer extra Datei gespeichert werden. Funktioniert auch gut nur ich weiß nicht wie ich die dann löschen kann. Ich dachte vielleicht daran die Zeit mit einzutragen damit das Script überprüft wann er die Ip löschen kann.
so in etwa
if(zeit -2std == zeit der ip adresse){
lösche diese Ip Adresse
}
else{}
Bisher habe ich es so:
User geht auf Seite
wenn die Ip schon in der Datenbank steht wird nichts gezählt
ansonsten wird die Ip in einer Tabelle eingetragen.
Soweit ist klar nur bei 10.000 Usern hätte man 10.000 Zeilen in einer Datenbank.
Ich suche nach einer möglichkeit das er nach 100 Usern allen Zeilen löscht und den Counter Stand updatet.
ich zeige einfach mal das script
Code:
<?php
require ("acp/lib/config.inc.php");
$conn1 = mysql_connect($sqlhost,$sqluser,$sqlpassword);
mysql_select_db($sqldb,$conn1);
$query1 = "SELECT * FROM countdown_counter";
$result1 = mysql_query($query1,$conn1);
$gesamt1 = mysql_num_rows($result1);
while ($zeileholen1 = mysql_fetch_array($result1,MYSQL_ASSOC))
{
$counter_stand = $zeileholen1["stand"];
$status = $zeileholen1["status"];
$ziel = $zeileholen1["ziel"];
$ip = $zeileholen1["ip"];
$countdown_stand_z = $counter_stand + 1;
}
if($REMOTE_ADDR!=$ip){
$query3 = "INSERT into countdown_counter(status, ziel, Bezeichnung, Bezeichnung1, Bezeichnung2, stand, ip) values('$status','$ziel','/','//','///','$countdown_stand_z','$REMOTE_ADDR')";
$result3 = mysql_query($query3,$conn1);
mysql_close($conn1);
}
else{
}
echo"Es waren schon $counter_stand Leute auf der Seite";
echo"<br>Deine IP Adresse: $REMOTE_ADDR";
?>
Irgendwie müsste es doch gehen das er immer bei 100 alle Zeilen bis auf die erste löscht und den aktuellen Counter Stand in der ersten Zeile einträgt.
(ich denke das ist nicht das beste Script aber mir soll es reichen )
Ich würde mich freuen wenn ihr wüsstet wie ich das machen könnte.
DANKE! )
EDIT: Habe es jetzt erstmal so gelöst das die Ip adressen in einer extra Datei gespeichert werden. Funktioniert auch gut nur ich weiß nicht wie ich die dann löschen kann. Ich dachte vielleicht daran die Zeit mit einzutragen damit das Script überprüft wann er die Ip löschen kann.
so in etwa
if(zeit -2std == zeit der ip adresse){
lösche diese Ip Adresse
}
else{}