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')";
}
?>
私がしていることは、データベースが禁止されているかどうかにかかわらず、IPをチェックすることです。禁止されていない場合は、「あなたは禁止されていません」というメッセージを表示し、禁止します。
彼のIPをデータベースに保存します。そして、彼が再び現場に来ると、「あなたはこの現場から禁止されています!」と表示されます。
これにより、各IPにコンテンツへのアクセスを1回だけ許可します。このスクリプトは十分に効果的ですか?このスクリプトは私には機能しません。それは私のIPを禁止しているのではなく、代わりに私のコンテンツを表示し続けます。