IP-Sperre

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

Ok, das ist nun mein erstes mal, dass ich das per hand mache^^
Habe davon mal ein Screenshot gemacht:

http://www.coaster-park.de/bilderupload/bilder/2846.png

Ich hoffe mal, dass ich das so richtig gemacht habe :)
Zuletzt geändert von Domitz am 13.05.2007 23:08, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Leider nein, die IP ist keine Zahl, da die Punkte noch drin sind (könnte man wie gesagt durch Umformatierung ändern), der Timestamp dagegen ist eine reine Zahl. Du hast die Datentypen also genau vertauscht. :)
So viel Platz brauchst du übrigens auch nicht zu reservieren, es reicht für die IP 4x3 + 3 = 15 Chars und für den Timestamp 11 Stellen.
Ich würde dir übrigens empfehlen dieses (doch recht große) Bild (aus der Ladezeit zu schließen) entweder zu verlinken oder in der Qualität soweit zu reduzieren dass es nur noch ein paar kb groß ist, damit die Seite auch von Personen betrachtet werden kann (in akzeptabler Zeit) die kein DSL ihr eigen nennen.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Domitz
Mitglied
Beiträge: 209
Registriert: 18.11.2006 17:29

Beitrag von Domitz »

So, jetzt solte es richtig sein =)

Jetzt käm das nächste problem, die php datei.
Ich nenne sie jetzt mal

ip.php

Jetzt müsste ich nach einer Aussage zuerst auslesen, ob die IP vorhanden ist und dannach die IP speichern, falls sie noch nicht vorhanden war.
Und ich muss ja irgendwie noch einstellen, was kommen soll, wenn ein User noch nicht drauf war und was kommen soll, wenn ein user da war.
Das müsste ich doch dann mit echos realisieren, oder lieg ich da falsch?

Also ich würde das ganze so machen:

Code: Alles auswählen

<?

//Abfragen der IP ob sie verwendet werden darf:
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT count(*) AS anz FROM ip_speicher_tabelle WHERE IP = '$ip' AND $time - time < 86400";
$result = $db->sql_query($sql);
$count = $db->sql_fetchfield(0,0,$result);
if($count)
{
    echo "Du warst schonmal hier";//Verboten
}
else
{
echo "Herzlich willkommen..."; //Erlaubt
}

//Speichern der IP wenn sie "benutzt" wurde:
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$sql = "INSERT INTO ip_speicher_tabelle (IP, time) VALUES ('$ip',$time)";
$db->sql_query($sql); //oder wie auch immer dein Datenbankaufruf aussehen mag...

?>
Nur wenn ich dies so mache kommt leider nur eine weissse leere Seite...

Update:
ich habs geschafft =)
Musste noch Die Datenbank und all sowas includen...

Code: Alles auswählen

<?
//Benötigte Dateien und Variablen von phpBB
define('IN_PHPBB', true);
$phpbb_root_path = './';
include($phpbb_root_path . 'extension.inc');
include($phpbb_root_path . 'common.'.$phpEx);


//Session auslesen und Benutzer-Informationen laden
$userdata = session_pagestart($user_ip, PAGE_INDEX);
init_userprefs($userdata);

//Dieser Block kann weggelassen werden, wenn du nur den die Userdaten brauchst und auf den phpBB-Header verzichen möchtest
$page_title = 'Meine Seite';
include($phpbb_root_path . 'includes/page_header.'.$phpEx);




//Abfragen der IP ob sie verwendet werden darf:
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$sql = "SELECT count(*) AS anz FROM ip_speicher_tabelle WHERE IP = '$ip' AND $time - time < 86400";
$result = $db->sql_query($sql);
$count = $db->sql_fetchfield(0,0,$result);
if($count)
{
    echo "Du warst schonmal hier";//Verboten
}
else
{
echo "Herzlich willkommen..."; //Erlaubt
}

//Speichern der IP wenn sie "benutzt" wurde:
$ip = $_SERVER['REMOTE_ADDR'];
$time = time();
$sql = "INSERT INTO ip_speicher_tabelle (IP, time) VALUES ('$ip',$time)";
$db->sql_query($sql); //oder wie auch immer dein Datenbankaufruf aussehen mag...

//Footer - nur dann weglassen, wenn du auch den Header weglässt
include($phpbb_root_path . 'includes/page_tail.'.$phpEx);
?>
Vielen Dank, dass ihr mir geholfen habt und es mit mir ausgehalten habt^^
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Ok soweit so gut, allerdings wird so wie es nun ist definitiv beim Aufruf die IP gespeichert. Aber das bekommst du sicher auch noch hin...
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“