Вход Регистрация
Файл: admin.php
Строк: 255
<?php
/*(с) Im !eee*/
if(!file_exists('config.php')){exit('Не найден файл config.php!');}
require 
'config.php';
header('Content-Type: text/html; charset=UTF-8');
/*sets vars in config.php file*/
function set_var($nm,$vl,$file,$rw=0,$qt=1){
    
$vl=($qt)?'''.$vl.''':$vl;
    
$t=preg_replace('~(?<=/*['.$nm.']*/).*(?=/*[/'.$nm.']*/)~i',$vl,($rw)?file_get_contents($file):$file,1);
    if(
$rw){
        
file_put_contents($file$t);
    } else {
        return 
$t;
    }
}
$form=array(array(), array(), array(), array()); $ps=&$_POST;
/*form($arr), label1, name1, default_value1*/
function add_trs(&$arr){
    global 
$ps;
    
$ag=func_get_args(); $l=sizeof($ag);
    for(
$i=1$i<$l$i+=3){
        
/*$ag[$i] - label $ag[$i+1] - name $ag[$i+2] - default value*/
        
$arr[2][]=$ag[$i].'<br/><input type="text" name="'.$ag[$i+1].'" value="';
        
$arr[2][]='"><br/>';
        if(isset(
$ps[$ag[$i+1]])){
            if(
get_magic_quotes_gpc()){$ps[$ag[$i+1]]=stripslashes($ps[$ag[$i+1]]);}
            
$arr[1][$ag[$i+1]]=sizeof($arr[0]);
        } else {
            
$arr[1][$ag[$i+1]]=-1;
        }
        
$arr[0][]=$ag[$i+2];
        
$arr[3][]=false;
    }
}
/*form($arr), label1, name1, default_value1, a_name_of_text_input_in_the_same_form1, ...*/
function add_chb(&$arr){
    global 
$ps;
    
$ag=func_get_args(); $l=sizeof($ag);
    for(
$i=1$i<$l$i+=4){
        
/*$ag[$i] - label $ag[$i+1] - name
         *$ag[$i+2] - default value $ag[$i+3] - "text" input*/
        
$arr[2][]=$ag[$i].'<input type="checkbox" name="'.$ag[$i+1].'"';
        
$arr[2][]='><br/>';
        if(isset(
$ps[$ag[$i+3]])){
            
$ps[$ag[$i+1]]=(isset($ps[$ag[$i+1]])&&$ps[$ag[$i+1]]=='on')?1:0;
            
$arr[1][$ag[$i+1]]=sizeof($arr[0]);
        } else {
            
$arr[1][$ag[$i+1]]=-1;
        }
        
$arr[0][]=$ag[$i+2];
        
$arr[3][]=true;
    }
}
/*prints a form*/
function pr_fm(&$arr$act$sb_nm){
    
$l=sizeof($arr[0]);
    echo 
'<form method="POST" action="'.$act.'">';
    for(
$i=0$i<$l$i++){
        echo 
$arr[2][$i*2].
        ((
$arr[3][$i])?
        ((
$arr[0][$i])?'checked="checked"':''):htmlspecialchars($arr[0][$i])).
        
$arr[2][$i*2+1];
    }
    echo 
'<input type="submit" value="'.$sb_nm.'"></form>';
}
/*perform addslashes twice (to make preg_replace happy)*/
function asl($str){
    return 
addslashes(addslashes($str));
}
/*sets max messages on page if using files*/
function set_fl_mess_tot($new){
    
$all=file_get_contents(PG_PREF.'total.txt')+1;
    if(
$all==1){return;}
    
$arr=array(); $p=0$p2=1;
    while(
true){
        while(
sizeof($arr)<$new&&$p2<$all){
            
$name=PG_PREF.$p2.((file_exists(PG_PREF.$p2.'_.txt'))?'_':'').'.txt';
            
$arr=array_merge($arr,array_map('rtrim',file($name)));
            
unlink($name);
            
$p2++;
        }
        if(
sizeof($arr)==0){
            break;
        } else {
            
$t=sizeof($arr);
        }
        do{
            
$p++;
            if(
file_exists(PG_PREF.$p.'.txt')){
                
rename(PG_PREF.$p.'.txt'PG_PREF2.$p.'_.txt');
            }
            
file_put_contents(PG_PREF.$p.'.txt'join(PHP_EOLarray_splice($arr0$new, array())));
        } while(
sizeof($arr)>=$new);
    }
    
file_put_contents(PG_PREF.'total.txt'$p);
    
file_put_contents(PG_PREF.'last.txt'$t);
}
$me=$_SERVER['PHP_SELF'];
function 
pr_end(){
    echo 
'</body></html>';
}
register_shutdown_function('pr_end');
?>
<?php 
echo '<?xml version="1.0" encoding="utf-8"?>';?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<!- (с) Im !eee  ->
<head>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8"/>
<meta http-equiv="Cache-control" content="no-cache,no-store,must-revalidate"/>
<meta http-equiv="Expires" content="Wed, 26 Feb 1997 8:21:57 GMT"/>
<meta http-equiv="Pragma" content="no-cache"/>
<title>Гостевая книга :: админ-панель</title>
</head>
<body>

