CREATE TABLE `banned_ip` ( `id` INT( 25 ) NOT NULL AUTO_INCREMENT PRIMARY KEY , `ip` VARCHAR( 25 ) NOT NULL , `reason` TEXT NOT NULL )
config.php
<?php // config $config['host'] = "localhost"; // host name of your mysql server $config['user'] = "username"; // your mysql username $config['pass'] = "password"; // your mysql password $config['db'] = "database"; // the database your table is in. // the @ sign is an error supressor, meaning we can use our own error messages, this connects and selects db @mysql_connect("$config[host]","$config[user]","$config[pass]") or die("There was an error connecting to the database, MySql said:<br />".mysql_error().""); @mysql_select_db("$config[db]") or die("There was an error connecting to the database, MySql said:<br />".mysql_error().""); ?>
Ban.php
<?php include("connect.php"); $ip = $_SERVER['REMOTE_ADDR']; $find_ip = mysql_query("SELECT * FROM banned_ip WHERE ip='$ip'"); $ban = mysql_fetch_array($find_ip); if($ip == $ban['ip']){ die("You are banned from this site!"); else { echo "Your Were not Banned"; $sql = "INSERT INTO user(ip) VALUES('$ip')"; } ?>
в<?php include("connect.php"); $ip = $_SERVER['REMOTE_ADDR']; $find_ip = mysql_query("SELECT * FROM banned_ip WHERE ip='$ip'"); $ban = mysql_fetch_array($find_ip); if($ip == $ban['ip']){ die("You are banned from this site!"); else { echo "Your Were not Banned"; $sql = "INSERT INTO user(ip) VALUES('$ip')"; } ?>
То, что я делаю, это проверить мою базу данных на ip, если она запрещена или нет. ЕСЛИ его не запретили, показывая ему сообщение «Твои не были запрещены» и запретили его.
Хранение его ip в базе данных. И тогда, если он снова появится на сайте, будет показано «Вы заблокированы с этого сайта!»
Благодаря этому я предоставляю каждому ip только один раз доступ к моему контенту. Является ли этот скрипт эффективным? Этот сценарий не работает для меня. Это не запрет на мой ip, но он продолжает показывать мне мой контент.