Für was soll das DELETE denn sonst sein ?
IP-Sperre
Einklappen
X
-
pass auf:
DELETE kann nur nen ganzen datensatz löschen. das heißt alle Felder, nicht nur eins.
Deswegen kannst du entweder die Delete Veriante nehmen, dann brauchst du ne extra Tab, wo nur IP und Timestamp drin sind.
Wenn du den Comment aber mit IP zusammen abspeicherst, darfst/kannst/sollst/brauchst/usw. du kein DELETE mehr. Da wird einfach das Select angepasst und die sache läuft.
Kommentar
-
ohne das tut zu kennen wage ich zu behapten, dass es in etwa so abläuft:
eine tabelle mt deinen einträgen
eine weitere tabelle mit den IPs und dem datum der letzten aktion
jetzt wird beim eintragen geschaut, ob die IP des eintragers in der zweiten tabelle steht und die gespeicherte zeit weniger als 120 sekungen zurückliegt, ist das der fall wird nix eingetragen
damit die zweite tabelle nicht immer voller und voller wird, werden die datensätze rausgelöscht, deren eintragszeit länger als 120 sekunden zurückliegt
aus diesem grund (dem nicht immer voller und voller) wird auch die komplette zeile aus dem tabelle gelöscht und nicht nur der wert in der zeitspalte
und zum löschen von tabellenzeilen verwendet man eben deleteIch denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Original geschrieben von TobiaZ
@happy: wenigstens einer, ders rallt.OffTopic:
danke für die blumen
@jOhnny knOx
wenn du so probleme mit dem tut hast, dann poste doch einfach mal den link dazu, evtl. findet sich dann ja der/die ein oder andere um dir hilfreich zur seite zu stehen
P.S. wehe dir, ich finde in dem tut dann was, was du hier gefragt hast, obwohl's dadrin erklärt wird...Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Dann steht bei mir nur
PHP-Code:$secs = 120;
$time = time ();
$invalid = $time-$secs;
$order = "SELECT * FROM $news_com_tname WHERE ip='".$ip."'";
$result = mysql_query($order);
Kommentar
-
@Happy: Glaub 6 Seite in unseren Tuts (von Joel die normale IP-Sperre mit SQL. Nicht der Counter.) Aber gucks lieber nicht an.
@Johnny: Es kommt ja langsam.
dann änderst du das * noch in ein id (oder EIN anderes Feld deiner DB)
und statt dem = machst du dann > und fertig ist
Kommentar
-
@happy: http://www.php-resource.de/tutorials/read/6/1/ bitte nicht aufregen.
Und n Limit kannst du auch rein machen. Du kannst ja davon ausgehen, dass nur ein Datensatz drin ist, dann muss er ja nicht länger suchen.
BTW: *VERSCHIEB*
Habs grad erst gemerkt. Macht mich jetzt richtig sauer, dass du im falschen Forum gepostet hast
Kommentar
-
Original geschrieben von TobiaZ
@happy: http://www.php-resource.de/tutorials/read/6/1/ bitte nicht aufregen.
@jOhnny knOx
was für tabellen hast du?
wie sind die aufgebaut?
was willst du machen?Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
Original geschrieben von mrhappiness
doch *grml*
@jOhnny knOx
was für tabellen hast du?
wie sind die aufgebaut?
was willst du machen?PHP-Code:// -- News -- //
mysql_query("CREATE TABLE $news_tname (
id int(14) NOT NULL auto_increment,
catid int(11) DEFAULT '0' NOT NULL,
newsid int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
title varchar(100),
text longtext,
date varchar(100),
time varchar(100)
)");
mysql_query("CREATE TABLE $news_cat_tname (
id int(11) NOT NULL auto_increment,
PRIMARY KEY (id),
name varchar(100) NOT NULL,
pic varchar(100)
)");
mysql_query("CREATE TABLE $news_com_tname (
id int(14) NOT NULL auto_increment,
newsid int(11) DEFAULT '0' NOT NULL,
PRIMARY KEY (id),
timefeld timestamp(14) NOT NULL,
name varchar(100),
email varchar(100),
ip varchar(100),
text longtext,
date varchar(100),
time varchar(100)
)");
Sie sind aufgebaut wie man im erstem Posting des Threads sieht.
Ich will die IP-Sperre beim kommentieren einer News einbinden.
Kommentar
-
und warum hast du nicht einfach ne extra tabelle gemacht, so wie ium tut vorgeschlagen?Also zuerst brauchen wir mal wieder eine Tabelle in einer Datenbank wo wir die Daten ablegen. Es reicht hierbau eine Tabelle mit 2 Spalten :
Spaltenname typ
ip varchar(15)
timefeld timestamp
Mit dem Befehl :
CREATE TABLE iptest (
ip varchar(16) default '0',
timefeld timestamp(14) NOT NULL)
kann man die Tabelle zB. mit phpMyAdmin erzeugen lassen. Ich habe die Tabelle iptest genannt und sie liegt in der Datenbank testgb. So das waren die Vorbereitungen.Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
-
du solltest wenn du eine ip-sperre einbauen willst schon irgendwo zumindest ansatzweise auf ein feld mit nem zeitwert zugreifen und das abfragen meinst du nich auch?
die IP abzufragen allein ohne abzufragen, wann unter dieser ip das letzte mal gepostet wurde halte ich für nicht wirklich die optimalste lösung...Ich denke, also bin ich. - Einige sind trotzdem...
Kommentar
Kommentar