Gästebuch + IP sperre
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
counter
fehler
gleiche vorgehensweise
hilfe
insert
mahlzeit
mann
pawort
result
router
schauen
scheien
signatur
sofer
sperre
sperren
tabelle
vielen dank
zeile
zugreifen
-
Hallo zusammen.
Also ich habe ein php g?stebuch. jetzt gibt es da so ein paar leute, die immer scheiss schreiben.
k?nnte ich etwas machen, wo es di ip speichert in einer seperaten datei speichert. Wenn der typ dann wieder scheiss schribt, kann ich in sperren, so das steht z.B. "Grenzen ?berschritten --> Kein Zugriff" ????
Kann man das so machen? Wenn ja, wie?
Vielen Dank chrigel -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
mit der IP ist das immer so ein Problem, da sich diese ?ndern kann!
-
Mahlzeit!
Ich kann Dir nur empfehlen, die IPs in einer Datenbank abzusoeichern, sofern Du die Mittel dazu hast!
Tabelle sollte folgende Spalten enthalten:
- id
- ip
- timestamp
// posten.php
<?
include ("connect.inc.php");
include ("deleteip.php");
$ip = $_SERVER['REMOTE_ADDR'];
$timestamp = time();
$sql = "SELECT * FROM tabelle WHERE ip = '$ip'";
$result = mysql_query($sql);
if(mysql_num_rows($result) == 0)
{
// Text eintragen
$sql = "INSERT INTO tabelle (ip,timestamp) VALUES ('$ip','$timestamp')";
$result = mysql_query($sql);
}
else
{
echo "Du hast heute schon gepostet...";
}
?>
// deleteip.php
<?
include("connect.inc.php");
// Aktuelle Zeit - 1 Tag
$timestamp = time() - 86400;
$sql = "DELETE * FROM tabelle WHERE timestamp >= '$timestamp'";
$result = mysql_query($sql);
if(!$result)
{
echo "Es ist ein Fehler beim L?schen der Eintr?ge in der Datenbank aufgetreten! <br>Zur?ckgegebener Fehler: ". mysql_error();
}
?>
// connect.inc.php
<?
mysql_connect("mysql.lima-city.de","USERxxxxx","passwort") or die("Verbindung zum DB-Hoster konnte nicht hergestellt werden!");
mysql_select_db("DBxxxxxxxxxxxxxx") or die("Datenbank wurde nicht gefunden!");
?>
-
hallo
danke mal f?r die hilfe. aber ich will nicht, das die sperre nur auf ein tag beschr?nkt ist, sondern immer. und das nur bei den leuten, die ich bestimme. ginge das auch irgendwie ohne db??? ich habe schon, aber das ist mir zu kompliziert. wenns irgendwie mit php+txt gehen w?rde.
thx chriwy
Ps: @compactdisc das in deiner signatur sieht stark berndeutsch aus??? stimmts? -
Schau dir mal mein Hitcounter-Tutorial an. Dort steht, wie man IP und Datestamp in einer Datei speichern und wieder auslesen kann. Die gleiche Vorgehensweise kannst du auch bei einer IP-Sperre anwenden.
http://alopex.pyrokar.lima-city.de/index.php/PHP/Hitcounter.html
Allerdings kann ich von IP-Sperren nur abraten. Es gibt zu viele Unw?gbarkeiten. Wer einen Dialup-Zugang hat, w?hlt sich einfach neu ein und erh?lt eine neue IP. Sitzen mehrere Personen hinter einem Router mit einer IP (Internetcafe, Firmen-Netzwerk), werden alle ausgeschlossen. Manche ISP (z.B. AOL) verwenden Proxys mit "rotierenden" IP-Adressen, d.h. bei jedem Zugriff auf eine Webresource wird diesen Benutzern ein anderer Proxy zugeteilt. Die gesperrte IP kann dann bei anderen AOL-Nutzern wunderliche Effekte hervorufen.
MfG
alopex -
chriwy schrieb:
hallo
danke mal f?r die hilfe. aber ich will nicht, das die sperre nur auf ein tag beschr?nkt ist, sondern immer. und das nur bei den leuten, die ich bestimme. ginge das auch irgendwie ohne db??? ich habe schon, aber das ist mir zu kompliziert. wenns irgendwie mit php+txt gehen w?rde.
thx chriwy
Dann k?nnte es so funktionieren:
<?
$handle = fopen("ip.txt","r+");
$ip = $_SERVER['REMOTE_ADDR'];
$counter == 0;
while(!feof($handle))
{
$zeile = fgets($handle);
if($zeile == $ip)
{
$counter++;
}
}
if($counter == 0)
{
// Text eintragen
fputs($handle,$ip);
}
else
{
echo "Sie haben bereits gepostet!";
}
?>
Ps: @compactdisc das in deiner signatur sieht stark berndeutsch aus??? stimmts?
ist es auch -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage