Компактен админ панел

Bummer

Registered
В този урок ще ви представя, как да си направите админ панел за сайта, като панелът ще е ссътавен само от 4 файла и 1 папка.В него ще ви се показва, кога - кой и с какво е влязъл, каква му е операционната система + възможност да му сложите ban.Бановете също така могат да бъдат махани от админ панела.
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);   
?>
admin.php
Код:
<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>";   
  
?>
ban.php
Код:
<?       
$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'>";       
       
?>
prove.php
Код:
<?       
$ip = getenv("REMOTE_ADDR"); // вземаме ip       
$ban = "./info/$ip/banned.inc"; // проверяваме, дали иам такъв файл       
if(file_exists($ban)){ // ако има, значи посетителят е баннат       
echo "Достъп отказан";       
exit;       
}       
echo "Добре дошли";       
?>
Правим една папка info и сме готови
За да защитим дадена част от сайта от баннати, просто трябва да сложим следния код
Код:
<?     
include "prove.php";     
?>
Демо на началото
Демо на админ панела
 
Добре дошли

Warning: mkdir() [function.mkdir]: Permission denied in /users/csgamin/public_html/admin/index.php on line 24

Warning: fopen(info/84.54.180.153/ip.inc) [function.fopen]: failed to open stream: No such file or directory in /users/csgamin/public_html/admin/index.php on line 26
Не мога да отворя файла

Пиши ми това.Какво да правя ?
 
alex95_bg_2 каза:


бах :) това е ебаси дупката в сигурността, ползвайте ACL бе хора :)

-------------------------
http://mail-lists.co.cc/ - Българска мейл листа, Windows, Linux и други. Потребителите могат да правят заявки за нови мейл листи.
 

Back
Горе