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

Готови за използване кодове
Post Reply
Bummer
Много Редовен
Много Редовен
Posts: 1744
Joined: Tue May 22, 2007 9:08 am
Answers: 53
Contact:

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

Post by Bummer » Thu Aug 21, 2008 10:55 am

В този урок ще ви представя, как да си направите админ панел за сайта, като панелът ще е ссътавен само от 4 файла и 1 папка.В него ще ви се показва, кога - кой и с какво е влязъл, каква му е операционната система + възможност да му сложите ban.Бановете също така могат да бъдат махани от админ панела.
index.php

Code: Select all

       
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">       
<?       
include "prove.php"; // този файл въсщност ще проверява, дали посетителят е баннат или не       
echo "<br>";       
?>       
<?    
$oslist = array&#40;'Windows 3.11' => 'Win16','Windows 95' => '&#40;Windows 95&#41;|&#40;Win95&#41;|&#40;Windows_95&#41;','Windows 98' => '&#40;Windows 98&#41;|&#40;Win98&#41;','Windows 2000' => '&#40;Windows NT 5.0&#41;|&#40;Windows 2000&#41;','Windows XP' => '&#40;Windows NT 5.1&#41;|&#40;Windows XP&#41;','Windows Server 2003' => '&#40;Windows NT 5.2&#41;','Windows Vista' => '&#40;Windows NT 6.0&#41;','Windows 7' => '&#40;Windows NT 7.0&#41;','Windows NT 4.0' => '&#40;Windows NT 4.0&#41;|&#40;WinNT4.0&#41;|&#40;WinNT&#41;|&#40;Windows NT&#41;','Windows ME' => 'Windows ME','Open BSD' => 'OpenBSD','Sun OS' => 'SunOS','Linux' => '&#40;Linux&#41;|&#40;X11&#41;','Mac OS' => '&#40;Mac_PowerPC&#41;|&#40;Macintosh&#41;','QNX' => 'QNX','BeOS' => 'BeOS','OS/2' => 'OS/2','Search Bot'=>'&#40;nuhk&#41;|&#40;Googlebot&#41;|&#40;Yammybot&#41;|&#40;Openbot&#41;|&#40;Slurp&#41;|&#40;MSNBot&#41;|&#40;Ask Jeeves/Teoma&#41;|&#40;ia_archiver&#41;'&#41;;    
foreach&#40;$oslist as $CurrOS=>$Match&#41;&#123;    
if &#40;eregi&#40;$Match, $_SERVER&#91;'HTTP_USER_AGENT'&#93;&#41;&#41;    
&#123;break;&#125;    
&#125;    
?>   
<?php   
$date = &#40;date&#40;"j.m Y H&#58;i&#58;s"&#41;&#41;;   
$browser = getenv&#40;"HTTP_USER_AGENT"&#41;;   
if&#40;preg_match&#40;"/MSIE/i", "$browser"&#41;&#41; $browsers = 'Internet Explorer';   
else if&#40;preg_match&#40;"/Mozilla/i", "$browser"&#41;&#41; $browsers = 'Mozilla Firefox';   
else if&#40;preg_match&#40;"/Opera/i", "$browser"&#41;&#41; $browsers = 'Opera';   
else if&#40;preg_match&#40;"/Netscape/i", "$browser"&#41;&#41; $browsers = 'NetScape';   
else $browsers = 'Unknown';   
$ip = getenv&#40;"REMOTE_ADDR"&#41;;   
if&#40;!is_dir&#40;"./info/$ip/"&#41;&#41;    
&#123;    
mkdir&#40;"./info/$ip"&#41;;   
$file = "info/$ip/ip.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$ip";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;    
$file = "./info/$ip/browser.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$browsers";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;   
$file = "./info/$ip/date.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$date";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;   
$file = "./info/$ip/os.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$CurrOS";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;   
exit;   
&#125;   
function empty_folder&#40;$folder, $debug = false&#41;&#123;   
      
    if &#40;$debug&#41; &#123;   
    &#125;   
      
    $d = dir&#40;$folder&#41;;   
      
    while &#40;false !== &#40;$entry = $d->read&#40;&#41;&#41;&#41; &#123;   
      
        $isdir = is_dir&#40;$folder."/".$entry&#41;;   
          
        if &#40;!$isdir and $entry!="." and $entry!=".."&#41; &#123;   
          
            unlink&#40;$folder."/".$entry&#41;;   
              
        &#125; elseif &#40;$isdir  and $entry!="." and $entry!=".."&#41; &#123;   
          
            empty_folder&#40;$folder."/".$entry,$debug&#41;;   
              
            rmdir&#40;$folder."/".$entry&#41;;   
              
        &#125;   
    &#125;   
    $d->close&#40;&#41;;   
&#125;   
empty_folder&#40;"./info/$ip",true&#41;;   
rmdir&#40;"./info/$ip/"&#41;;   
mkdir&#40;"./info/$ip/"&#41;;   
$file = "info/$ip/ip.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$ip";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;    
$file = "info/$ip/browser.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$browsers";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;   
$file = "./info/$ip/date.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$date";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;   
$file = "./info/$ip/os.inc";   
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;   
$data = "$CurrOS";   
fwrite&#40;$handle, $data&#41;;   
fclose&#40;$handle&#41;;   
?>   

admin.php

