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.
Ville selv give mig 4/5 :)

Den mangler somsagt lidt kød ;)
Oprettet af:
  Mail
18:24 06/10/2007
Slet ingen ting nogen har at sige?
Oprettet af:
  Mail
17:56 08/10/2007
Jeg ved ikke med jer men jeg fåer en fejl i tjek.php i linje 9.. :S
Oprettet af:
  Mail
15:23 26/10/2007
øhmmm.. Man kan få et smart bansystem uden mysql på PHPShark :-P
Oprettet af:
  Mail
21:37 26/07/2008
Ja men hvem gider det når man kan lave det selv? ;)
Oprettet af:
  Mail
07:39 18/09/2008
Det er sikkert min comp. Men alle koderne er ændret helt! :S
Ellers god!
Oprettet af:
  Mail
23:08 25/10/2008
lige en ting, man kan godt bruge æøå men det er bare lige et tip for det er lidt forvirene at læse, men kan skam sangtens det er ikk det... men ellers en nice artikle..
Oprettet af:
  Mail
21:13 21/12/2008
Den artikel er da mega god!
Lærte lige at få bannet mine venner hvis de skriver noget på min hjemmeside som der ikk skulle stå... xD

Positiv!!!

Oprettet af:
  Mail
21:16 05/01/2009
Lige en rettelse jeg kan se at den ikke behøver at blive rettet hos nogen, men hos mig og også Jacob for vi en fejl i line 9 på tjek.php.

Oprindlig:
$banned['grund']

rettelse:
$banned ['grund']

:)
Sidst redigeret 20:36 04/12/2009
Oprettet af:
  Mail
20:36 04/12/2009
Tænkte det kunne være vildt fedt hvis man kunne banne via en form?
Oprettet af:
  Mail
21:39 27/02/2010
Du skal være oprettet og logget ind for at kommentere en artikel
Copyright © Rowl.dk v/ Michael Raagaard | 2005-12 | Alle rettigheder forbeholdes