-
Üyelik
13.08.2011
-
Yaş/Cinsiyet
28 / E
-
Meslek
Öğrenci
-
Konum
İstanbul Anadolu
-
Ad Soyad
C** T**
-
Mesajlar
179
-
Beğeniler
32 / 46
-
Ticaret
0, (%0)
Merhaba arkadaşlar bir script için geliştirdiğim IP Banlama scriptini sizinle paylaşmak istedim.Şimdi başlıyoruz. İlk olarak php bağlantımızı yapalım.
baglan.php
///
$host="localhost";
$kullanici="root";
$sifre="";
$database="db";
///
$link = mysql_connect("$host", "$kullanici", "$sifre") or die(mysql_error());
$db = mysql_select_db("$database", $link) or die (mysql_error());
?>
Bağlatımızı hallettik şimdi geldi sıra .sql e.
ban.sql
CREATE TABLE IF NOT EXISTS `ban` (
`ban_id` int(5) NOT NULL AUTO_INCREMENT,
`ban_ip` varchar(25) NOT NULL,
`saat` varchar(25) NOT NULL,
`tarih` varchar(25) NOT NULL,
PRIMARY KEY (`ban_id`),
UNIQUE KEY `ban_id` (`ban_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
.sql de hazır şimdi verileri gireceğimiz bir form yapmamız gerekiyor.
banla.php
include('baglan.php');
$bancalistir = mysql_query("select * from ban order by ban_id");
$kac=mysql_num_rows($bancalistir); //kaç tane banlı IP olduğuna bakıyoruz
echo "Toplam Banlı IP:
";
echo '
'.$kac.'
'; //banlı IP sayısını yazdırıyoruz
while($banoku=mysql_fetch_assoc($bancalistir))
{
?>
?>
Ban atmak için IP numarasını gir.
Ban silmek için ID numarasını gir.
'; ?>
şimdi veri girdik veya veri sildik. Scriptimiz her iki özelliğide kapsıyor. Ben metod olarak get kullandım isterseniz post olarak gerekli düzenlemeri siz yapabilirsiniz. Yönlendirme yaptığım banning.php ye bir bakalım.
banning.php
include('baglan.php');
$ban_ip = $_GET['ban_ip'];
$ban_id_sil = $_GET['ban_id_sil'];
$saat = date("H:i",(time()+0)); //bu seçenek değişebilir saat bazen Türkiye saatini göstermiyor olabilir ona göre 0 yerine 3600 (1saat) ekleyip yada çıkartabilirsiniz.
$tarih = date("d.m.Y"); //tarih bilgilerini rakam olarak girer. örn: 13.08.2011
if ($ban_ip==0) { //buradaki mantık size kalmış o zaman daha az bilgiye sahiptim ve böyle bir mantıkla yol almışım
echo ""; }
else {
$ban = mysql_query("insert into ban (ban_id, ban_ip, saat, tarih) values (NULL, '$ban_ip', '$saat', '$tarih')"); }
if ($ban_id_sil==0){ //buradaki mantık size kalmış o zaman daha az bilgiye sahiptim ve böyle bir mantıkla yol almışım
echo ""; }
else {
$bansil = mysql_query("delete from ban where ban_id='$ban_id_sil'");}
echo "Listeye Yönlendiriliyorsunuz..."
?>
IPleri banladık yadı banını sildik şimdi sırada ziyaretçi eğer banlandıysa ne olacak?
index.php
include('baglan.php');
$ziyaretci_ip = $_SERVER['REMOTE_ADDR']; //bu ziyaretçi IPmiz. localhostta denerseniz gerçeği yansıtmayacaktır. örn:127.0.0.0 olarak gösterir
$kontrol=mysql_query("select * from ban where ban_ip='$ziyaretci_ip'"); //ziyaretçi IPmizin banlı olup olmadığını sorar
$ban_var_mi=mysql_num_rows($kontrol); //burda yaptığımız işlem sayma işlemidir. Eğer ban varsa sayım 1 veya fazla çıkacaktır.
if ($ban_var_mi >= 1) {
echo 'Banlandınız'; }
else {
echo 'Banlanmadınız.'; } ?>
PHP + MySql IP Banlama Scripti