WinFuture-Forum.de: [php] Gästebuch Mit Ip-sperre - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

[php] Gästebuch Mit Ip-sperre


#1 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 01. März 2005 - 15:50

Hallo zusammen.

Ich bin gerade dabei, ein simples Gästebuch zu programmieren.
Die Einträge werden in einer Textdatei gespeichert.
Es kann der Name, die E-Mail Adresse und die Homepage angegeben werden. Zudem wird das aktuelle Datum zu jedem Beitrag geschrieben.

Wie kann ich eine IP-Sperre einbauen, dass ein Besucher (eine IP) innerhalb von 10 Minuten nur einmal schreiben darf?
Die IPs müssten in eine Textdatei gespeichert werden, aber wie lautet der Code dafür und wie lautet die if-Abfrage dazu, die überprüft ob der Besucher schon eingetragen hat und es soll eine Fehlermeldung erscheinen...?!? Möglich muss es ja sein, aber wie :-D

Es reicht, wenn ca. 10 IPs in der Textdatei gespeichert werden können und dann immer überschrieben werden.

Danke schon mal im Voraus, ich freue mich auf eure Antworten.
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

Anzeige



#2 Mitglied ist offline   stefanra 

  • Gruppe: aktive Mitglieder
  • Beiträge: 6.208
  • Beigetreten: 13. September 04
  • Reputation: 1

geschrieben 01. März 2005 - 15:59

$thisip = $_SERVER['remote_addr'];
$blockedips = fopen("./my_ipfilter.txt", "r");
$theips = fread ($blockedips, filesize ("./my_ipfilter.txt"));
$ip = explode(",", $theips);
$search = array_search($thisip, $ip);
if(strlen($search)==0){ //Nicht vorhanden, Zugriff erlauben }else{ //Vorhanden, blocken echo "Bäh, du darfst hier nicht rein!"; }

Eventuell etwas umständlich, aber es müsste so gehen. Das File my_ipfilter.txt enthält in diesem Fall alle geblockten IPs.

Dieser Beitrag wurde von stefanra bearbeitet: 01. März 2005 - 15:59

0

#3 Mitglied ist offline   Mr_Maniac 

  • Gruppe: aktive Mitglieder
  • Beiträge: 770
  • Beigetreten: 29. Juli 02
  • Reputation: 1
  • Geschlecht:Männlich
  • Interessen:Vieles rund um den Computer
    Musik

geschrieben 01. März 2005 - 16:03

Nun... Um die IP auszulesen:
$_SERVER['REMOTE_ADDR']


Ich würde zu den IPs in die Textdatei noch Datum und Uhrzeit einfügen... Allerdings in einem Format, mit dem man eindeutig vergleichen kann...
z.B.
Jahr,Monat,Tag,Stunde,Minute
Also z.B. 200503011600

Dann kannst du mit
if ( $VorigeZeit <= ($AktuelleZeit - 10)  )
{
  /* Hier bitte Code einfügen */
}
else
{
  /* Hier bitte Code einfügen */
}

Den Vergleich ausführen... Zumindest so in der Art...

Dieser Beitrag wurde von Mr_Maniac bearbeitet: 01. März 2005 - 16:04

0

#4 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 01. März 2005 - 16:05

@stefanra

Das ist genau das, was ich gesucht habe.
Kann ich auch einstellen, dass er z.B. maximal 10 IPs abspeichert und dann immer die ältesten überschreibt?
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#5 Mitglied ist offline   Urza 

  • Gruppe: aktive Mitglieder
  • Beiträge: 255
  • Beigetreten: 16. September 04
  • Reputation: 0
  • Wohnort:Dominaria/Aventurien

geschrieben 01. März 2005 - 18:46

Format, mit dem man eindeutig vergleichen kann...
z.B.
Jahr,Monat,Tag,Stunde,Minute
Also z.B. 200503011600


timestamp wäre vielleicht einfacher :)

Kann ich auch einstellen, dass er z.B. maximal 10 IPs abspeichert und dann immer die ältesten überschreibt?


naja "einstellen" wohl eher weniger :) aber du kannst natürlich code schreiben, der das macht :) z.B.

$blockedips = fopen("./my_ipfilter.txt", "r");
$theips = fread ($blockedips, filesize ("./my_ipfilter.txt"));
$ip = explode(",", $theips);
$anzahl=count($ip);
if($anzahl <= 10){
//10 oder weniger Einträge
}else{
//mehr als 10 Beiträge
$thisip = $_SERVER['remote_addr'];
$ip[0]=$thisip;
$new_string=implode(",",$ip);
fwrite($blockedips,$new_string);
}


edit: ups mein code hat immer den letzten eintrag ersetzt ^-^

Dieser Beitrag wurde von Urza bearbeitet: 01. März 2005 - 18:47

0

#6 Mitglied ist offline   Slayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 1.476
  • Beigetreten: 12. Dezember 03
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Baden-Württemberg
  • Interessen:&gt; Internet<br />&gt; Musik<br />&gt; Filme<br />&gt; Events

geschrieben 02. März 2005 - 12:51

@Urza ist dieser nun richtig, kann ich den nehmen?
Der Mensch hat drei Wege, klug zu handeln.
Erstens durch Nachdenken: Das ist der Edelste.
Zweitens durch Nachahmen: Das ist der Leichteste.
Drittens durch Erfahrung: Das ist der Bitterste.

(Konfuzius)
0

#7 Mitglied ist offline   Urza 

  • Gruppe: aktive Mitglieder
  • Beiträge: 255
  • Beigetreten: 16. September 04
  • Reputation: 0
  • Wohnort:Dominaria/Aventurien

geschrieben 02. März 2005 - 16:17

hey der code ist aus dem stehgreif geschrieben, keine garantie dafür, dass der 100% richtig ist. sollten fehler auftreten -> icq oder hier nochmal melden
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0