<?php 
if(isset($_COOKIE['jsgb_adm_pass']) && $_COOKIE['jsgb_adm_pass']==ADM_PASS){
    
$log=true
} else {
    
$log=false;
    
add_trs($form'Пароль''log_adm_pass''');
    if(
$form[1]['log_adm_pass']!=-1){ 
        if(
md5($ps['log_adm_pass'])==ADM_PASS){
            
setcookie('jsgb_adm_pass'ADM_PASStime()+60*60*24*10);
            
$log=true
        }else{
            echo 
'Неправильный пароль!<br/>';
        }
    }

if(!
$log){ 
    
pr_fm($form,$me,'Войти');
    exit;
}

$act=isset($_GET['act'])?$_GET['act']:4;
if(
$act>5||$act<1){$act=4;}
if(
$act==5){
    
setcookie('jsgb_adm_pass'''0);
    exit(
'Вы вышли.');
}
?>

<p><a href="<?php echo $me?>?act=1">Пароль</a> |
<a href="<?php echo $me?>?act=2">Настройки php</a> |
<a href="<?php echo $me?>?act=3">Настройки html</a> |
<a href="<?php echo $me?>?act=4">Сообщения</a> |
<a href="<?php echo $me?>?act=5">Выход</a>
</p><hr size="1"/>

<?php
if($act==1){
    echo 
'<b>Изменить пароль администратора</b><br/><br/>';
    
add_trs($form'Старый пароль''o_p''''Новый пароль''n_p''');
    if(
$form[1]['o_p']!=-1&&$form[1]['n_p']!=-1){
        if(
md5($ps['o_p'])==ADM_PASS){
            
$t=md5($ps['n_p']);
            
setcookie('jsgb_adm_pass'$ttime()+60*60*24*10);
            
set_var('adm_pass',$t,'config.php',1);
            echo 
'Пароль изменен.<br/>';
        } else {
            echo 
'Неправильный пароль.<br/>';
            
$form[0][$form[1]['n_p']]=$ps['n_p'];
        }
    }
    
pr_fm($form$me.'?act=1','Изменить');
    exit;
}
if(
$act==2){
    echo 
'<b>Настроить php скрипты на сервере</b><br/><br/>';
    
add_trs($form,
            
'Сообщений на странице''mess_tot'MESS_TOT,
            
'Максимальная длина имени автора''ml_aut'ML_AUT,
            
'Максимальная длина сообщения''ml_msg'ML_MSG,
            
'Ограничение по времени между сообщениями (секунды)''tm_wr'TM_WR
            
);
    
add_chb($form'Использовать bb теги''use_bb'USE_BB'mess_tot');
    
add_trs($form
            
'Хранение данных (mysql или files)''store'STORE,
            
'Путь к файлам данных (files)''pg_pref'PG_PREF,
            
'Сервер (mysql)''my_host'MY_HOST,
            
'Пользователь (mysql)''my_user'MY_USER,
            
'Пароль (mysql)''my_pass'MY_PASS,
            
'Имя базы данных (mysql)''my_db'MY_DB,
            
'Имя таблицы(mysql)''my_tbl'MY_TBL
            
);
    
add_chb($form'Создать таблицу (из файла jsgb_posts.sql)''crt_tbl'0'mess_tot');
    
//print_r($_POST);
    
$cont=file_get_contents('config.php');
    if((
$t=$form[1]['mess_tot'])!=-1&&$ps['mess_tot']!=MESS_TOT){
        
$t2=(int)$ps['mess_tot'];
        if(
$t2<1){
            echo 
'Число сообщений дожно быть больше 0<br/>';
        } else {
            
$cont=set_var('mess_tot',$t2,$cont);
            if(
STORE=='files'&&is_dir(PG_PREF)){
                
set_fl_mess_tot($t2);
            }
            
$form[0][$t]=$t2;
        }
    }
    if((
$t=$form[1]['ml_aut'])!=-1&&$ps['ml_aut']!=ML_AUT){
        
$t2=(int)$ps['ml_aut'];
        if(
$t2<1){
            echo 
'Длина имени автора дожна быть больше 0<br/>';
        } else {
            
$cont=set_var('ml_aut',$t2,$cont);
            
$form[0][$t]=$t2;
        }
    }
    if((
$t=$form[1]['ml_msg'])!=-1&&$ps['ml_msg']!=ML_MSG){
        
$t2=(int)$ps['ml_msg'];
        if(
$t2<1){
            echo 
'Длина сообщения дожна быть больше 0<br/>';
        } else {
            
$cont=set_var('ml_msg',$t2,$cont);
            
$form[0][$t]=$t2;
        }
    }
    if((
$t=$form[1]['tm_wr'])!=-1&&$ps['tm_wr']!=TM_WR){
        
$t2=(int)$ps['tm_wr'];
        
$cont=set_var('tm_wr',$t2,$cont);
        
$form[0][$t]=$t2;
    }
    if((
$t=$form[1]['use_bb'])!=-1&&$ps['use_bb']!=USE_BB){
        
$cont=set_var('use_bb',$ps['use_bb'],$cont);
        
$form[0][$t]=$ps['use_bb'];
    }
    
$store=STORE;
    if((
$t=$form[1]['store'])!=-1&&$ps['store']!=STORE){
        
$t2=$ps['store'];
        if(
$t2!='mysql'&&$t2!='files'){
            echo 
'Неизвестный способ хранения<br/>';
        } else {
            
$cont=set_var('store',$t2,$cont);
            
$form[0][$t]=$t2;
            
$store=$t2;
        }
    }
    if((
$t=$form[1]['pg_pref'])!=-1&&$ps['pg_pref']!=PG_PREF){
        
$t2=$ps['pg_pref'];
        while(
$t2[strlen($t2)-1]=='\'||$t2[strlen($t2)-1]=='/'){
                    $t2=substr($t2,0,-1);
                }
        $cont=set_var('
pg_pref',asl($t2),$cont);
        $form[0][$t]=$t2.DIRECTORY_SEPARATOR;
        if($store=='
files'){
            if(!is_dir($t2)){
                echo '
Неправильный путь к файлам<br/>';
            } else {
                if(!file_exists($t2.'
total.txt')){
                    file_put_contents($t2.'
total.txt', 0);
                }
                if(!file_exists($t2.'
lock.txt')){
                    file_put_contents($t2.'
lock.txt', '');
                }
                if(!file_exists($t2.'
last.txt')){
                    file_put_contents($t2.'
last.txt', 0);
                }
            }
        }
    }
    $conn=false;
    if(($t=$form[1]['
my_host'])!=-1&&($t1=$form[1]['my_user'])!=-1&&($t2=$form[1]['my_pass'])!=-1){
        if($ps['
my_host']!=MY_HOST||$ps['my_user']!=MY_USER||$ps['my_pass']!=MY_PASS){
            $cont=set_var('
my_host',asl($ps['my_host']),$cont);
            $form[0][$t]=$ps['
my_host'];
            $cont=set_var('
my_user',asl($ps['my_user']),$cont);
            $form[0][$t1]=$ps['
my_user'];
            $cont=set_var('
my_pass',asl($ps['my_pass']),$cont);
            $form[0][$t2]=$ps['
my_pass'];
        }
        if($store=='
mysql'){
            $conn=mysql_connect($ps['
my_host'],$ps['my_user'],$ps['my_pass']);
            if($conn===false){
                echo '
Невозможно подключиться к серверу MySQL<br/>';
            }
        }
    }
    if(($t=$form[1]['
my_db'])!=-1){
        $t2=$ps['
my_db'];
        if($t2!=MY_DB){
            $cont=set_var('
my_db',asl($t2),$cont);
            $form[0][$t]=$t2;
        }
        if($conn!==false){
            if(!mysql_select_db($t2)){
                echo '
Невозможно использовать заданную базу данных<br/>';
            }
        }
    }
    if(($t=$form[1]['
my_tbl'])!=-1){
        $t2=$ps['
my_tbl'];
        if($t2!=MY_TBL){
            $cont=set_var('
my_tbl',asl($t2),$cont);
            $form[0][$t]=$t2;
        }
        if($conn!==false){
            if($form[1]['
crt_tbl']!=-1&&$ps['crt_tbl']){
                if(!file_exists('
jsgb_posts.sql')){
                    echo '
Не найден файл jsgb_posts.sqlнеобходимый для создания таблицы<br/>';
                } else {
                    if(!mysql_query(set_var('
my_tbl', '`'.$t2.'`', file_get_contents('jsgb_posts.sql'), 0, 0))){
                       echo '
Невозможно создать таблицу<br/>';
                    }
                }
            }
            if(!mysql_query('
SELECT `id`,`auth`,`date`,`postFROM `'.$t2.'LIMIT 1')){
                echo '
Невозможно использовать заданную таблицу<br/>';
            }
        }
    }
    file_put_contents('
config.php', $cont);
    pr_fm($form, $me.'
?act=2','Изменить');
    exit;
}
if($act==3){
    $tpth='
http://'.$_SERVER['SERVER_NAME'].$_SERVER['PHP_SELF'];
    
$tpth=substr($tpth0strrpos($tpth'/')+1);
    echo 
'<b>Редактировать пути в файлах html</b><br/><br/>';
    
add_trs($form,'index.html - msg_loader.php','ind_path',$tpth.'msg_loader.php');
    
add_chb($form,'Редактировать''ind_edit',0,'ind_path');
    
add_trs($form,'write.html - msg_writer.php','write_path',$tpth.'msg_writer.php');
    
add_chb($form,'Редактировать''write_edit',0,'ind_path');
    
add_trs($form,'main.html - msg_counter.php','count_path',$tpth.'msg_counter.php');
    
add_chb($form,'Редактировать''count_edit',0,'ind_path');
    
add_trs($form,'Ссылка на главную страницу','main_path','/');
    
add_chb($form,'В файле index.html''mn_ind_ed',0,'ind_path');
    
add_chb($form,'В файле write.html''mn_wr_ed',0,'ind_path');
    if(
$form[1]['ind_edit']!=-1&&$ps['ind_edit']&&($t=$form[1]['ind_path'])!=-1){
        
$form[0][$t]=$ps['ind_path'];
        if(!
file_exists('index.html')){
            echo 
'Не найден файл index.html<br/>';
        } else {
            echo 
'Путь в файле index.html указан<br/>';
            
set_var('path'$ps['ind_path'], 'index.html'1);
        }
    }
    if(
$form[1]['write_edit']!=-1&&$ps['write_edit']&&($t=$form[1]['write_path'])!=-1){
        
$form[0][$t]=$ps['write_path'];
        if(!
file_exists('write.html')){
            echo 
'Не найден файл write.html<br/>';
        } else {
            echo 
'Путь в файле write.html указан<br/>';
            
set_var('path'$ps['write_path'], 'write.html'1);
        }
    }
    if(
$form[1]['count_edit']!=-1&&$ps['count_edit']&&($t=$form[1]['count_path'])!=-1){
        
$form[0][$t]=$ps['count_path'];
        if(!
file_exists('main.html')){
            echo 
'Не найден файл main.html<br/>';
        } else {
            echo 
'Путь в файле main.html указан<br/>';
            
set_var('path'$ps['count_path'], 'main.html'1);
        }
    }
    if((
$t=$form[1]['main_path'])!=-1){
        
$form[0][$t]=$ps['main_path'];
        
$str='-><a href="'.$ps['main_path'].'">На главную</a><!-';
        if(
$form[1]['mn_ind_ed']!=-1&&$ps['mn_ind_ed']){
            if(!
file_exists('index.html')){
                echo 
'Не найден файл index.html<br/>';
            } else {
                echo 
'Путь в файле index.html указан<br/>';
                                
file_put_contents('index.html'preg_replace('~(?<=<!-/*[main]*/-><a href=").*(?="[^>]*>)~i'asl($ps['main_path']), file_get_contents('index.html')));
            }
        }
        if(
$form[1]['mn_wr_ed']!=-1&&$ps['mn_wr_ed']){
            if(!
file_exists('write.html')){
                echo 
'Не найден файл write.html<br/>';
            } else {
                echo 
'Путь в файле write.html указан<br/>';
                
file_put_contents('write.html'preg_replace('~(?<=<!-/*[main]*/-><a href=").*(?="[^>]*>)~i'asl($ps['main_path']), file_get_contents('write.html')));
            }
        }
    }
    
pr_fm($form$me.'?act=3','Ок');
    exit;
}
if(
$act==4){ 
    include 
STORE.'.php'
    function 
ex_hn($val='Ошибка обработки данных'){
        echo 
'<br/>'.$val;
        
rel_lock();
    } 
    if(isset(
$_GET['msg_scr'])){
        
lock('w');
        if(
$_GET['msg_scr']==1){
            
$a=''$m=''$ed=0;
            
$fpath=$me.'?act=4&amp;msg_scr=1';
            if(isset(
$_GET['p'],$_GET['n'])){
                
$ed=1;
                
$p=$_GET['p']; $n=$_GET['n'];
                list(
$a,$d,$m)=get_mes($p,$n);
                
$fpath.='&amp;p='.$p.'&amp;n='.$n;
            }
            
add_trs($form'Автор''a'$a,
                
'Сообщение''m'$m
                
);
            if(
$ed){
                
add_trs($form'Дата''d'date('d-m-Y H:i:s',$d));
                if((
$t1=$form[1]['a'])!=-1&&($t2=$form[1]['d'])!=-1&&($t3=$form[1]['m'])!=-1){
                    
ed_m($p$n, ($ps['a']=='')?' ':$ps['a'], (int)strtotime($ps['d']), ($ps['m']=='')?' ':$ps['m']);
                    echo 
'Сообщение изменено<br/>';
                    
$form[0][$t1]=$ps['a'];
                    
$form[0][$t2]=$ps['d'];
                    
$form[0][$t3]=$ps['m'];
                }
            } else {
                if(
$form[1]['a']!=-1&&$form[1]['m']!=-1){
                    
wr(nl2br(($ps['a']=='')?' ':$ps['a']), nl2br(($ps['m']=='')?' ':$ps['m']));
                    echo 
'Сообщение добавлено<br/>';
                }
            }
            
rel_lock();
            
pr_fm($form$fpath, ($ed)?'Изменить':'Добавить');
        } else if(
$_GET['msg_scr']==2&&isset($_GET['p'],$_GET['n'])){
            
del_m($p=$_GET['p'], $_GET['n']);
            echo 
'Сообщение удалено<br/>';
            
$ed=1;
        }
        echo 
'<br/><a href="'.$me.'?act=4'.(($ed)?'&amp;p='.$p:'').'">Назад</a>';
    } else {
        
lock('r');
                
$np=p_num();
                echo 
'<b>Сообщения</b><br/><a href="'.$me.'?act=4&amp;msg_scr=1">[Написать]</a>';
        if(
$np==0){
            exit(
ex_hn('Сообщений нет'));
        }
        
$n=isset($_GET['p'])?$_GET['p']:1$l=0;
        
$arr=m_on_p(&$n, &$l);
        
rel_lock();
        for(
$i=0;$i<$l;$i++){
            echo 
'<p>'.$arr[0][$i].'('.date('d.m.Y H:i:s',$arr[1][$i]).')<br/>'.$arr[2][$i].'</p> <a href="'.$me.'?act=4&amp;msg_scr=1&amp;p='.$n.'&amp;n='.$i.'">[Редактировать]</a> <a href="'.$me.'?act=4&amp;msg_scr=2&amp;p='.$n.'&amp;n='.$i.'">[Удалить]</a><br/><hr size="1"/>';
        }
        for(
$i=1;$i<=$np;$i++){
            if(
$i==$n){
                echo 
' <b>'.$i.'</b>';
            } else {
                echo 
' <a href="'.$me.'?act=4&amp;p='.$i.'">'.$i.'</a>';
            }
        }
        echo 
'</p>';
    }
    exit;
}
?>
Онлайн: 1
Реклама