IP ban uitbreiden via de database

Status
Niet open voor verdere reacties.

Martijn31

Gebruiker
Lid geworden
6 sep 2009
Berichten
362
Hallo,

Ik weet het ik vraag veel te veel over dit soort dingen maar zelf kan ik het gewoon niet haha :P
Ik heb nu een code die ik in de index van me site plaats en dan de mensen met dat ip krijgen een fake error
dit is de code:

PHP:
<?php
$banlist = array("94.210.106.237","84.198.41.22","80.57.239.188");
if(in_array($_SERVER['REMOTE_ADDR'], $banlist)) die(header("Location: http://forumweetjes.nl/error.php"));
?>

Maar ik zou graag willen dat deze handige ipbanner via de database werkt..
Dat al deze ips in de datbase komen en dat ik de moderatoren ook kan laten ip bannen
Want nu moet ik steeds naar de index toe en dan een ip toevoegen en dan pas is die gene verbannen..
maar ik zou graag willen dat je via een site de ip van de lastpost in kan vullen dat de ip automatisch in de database wordt toegevoegt en dat het dan goed is. en eventueel een site password dat je een wachtwoord in moet typen om op de site te komen
Mischien is het teveel gevraagt maar ik hoop dat iemand zo aardig kan zijn om deze code om te spitten
Alvast erg bedankt.

Martijn
 
in zijn geheel is het misschien wat veel gevraagd, maar ik kan je wel helpen met delen;

je moet eerst een tabel maken waarin je de ip ban's opslaat. de query kan er als volgt uitzien:
create table bans (
id int(3) AUTO_INCREMENT,
ip varchar(20) NOT NULL,
tijd timestamp,
PRIMARY KEY(id)
)
er worden 3 kolommen gemaakt:
een id, word automatisch ingevuld.
ip,
tijd, word automatisch ingevuld naar de tijd wanneer de ip gebant is.

de query om een nieuwe ip toe te voegen ziet er zo uit:
insert into bans (ip) values (127.0.0.1)
waarbij je natuurlijk 127.0.0.1 vervangt door het ip adres dat je wilt bannen.

de code die je op je pagina zet ziet er zo uit:
PHP:
<?php
// hier eerst connectie maken met database
$result = mysql_query("select id from bans where ip='".$_SERVER['REMOTE_ADDR']."' ");
$num = mysql_num_rows($result);
if($num > 0){ die(header("Location: http://forumweetjes.nl/error.php")); }

als je meer wilt weten over hoe je de query's uitvoert of hoe je connectie met je database maakt zeg je het maar.

Ecross
 
Laatst bewerkt:
Oke maar waar moet ik deze plaatsen?

PHP:
insert into bans (ip) values (127.0.0.1)
 
hier een script om een ban toe te voegen, het maakt automatisch de tabel aan als hij nog niet bestaat.
als je een ban wilt invoegen met je eerst het wachtwoord invullen wat nu staat ingesteld op martijn31

hier het script:
PHP:
<html>
<head>
	<title>ip ban</title>
</head>
<body>
<?php
// hier de database connectie

if($_POST['doe'] == 'banip'){
	if($_POST['pass'] == 'martijn31'){ // verander hier het wachtwoord
		if(!(mysql_query("SELECT * FROM bans"))){ // als de tabel nog niet bestaat
			$result = mysql_query("create table bans (
									id int(3) AUTO_INCREMENT,
									ip varchar(20) NOT NULL,
									tijd timestamp,
									PRIMARY KEY(id)
									)");
		}
		$result = mysql_query("insert into bans (ip) values ('".$_POST['ip']."')");
		echo "<b>de ban voor het ip adres ".$_POST['ip']." is toegevoegd</b>";
	}
	else {
		echo "<b>het wachtwoord is fout</b><br />";
	}
}
?>
<h2>voeg een ip ban toe:</h2>
<form action='' method='post'>
<input type='hidden' name='doe' value='banip'>
het ip adres: <input type='text' name='ip' /><br />
het wachtwoord: <input type='password' name='pass' /><br />
<input type='submit' value='voeg ban toe'>
</form>
</body>
</html>
 
Laatst bewerkt:
Oké bedankt

Dus als ik het ip heb toegevoegd krijgt de gene met dat ip adress dus de fake error te zien?
 
je moet nog wel even op elke pagina het volgende stukje code toevoegen:
PHP:
// hier eerst connectie maken met database
$result = mysql_query("select id from bans where ip='".$_SERVER['REMOTE_ADDR']."' ");
$num = mysql_num_rows($result);
if($num > 0){ die(header("Location: http://forumweetjes.nl/error.php")); }

en eventueel een site password dat je een wachtwoord in moet typen om op de site te komen
bedoel je op heel je site? of alleen op de pagina waarmee je mensen kunt bannen?
 
Laatst bewerkt:
Nee ik bedoel alleen op de ban pagina zodat niet iedereen van buitenaf kan bannen alleen de mensen die ik het wachtwoord vertel is dat deze code?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan