Brugernavn:




Kodeord: Husk
Forside Forum Artikler Downloads Søg
 

Simpelt IP Ban system (PHP + MySQL)

Forord

I denne artikel, vil du finde ud af hvordan, at du kan bruge IP Ban.
Du vil lære at bruge $_SERVER['REMOTE_ADDR']

Der vil blive brugt PHP og MySQL.

Hej alle sammen :)
Dette her er min første artikel, men jeg vil da gøre det så godt, som overhovet muligt.


Funktioner der skal bruges ?

De 2 hoved funktioner er:
$_SERVER['REMOTE_ADDR'] og exit();

$_SERVER['REMOTE_ADDR']
En funktion som tager den IP, som brugeren besøger siden med!
Men husk, at folk kan ændre deres proxy indstillinger, så du kan ikke altid være sikker!

exit();
En funktion som stopper alt indlæsning af kode efter sig.


MySQL

Først skal vi have nogle tabeller i MySQL.

Vi kalder tabellen for banned:
  1. CREATE TABLE `banned` (
  2.   `id` int(18) NOT NULL auto_increment,
  3.   `ip` varchar(255) NOT NULL default '',
  4.   `grund` varchar(255) NOT NULL default 'Der er ikke opgivet nogen grund!',
  5.   PRIMARY KEY  (`id`)
  6. ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Der er følgende felter i tabellen:
id Så vi evt. senere kunne lave en liste med bannede ip'er
ip Der skal den gemme brugerens ip, så vi kan tjekke om personen er banned
grund Hvis vi vil skrive grunden til personen er banned.


PHP

Nå nu skal vi videre, vi skal finde ud af hvordan vi tjekker om brugeren er banned.

Vi starter med filen tjek.php
tjek.php
  1. <?php
  2. include "connect.php";
  3. $ip = $_SERVER['REMOTE_ADDR'];
  4. $antal = mysql_result(mysql_query("SELECT COUNT(*) FROM banned WHERE ip = '$ip'"),0);
  5. if($antal)
  6. {
  7.    $bannedquery = mysql_query("SELECT * FROM banned WHERE ip = '$ip'");
  8.    $banned = mysql_fetch_assoc($bannedquery);
  9.    $bannedtekst = "<center><font color="red">Du er blevet banned fra siden, det skyldes <u>" . $banned['grund'] . "</u></font></center>";
  10.    exit($bannedtekst);
  11. }
  12. ?>

Linje forklaring

1) PHP Startes
2) Inkludere ens Connect.php fil (Den som har MySQL informationerne)
3) Variablen ip får IP'en som værdi med $_SERVER['REMOTE_ADDR']
4) Opretter variablen $antal som har værdien 1 hvis man er banned
5) Start if, hvis $antal har værdien 1 så...
6) Starter if
7) Opretter query
8) Tildeler $banned værdierne fra MySQL
9) Tildeler variablen $bannedtekst teksten at man er banned og grunden
10) Bruger exit til at stoppe med at vise mere af koden, og skriver at man er banned
11) Slutter if
12) Slutter PHP


Hvis du ikke selv har, så er der en kode til at connecte til DB på her:

connect.php
  1. <?php
  2. $connect = mysql_connect('localhost','Dit mysql brugernavn','Dit mysql password') or die('Kunne forbinde til MySQL');
  3. mysql_select_db('Din mysql databases navn', $connect) or die('Kunne ikke vælge database');
  4. ?>

Eksempel på brug af IP Ban


index.php
  1. <?php
  2. include "tjek.php";
  3. ?>
  4. Hej du er ikke banned, ellers ville du ikke kunne se denen side! ;)

Linje forklaring

1) Starter PHP
2) Vi henter tjek.php for at tjekke om vi er banned
3) Slutter PHP
4) Hvis vi ikke er banned kan vi se indholdet på siden.

Hvordan man banner

Nu skal du bare have brugeren ip, og så tilføje den til banned.
Du bestemmer selv om du skriver en grund.

Og vupti så er brugeren banned!

Screenshot

Når man er banned:


Download

Du kan downloade filerne her.
Held og lykke!
Sidst redigeret 16:25 18/04/2008 af Rowl
Oprettet af:

PHP

Point modtaget: 350

Rate:
23:40 05/10/2007

Kommentarer

Giv din mening tilkende om denne artikel, eller læs andres.
Har du spørgsmål eller brug for hjælp til denne artikel henvises du til forummet.
Super godt :) 5/5
Oprettet af:
  Mail
10:46 06/10/2007
I er velkommen til at give konstruktiv kritik.

Ved godt jeg kunne have uddybbet mere af artiklen ;)
Oprettet af:
  Mail
10:46 06/10/2007
Wow allerede læst :O

Den er lige lagt ind xD
Oprettet af:
  Mail
10:47 06/10/2007
Der findes rigtig mange af sådan nogen artikler, men dog er din en af de bedre.
Oprettet af:
  Mail
11:01 06/10/2007
Ja ved godt der findes et par stykker :D

Men kunne have uddybbet mere :D
Oprettet af:
  Mail
11:10 06/10/2007
Synes den er dejlig nem at forstå 5/5
Oprettet af:
  Mail
11:59 06/10/2007
Ville give mig selv 4/5, synes der mangler lidt kød på artiklen :)
Oprettet af:
  Mail
13:00 06/10/2007
Jeg syntes sgu den er god!
- 4/5 fra min side..
PS. Skriv da nogle flere ?? ;)
Oprettet af:
  Mail
13:08 06/10/2007
Ved ikke hvad jeg skulle skrive om :D
Oprettet af:
  Mail
13:21 06/10/2007
theGimp - Du synes den er god men alligevel får han 4/5 hvordan hænger det sammen :) ?
Oprettet af:
  Mail
15:12 06/10/2007
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes