<?session_name("ADMIN_SESS");session_start();require('../sinc/func_list.php')?><html><head><title>Администрирование поиска по сайту хранилища ДНК</TITLE><LINK href=/phprusearch/sinc/phpru.css rel=stylesheet><META HTTP-EQUIV="Pragma" CONTENT="no-cache"><meta content='администрирование поиска по сайту хранилища ДНК' name=description></HEAD><BODY><?if($_SERVER["QUERY_STRING"]=='faq')$SIZER='scrollbars=yes,width=500,height=350';else $SIZER='scrollbars=no,width=400,height=300'?>
<script>function popup(eventurl){winStats='toolbar=no,location=no,directories=no,menubar=no,'
winStats+='<?=$SIZER?>'
if(navigator.appName.indexOf("Microsoft")>=0){winStats+=',left=1,top=1'}else{winStats+=',screenX=1,screenY=1'}
eventwindow=window.open(eventurl,"",winStats).focus()}</script>
<?if(isset($_SESSION["inside"])&& $_SESSION["inside"]=='true' &&!isset($_POST["admin"])){ShowArea();}
if(isset($_POST["save"])&& isset($_SESSION["inside"])){$INPUT=array();$INPUT[0]=$_POST["domen"];$INPUT[1]=$_POST["num"];$INPUT[2]=$_POST["color"];if($_POST["title"][0]==0)$INPUT[3]=0;else $INPUT[3]=1;$INPUT[4]=$_POST["dirs"];$INPUT[5]=$_POST["files"];$INPUT[6]=$_POST["style"];$INPUT[7]=str_replace("<","</",$_POST["style"]);$NEW=implode("\r\n",$INPUT);PHPruSave($NEW,'../sinc/sconfig.php');echo'<p>Изменения внесены!<p>';exit(require('../sinc/footer.php'));}
elseif(isset($_POST["save_new"])&& isset($_SESSION["inside"])){$NEW=md5(trim($_POST["new_login"]))."\r\n".md5(trim($_POST["new_pass"]));PHPruSave($NEW,'admin.php');session_destroy();session_unset();unset($_SESSION,$_GET,$_POST)?>
<script>window.location="index.php"</script>
<?exit;}
if($_SERVER["QUERY_STRING"]=='change' && isset($_SESSION["inside"])&& PhpruSearch('../..','rus')==''){?>
<form METHOD=POST ACTION="">
<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=1 BGCOLOR=#444444>
<tr><td COLSPAN=2>Изменение логина и пароля. Будьте очень внимательны. Данные шифруются алгоритмом md5. Это значит, что у вас и кого-либо другого не будет доступа к текстовому представлению введенных данных!
<tr><td>Новый Login:<td><input TYPE=text NAME=new_login VALUE="">
<tr><td>Новый Password:<td><input TYPE=text NAME=new_pass VALUE="">
<tr><td><input TYPE=submit NAME=save_new VALUE=Записать>
</table>
</form>
<?exit(require('../sinc/footer.php'));}
elseif($_SERVER["QUERY_STRING"]=='config' && isset($_SESSION["inside"])){$FILE=file('../sinc/sconfig.php');if($FILE[3]==0){$type[0]='checked';$type[1]='';}else{$type[1]='checked';$type[0]='';}?>
<form name=phpru method=post action="">
<table width=95% border=0 cellpadding=0 cellspacing=1 bgcolor=#444444>
<tr><td colspan=2>Конфигурирование параметров поиска
<tr><td>Адрес сайта:<td><input TYPE=text SIZE=30 NAME=domen VALUE="<?=$FILE[0]?>">
<tr><td>Строк с совпадениями:<td><input TYPE=text NAME=num VALUE="<?=trim($FILE[1])?>" SIZE=1> - количество выводимых строк с совпадениями
<tr><td>Цвет найденных совпадений:<td><SCRIPT>
<!--
var hex=new Array(6)
hex[0]="FF"
hex[1]="CC"
hex[2]="99"
hex[3]="66"
hex[4]="33"
hex[5]="00"
function display(triplet){window.document.phpru.color.value='#'+triplet
Help(triplet)}
function drawCell(red,green,blue){document.write('<td BGCOLOR="#'+red+green+blue+'"><A HREF="javascript:display(\''+(red+green+blue)+'\')"><IMG SRC="place.gif" BORDER=0 HEIGHT=12 WIDTH=12></a>')}
function drawRow(red, blue){document.write('<tr>')
for(var i=0;i<6;++i){drawCell(red,hex[i],blue)}
document.write('')}
function drawTable(blue){document.write('<TABLE>')
for(var i=0;i<6;++i){drawRow(hex[i],blue)}
document.write('</table>')}
function drawCube(){document.write('<TABLE><tr>')
for(var i=0;i<6;++i){document.write('<td style="PADDING:0">')
drawTable(hex[i])
document.write('')}
document.write('</table>')}
function Help(id){msg='<FONT COLOR='+id+'>'+id+'</FONT><p>'
document.all.text.innerHTML=msg}
function Check(i){window.document.phpru.style.value+=i}
drawCube()
// -->
</SCRIPT>
<input TYPE=hidden NAME=color VALUE="">Текущий цвет: <SPAN ID=text><FONT COLOR="<?=trim($FILE[2])?>"><?=trim($FILE[2])?></FONT></SPAN>
<? PhpruSearch('../..','rus')?>
<tr><td>Стиль найденных совпадений:<td><input TYPE=BUTTON NAME="" VALUE=B TITLE="Жирный шрифт" style="WIDTH:30px;HEIGHT:20px" onclick="Check('')"> <input TYPE=BUTTON NAME="" VALUE=I TITLE="Наклонный шрифт" style="WIDTH:30px;HEIGHT:20px" onclick="Check('<I>')"> <input TYPE=BUTTON NAME="" VALUE=U TITLE="Подчеркнутый шрифт" style="WIDTH:30px;HEIGHT:20px" onclick="Check('<U>')"> <input TYPE=BUTTON NAME="" VALUE=STRONG TITLE="Выделенный шрифт" style="WIDTH:70px;HEIGHT:20px" onclick="Check('<STRONG>')"> <input TYPE=text NAME=style VALUE="<?=trim(htmlspecialchars($FILE[6]))?>"> - теги &lt;B>, &lt;I>, и т.д.
<tr><td ROWSPAN=2>Что отображать в результатах:
<td><input TYPE="radio" VALUE=0 NAME="title[]" <?=$type[0]?>> - реальное имя файла, например: <?='http://'.$_SERVER["SERVER_NAME"].$_SERVER["SCRIPT_NAME"]?>
<tr><td><input TYPE=radio VALUE=1 NAME="title[]" <?=$type[1]?>> - название из тега &lt;TITLE>, например:
<?$text=implode(' ',file('index.php'));@list($start,$end)=spliti('</TITLE>',$text,2);@list($recycle,$FIND)=spliti('<TITLE>',$start,2);echo$FIND?>
<tr><td colspan=2>Блокировать поиск в этих папках: только названия через запятую без путей
<tr><td colspan=2><input TYPE=text NAME=dirs SIZE=75 VALUE="<?=trim($FILE[4])?>">
<tr><td colspan=2>По умолчанию за ненадобностью заблокирован поиск в следующих файлах: .exe, .dll, .msi, .msp, .fon, .ttf, .doc, .xls, .zip, .rar, .swf, .gif, .jpg, .png, .bmp, .htaccess, .css, .js, .pl, .cgi, .psd, .mp3, .avi, .mpeg, .mid
<tr><td colspan=2>Можно дополнительно заблокировать поиск в других файлах: конкретное название файла, или маска вида *.расширение, все через запятую
<tr><td colspan=2><input TYPE=text NAME=files SIZE=75 VALUE="<?=trim($FILE[5])?>">
<tr><td colspan=2><input TYPE=submit NAME=save VALUE=Записать>
</table>
</form>
<?exit(require('../sinc/footer.php'));}
elseif($_SERVER["QUERY_STRING"]=='indexer' && isset($_SESSION["inside"])){?>
<p>Если окно индексации более 30сек остается пустым или через некоторое время возникает ошибка 404, значит скрипт не успевает обработать сайт (сайт слишком большой по объему). В этом случае ситуацию может спасти блокирование некоторых менее значимых или совсем ненужных для поиска папок в настройках.
<script>popup('../indexer.php')</script>
<?exit(require('../sinc/footer.php'));}
elseif($_SERVER["QUERY_STRING"]=='search' && isset($_SESSION["inside"])){?>
<p>Не забудьте сделать вывод результатов поиска в общем стиле сайта. Для этого достаточно вставить код из файла /phprusearch/index.php в макет страницы и сохранить её под этим же именем (index.php в папке /phprusearch/)
<p><form METHOD=POST ACTION=/phprusearch/ TARGET=_new>ПОИСК <input type=text name=query size=20 maxlength=20 value="" style="{border:inset 1px;background:#EEE}"> <input type=submit value=Ok style="cursor:pointer" class=but></form>
<?exit(require('../sinc/footer.php'));}
elseif($_SERVER["QUERY_STRING"]=='query' && isset($_SESSION["inside"])){echo'Последние запросы на поиск...<p>';$QUERY=array_reverse(file('../sinc/query.php'));echo'<TABLE WIDTH=95% CELLPADDING=0 CELLSPACING=1 BGCOLOR=#444444><tr><td>Дата<td>Запрос<td>С какой страницы<td>IP - посетителя';
foreach($QUERY as $VALUE){list($TIME,$SEARCH,$REFER,$IP)=explode("^^",$VALUE,4);echo'<tr><td>'.date("d.m.Yг.",$TIME).'';echo'<td>'.$SEARCH.'';echo'<td>'.$REFER.'';echo'<td>'.$IP.'';}
echo'</table><p>';echo'<A HREF=?clear>Очистить базу запросов</a><p>';exit(require('../sinc/footer.php'));}
elseif($_SERVER["QUERY_STRING"]=='faq' && isset($_SESSION["inside"])){include('../sinc/faq.php');exit(require('../sinc/footer.php'));}
elseif($_SERVER["QUERY_STRING"]=='clear' && isset($_SESSION["inside"])){$CL=fopen('../sinc/query.php',"w");fclose($CL);echo'<p>База запросов - очищена!<p>';exit(require('../sinc/footer.php'));}
if($_SERVER["QUERY_STRING"]=='out'){session_destroy();session_unset();unset($_SESSION);$FILE=file ('../sinc/sconfig.dat')?>
<script>window.location="<?=trim($FILE[0])?>"</script>
<?exit;}
if(isset($_POST["admin"])){PHPruAuth($_POST["login"],$_POST["password"]);}else ShowAdmin();function ShowAdmin(){?>
<p><form METHOD=POST ACTION="">
<p>Вход для администратора:
<p>Логин <input TYPE=TEXT SIZE=11 MAXLENGTH=12 NAME=login> Пароль <input TYPE=PASSWORD SIZE=11 MAXLENGTH=12 NAME=password> <input TYPE=submit NAME=admin VALUE=Ok class=but style="width:24px;cursor:hand" onmouseover="this.style.backgroundColor='LIGHTYELLOW'" onmouseout="this.style.backgroundColor='transparent'">
</form></BODY></HTML>
<?}
function ShowArea(){?>
<p>Добро пожаловать! Вы находитесь в панели управления поисковым скриптом
<p><TABLE WIDTH=95% BORDER=0 CELLPADDING=0 CELLSPACING=1 BGCOLOR=#444444>
<TR VALIGN=TOP><td WIDTH=150>
<TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=1 BGCOLOR=#444444>
<tr><td>Меню:
<tr><td><A HREF="?change" TITLE='Изменить пароль'>Смена пароля</a>
<tr><td><A HREF="?config" TITLE='Настроить файл конфигурации поиска'>Настройка</a>
<tr><td><A HREF="?indexer" TITLE='Проиндексировать сайт для поиска'>Индексация</a>
<tr><td><A HREF="?search" TITLE='Проверить работу поисковика'>Проверить поиск</a>
<tr><td><A HREF="?query" TITLE='Просмотреть поступавшие запросы на поиск'>Запросы</a>
<tr><td><A HREF="?faq" TITLE='Часто задаваемые вопросы'>FAQ</a>
<tr><td><A HREF="?out" TITLE='Выход'>Выход</a>
</table>
<td><?if($_SERVER["QUERY_STRING"]==''){?>
PHPru_Search.
<ul>
<li>Скрипт ищет информацию только в файлах физически лежащих на сервере.
<li>Если используется cms, то этот скрипт не для вас, т.к. там информация хранится в базах данных.
<li>Скрипт не обрабатывает вложения файла в файл (т.е. файлы c использованием ssi .shtml, или например директивы php require, include).
<li>Если не хотите, чтобы поисковик искал в каких-то определенных папках или файлах, их можно заблокировать в настройках.
<li>Скрипт обрабатывает сайты объемом до 10Mb (это ограничение связано не с самим скриптом, а со стандартными настройками php-интерпретатора на большинстве серверов).
</ul>
<?}}
exit?>
</table>