В този урок ще ви представя, как да си направите админ панел за сайта, като панелът ще е ссътавен само от 4 файла и 1 папка.В него ще ви се показва, кога - кой и с какво е влязъл, каква му е операционната система + възможност да му сложите ban.Бановете също така могат да бъдат махани от админ панела.
index.php
admin.php
ban.php
prove.php
Правим една папка info и сме готови
За да защитим дадена част от сайта от баннати, просто трябва да сложим следния код
Демо на началото
Демо на админ панела
index.php
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<?
include "prove.php"; // този файл въсщност ще проверява, дали посетителят е баннат или не
echo "<br>";
?>
<?
$oslist = array('Windows 3.11' => 'Win16','Windows 95' => '(Windows 95)|(Win95)|(Windows_95)','Windows 98' => '(Windows 98)|(Win98)','Windows 2000' => '(Windows NT 5.0)|(Windows 2000)','Windows XP' => '(Windows NT 5.1)|(Windows XP)','Windows Server 2003' => '(Windows NT 5.2)','Windows Vista' => '(Windows NT 6.0)','Windows 7' => '(Windows NT 7.0)','Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)','Windows ME' => 'Windows ME','Open BSD' => 'OpenBSD','Sun OS' => 'SunOS','Linux' => '(Linux)|(X11)','Mac OS' => '(Mac_PowerPC)|(Macintosh)','QNX' => 'QNX','BeOS' => 'BeOS','OS/2' => 'OS/2','Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)');
foreach($oslist as $CurrOS=>$Match){
if (eregi($Match, $_SERVER['HTTP_USER_AGENT']))
{break;}
}
?>
<?php
$date = (date("j.m Y H:i:s"));
$browser = getenv("HTTP_USER_AGENT");
if(preg_match("/MSIE/i", "$browser")) $browsers = 'Internet Explorer';
else if(preg_match("/Mozilla/i", "$browser")) $browsers = 'Mozilla Firefox';
else if(preg_match("/Opera/i", "$browser")) $browsers = 'Opera';
else if(preg_match("/Netscape/i", "$browser")) $browsers = 'NetScape';
else $browsers = 'Unknown';
$ip = getenv("REMOTE_ADDR");
if(!is_dir("./info/$ip/"))
{
mkdir("./info/$ip");
$file = "info/$ip/ip.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$ip";
fwrite($handle, $data);
fclose($handle);
$file = "./info/$ip/browser.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$browsers";
fwrite($handle, $data);
fclose($handle);
$file = "./info/$ip/date.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$date";
fwrite($handle, $data);
fclose($handle);
$file = "./info/$ip/os.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$CurrOS";
fwrite($handle, $data);
fclose($handle);
exit;
}
function empty_folder($folder, $debug = false){
if ($debug) {
}
$d = dir($folder);
while (false !== ($entry = $d->read())) {
$isdir = is_dir($folder."/".$entry);
if (!$isdir and $entry!="." and $entry!="..") {
unlink($folder."/".$entry);
} elseif ($isdir and $entry!="." and $entry!="..") {
empty_folder($folder."/".$entry,$debug);
rmdir($folder."/".$entry);
}
}
$d->close();
}
empty_folder("./info/$ip",true);
rmdir("./info/$ip/");
mkdir("./info/$ip/");
$file = "info/$ip/ip.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$ip";
fwrite($handle, $data);
fclose($handle);
$file = "info/$ip/browser.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$browsers";
fwrite($handle, $data);
fclose($handle);
$file = "./info/$ip/date.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$date";
fwrite($handle, $data);
fclose($handle);
$file = "./info/$ip/os.inc";
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "$CurrOS";
fwrite($handle, $data);
fclose($handle);
?>
Код:
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<table border=1 cellspacing=0>
<tr>
<td><center>IP Address:</center></td></td><td><center>Последно влизане:</center></td><td><center>Browser:</center></td><td><center>Operating system:</center></td><td><center>Статус:</center><td><center>Action:</center></td></tr>
<?php
$dir = "./info/";
if(!is_dir($dir))
{
mkdir($dir); }
$dh = opendir($dir); while($file = readdir($dh)) {
if($file != "." and $file != "..")
{
$lower = strtolower($file);
if(!eregi(".ht",$file))
{
$browser = file_get_contents("$dir/$file/browser.inc");
$date = file_get_contents("$dir/$file/date.inc");
$ip = file_get_contents("$dir/$file/ip.inc");
$os = file_get_contents("$dir/$file/os.inc");
$test = "./info/$ip/banned.inc";
if(file_exists($test)) $status = 'Banned';
else $status = 'Unbanned';
if("$status" == "Banned") $neshto = 'Unban';
else $neshto = 'Ban';
echo "<form method='post' action=ban.php>";
print "<tr><td><center>$ip</center></td><td><center>$date</center></td><td><center>$browser</center></td><td><center>$os</center></td><td><center>$status</center></td><td><center><input type=hidden name=ip value='$ip'><input type=submit value=$neshto></form></center></td></tr>"; // Когато поставяте линк не забравяйте да добавите и променливата $dir
}
}
}
print "</table>";
?>
Код:
<?
$ip = $_POST['ip']; // това е заявката ip
$test = "./info/$ip/banned.inc"; // проверяваме, дали този файл съществува
if(file_exists($test)){
unlink("$test"); // трием файла и така премахваме бана
echo "<META HTTP-EQUIV='refresh' CONTENT='0;URL=admin.php'>"; // пренасочваме към admin.php
exit;
}
$file = "./info/$ip/banned.inc"; // правим този file и така слагаме бан
$handle = fopen($file, 'a') or die("Не мога да отворя файла");
$data = "";
fwrite($handle, $data);
fclose($handle);
echo "<META HTTP-EQUIV='refresh' CONTENT='0;URL=admin.php'>";
?>
Код:
<?
$ip = getenv("REMOTE_ADDR"); // вземаме ip
$ban = "./info/$ip/banned.inc"; // проверяваме, дали иам такъв файл
if(file_exists($ban)){ // ако има, значи посетителят е баннат
echo "Достъп отказан";
exit;
}
echo "Добре дошли";
?>
За да защитим дадена част от сайта от баннати, просто трябва да сложим следния код
Код:
<?
include "prove.php";
?>
Демо на админ панела