Code: Select all

       
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">  
<table border=1 cellspacing=0>  
<tr>  
<td><center>IP Address&#58;</center></td></td><td><center>Последно влизане&#58;</center></td><td><center>Browser&#58;</center></td><td><center>Operating system&#58;</center></td><td><center>Статус&#58;</center><td><center>Action&#58;</center></td></tr>  
<?php   
$dir = "./info/";   
if&#40;!is_dir&#40;$dir&#41;&#41;   
&#123;   
mkdir&#40;$dir&#41;; &#125;   
$dh = opendir&#40;$dir&#41;; while&#40;$file = readdir&#40;$dh&#41;&#41; &#123;   
if&#40;$file != "." and $file != ".."&#41;  
&#123;   
$lower = strtolower&#40;$file&#41;;   
if&#40;!eregi&#40;".ht",$file&#41;&#41;   
&#123;   
$browser = file_get_contents&#40;"$dir/$file/browser.inc"&#41;;  
$date = file_get_contents&#40;"$dir/$file/date.inc"&#41;;  
$ip = file_get_contents&#40;"$dir/$file/ip.inc"&#41;;  
$os = file_get_contents&#40;"$dir/$file/os.inc"&#41;;  
$test = "./info/$ip/banned.inc";  
if&#40;file_exists&#40;$test&#41;&#41; $status = 'Banned';  
else $status = 'Unbanned';  
if&#40;"$status" == "Banned"&#41; $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   
&#125;   
&#125;   
&#125;   
print "</table>";   
  
?>  

ban.php

Code: Select all

       
<?       
$ip = $_POST&#91;'ip'&#93;; // това е заявката ip       
$test = "./info/$ip/banned.inc"; // проверяваме, дали този файл съществува       
if&#40;file_exists&#40;$test&#41;&#41;&#123;       
unlink&#40;"$test"&#41;; // трием файла и така премахваме бана       
echo "<META HTTP-EQUIV='refresh' CONTENT='0;URL=admin.php'>"; // пренасочваме към admin.php       
exit;       
&#125;       
$file = "./info/$ip/banned.inc"; // правим този file и така слагаме бан       
$handle = fopen&#40;$file, 'a'&#41; or die&#40;"Не мога да отворя файла"&#41;;       
$data = "";       
fwrite&#40;$handle, $data&#41;;       
fclose&#40;$handle&#41;;        
echo "<META HTTP-EQUIV='refresh' CONTENT='0;URL=admin.php'>";       
       
?>       

prove.php

Code: Select all

       
<?       
$ip = getenv&#40;"REMOTE_ADDR"&#41;; // вземаме ip       
$ban = "./info/$ip/banned.inc"; // проверяваме, дали иам такъв файл       
if&#40;file_exists&#40;$ban&#41;&#41;&#123; // ако има, значи посетителят е баннат       
echo "Достъп отказан";       
exit;       
&#125;       
echo "Добре дошли";       
?>       

Правим една папка info и сме готови
За да защитим дадена част от сайта от баннати, просто трябва да сложим следния код

Code: Select all

     
<?     
include "prove.php";     
?>     

Демо на началото
Демо на админ панела
Last edited by Bummer on Thu Aug 21, 2008 12:12 pm, edited 2 times in total.

User avatar
oXteR
Гуру
Гуру
Posts: 2081
Joined: Mon Mar 19, 2007 3:50 pm
Answers: 68
Location: GD
Contact:

Post by oXteR » Thu Aug 21, 2008 11:55 am

Много добър скрипт браво
Определено ще се използва

Little_Bitch
Потребител
Потребител
Posts: 692
Joined: Thu Jul 17, 2008 9:31 pm
Answers: 37
Contact:

Post by Little_Bitch » Thu Aug 21, 2008 12:41 pm

oXteR wrote:Много добър скрипт браво
Определено ще се използва

:?:

debian
Много Редовен
Много Редовен
Posts: 1679
Joined: Thu Mar 01, 2007 4:33 pm
Answers: 56
Location: Бургас

Post by debian » Thu Aug 21, 2008 12:50 pm

На Жоро е подобна :)

Morales
Нов
Нов
Posts: 157
Joined: Thu Apr 19, 2007 6:44 pm
Location: Плевен

Post by Morales » Thu Sep 11, 2008 10:03 pm

На мен ми дава 1 грешки и постояно ми премигва admin.php
Помогнете ми плс :cry:

Bummer
Много Редовен
Много Редовен
Posts: 1744
Joined: Tue May 22, 2007 9:08 am
Answers: 53
Contact:

Post by Bummer » Sun Sep 14, 2008 3:49 pm

Аз как да позная, какви грешки ти дава ?

sianbg2
Нов
Нов
Posts: 120
Joined: Tue Oct 28, 2008 11:50 am

Post by sianbg2 » Tue Oct 28, 2008 11:52 am

Добре дошли

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
Не мога да отворя файла

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

User avatar
alex95_bg_2
Шаман
Шаман
Posts: 5462
Joined: Thu Jul 24, 2008 8:25 am
Answers: 325
Location: localhost
Contact:

Post by alex95_bg_2 » Tue Oct 28, 2008 12:24 pm

CHMOD 777

d3v1ous
Нов
Нов
Posts: 50
Joined: Tue Dec 02, 2008 1:19 pm

RE:

Post by d3v1ous » Thu Dec 11, 2008 10:32 am

alex95_bg_2 wrote:CHMOD 777



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

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

User avatar
Ivkoni_
Турист
Турист
Posts: 263
Joined: Sun Dec 14, 2008 9:37 am

Post by Ivkoni_ » Sun Dec 14, 2008 4:59 pm

Ще го пробвам вижда ми се полезно мерси :)

Post Reply