Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Редактирование шаблонов показано на рисунке 20





 

Рисунок 19 Редактирование шаблонов

Рис. 20

 

Код редактирования шаблонов предельно прост и использует возможности визуального JavaScript-редактора кода Edit Area.

31. Администратор может также работать с пользователями:

· удалять их,

· блокировать,

· разблокировать,

· редактировать их анкетные данные.

Работа с пользователями реализована посредством AJAX.

Содержимое всех небольших вспомогательных файлов приведено ниже.

· Блокировка:

<?

session_start();

if (!isset($_SESSION['user_id']))

{

header('Location: /soc/index.php?page='.$_SERVER["PHP_SELF"]);

//die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');

}

$id = (int)$_POST['id'];

if ($id == $_SESSION['user_id']) {

echo 'Себя нельзя банить';

exit;

}

include '../mysql.php';

$q = "update users set status=status+20 where id={$id}";

if (mysql_query($q)) echo 'Успешно забанен'; else echo 'Невозможно забанить';

?>

· Разблокировка:

<?

session_start();

if (!isset($_SESSION['user_id']))

{

header('Location: /soc/index.php?page='.$_SERVER["PHP_SELF"]);

//die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');

}

$id = (int)$_POST['id'];

if ($id == $_SESSION['user_id']) {

echo 'Себя нельзя банить';

exit;

}

include '../mysql.php';

$q = "update users set status=status-20 where id={$id}";

if (mysql_query($q)) echo 'Успешно разбанен'; else echo 'Невозможно разбанить';

?>

· Редактирование анкеты:

<?

session_start();

if (!isset($_SESSION['user_id']))

{

header('Location: /soc/index.php?page='.$_SERVER["PHP_SELF"]);

//die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');

}

$id = (int)$_POST['id'];

include '../mysql.php';

include '../options/user_fns.php';

$ud = get_user_details($id);

if ($ud!= 0)

{

?>

<script language="JavaScript" type="text/javascript">

<!--

function get_mess()

{

data = $('form').serialize();

$("#mu").load('ch_p.php', data);

}

//-->

</script>

<h3>Редактирование анкеты</h3>

<form name="an_f">

<input type="hidden" name="id" value="<? echo $id;?>">

<table class="profileTable" cellpadding="0" cellspacing="0">

<tbody>

<tr>

<td colspan="2" class="title">

· Общая информация

</td>

</tr>

<tr>

<td class="label">Никнейм</td>

<td><input type="text" name="nick" value="<? echo $ud['nick'];?>"></td>

</tr>

<tr>

<td class="label">ФИО</td>

<td><input type="text" name="fio" size="40" value="<? echo $ud['fio'];?>"></td>

</tr>

<tr>

<td class="label">Дата рождения</td>

<td><input type="text" name="birth" value="<? echo $ud['birth'];?>"></td>

</tr>

<tr>

<td colspan="2" class="title">

· Контактная информация

</td>

</tr>

<tr>

<td class="label">ICQ</td>

<td><input type="text" name="icq" value="<? echo $ud['icq'];?>"></td>

</tr>

<tr>

<td colspan="2" class="title">

· Персональная информация

</td>

</tr>

<tr>

<td class="label">Деятельность</td>

<td width="300"><textarea rows="5" cols="30" name="job"><? echo $ud['job'];?></textarea></td>

</tr>

<tr>

<td class="label">Интересы</td>

<td width="300"><textarea rows="5" cols="30" name="hobbie"><? echo $ud['hobbie'];?></textarea></td>

</tr>

</tbody>

</table>

<input type="button" value="Обновить" onClick="get_mess();>

</form>

<?

}

?>

· Удаление пользователя:

<?

session_start();

if (!isset($_SESSION['user_id']))

{

header('Location: /soc/index.php?page='.$_SERVER["PHP_SELF"]);

//die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');

}

$id = (int)$_POST['id'];

if ($id == $_SESSION['user_id']) {

echo 'Себя нельзя удалить';

exit;

}

include '../mysql.php';

$q = "delete from users where id={$id}";

$q1 = "delete from bookmark where user_id={$id}";

$q2 = "delete from user_details where id={$id}";

if (mysql_query($q) && mysql_query($q2))

{

mysql_query($q1);

echo 'Удалено успешно';

}

else

{

echo 'Невозможно удалить';

}

?>

 

Важнейшей функцией администратора является просмотр логов, отфильтрованных специально для системы.

Форма просмотра изображена на рисунке 21.

Как видно из рисунка, фильтруются различные запросы, в том числе потенциально опасные.

Рисунок 20 Форма просмотр логов, отфильтрованных специально для системы

 

 

Код сценария представлен ниже:

<?

session_start();

if (!isset($_SESSION['user_id']))

{

header('Location: /soc/index.php?page='.$_SERVER["PHP_SELF"]);

//die('Доступ закрыт, даём ссылку на авторизацию. — <a href="login.php">Авторизоваться</a>');

}

include '../mysql.php';

include '../head.php';

if ($_SESSION['adm']!= 1)

{

echo '<div class="errMessage">Вы не являетесь администратором</div>';

echo '</div>';

include '../foot.php';

exit;

}

$id = $_SESSION['user_id'];

$same_user = true;

$no_user = false;

include '../menu.php';

$pages = $_POST['pages'];

if (empty($pages)) $pages = 20;

//echo $pages;

function replace_month($path){

if(eregi('jan',$path)){$path='1';}

elseif(eregi('feb',$path)){$path='2';}

elseif(eregi('mar',$path)){$path='3';}

elseif(eregi('apr',$path)){$path='4';}

elseif(eregi('may',$path)){$path='5';}

elseif(eregi('jun',$path)){$path='6';}

elseif(eregi('jul',$path)){$path='7';}

elseif(eregi('aug',$path)){$path='8';}

elseif(eregi('sep',$path)){$path='9';}

elseif(eregi('oct',$path)){$path='10';}

elseif(eregi('nov',$path)){$path='11';}

else{$path='12';}

return $path;

}

$filename = 'z:/usr/local/apache/logs/access.log';

$fd = $pages; // 1 строка 100 bytes - 20 строк

$fp = filesize($filename)-$fd*100;

if ($pages == 'all') $fp = 0;

$fh = fopen($filename, 'r');

fseek($fh, $fp);

$arr = array();

$i = 0;

$a = 0;

while (!feof($fh))

{

$line = trim(fgets($fh, 1024));

if(!eregi('.jpg',$line) and!eregi('.gif',$line) and!eregi('.js',$line) and!eregi('.css',$line))

{

//echo 'b';

if (strstr($line, '/soc'))

{

$arr[$i] = $line;

//echo 'a';

$i++;

}

}

}

fclose($fh);

?>

<div id="rightCol">

<form action='access.php' method='post'>

<select name="pages">

<?

$pp = array(20,50,100,200,500);

foreach ($pp as $p)

{

echo "<option value=$p";

if ($p == $pages) echo " selected";

echo ">Последние $p</option>";

}

?>

<option value="all" <? if ($pages == 'all') echo 'selected';?>>Все</option>&nbsp;<input type="submit" value="Просмотреть">

</form>

<br />

<table border="1">

<?

foreach ($arr as $v)

{

preg_match("/^(\S+)\s+(\S+)\s+(\S+)\s+\[(.*)\]\s+\"(.*)\"\s+(\S+)\s+(\S+)$/x",$v,$matches);

array_shift($matches); // так как 0 элемент содержит всю строку

$ip = $matches[0];

$time = $matches[3];

$url = $matches[4];

$succes = $matches[5];

$bytes = $matches[6];

preg_match("@(..)/(...)/(....):(..):(..):(..)@",$time,$matches);

array_shift($matches);

$matches[1] = replace_month($matches[1]);

$time = mktime($matches[3],$matches[4],$matches[5],$matches[1],$matches[0],$matches[2]);

if (eregi("(\%27)|(or)|(and)|(union)",$url)) { $hack[$h++] = array($ip, $time, $url, $bytes); }

preg_match("/\S+\s+(\S+)/",$url,$matches);

$url = $matches[1];

$url = urlencode($url);

if($succes=='200') {

$success[$i++] = array ($ip,$time,$url,$bytes);

}

else {

$failure[$x++] = array ($ip,$time,$url,$bytes);

}

}

?>

<tr>

<td align="center" colspan="4">Корректные запросы</td>

</tr>

<?

if (!empty($success))

{

$success = array_reverse($success);

foreach ($success as $k=>$v)

{

echo '<tr>';

foreach ($v as $key=>$val)

{

if ($key == 1) { $val = date('d.m.Y H:i:s',(int)$val); }

if ($key == 2) {

$val = urldecode($val);

$val = nl2br(wordwrap($val, 40, "\n", 1));

}

echo "<td>$val</td>";

}

echo '</tr>';

}

}

else

{

echo '<tr><td colspan="4">Не обнаружены</td>';

}

?>

<tr>

<td align="center" colspan="4">Некорректные запросы</td>

</tr>

<?

if (!empty($failure))

{

$failure = array_reverse($failure);

foreach ($failure as $k=>$v)

{

echo '<tr>';

foreach ($v as $key=>$val)

{

if ($key == 1) { $val = date('d.m.Y H:i:s',(int)$val); }

if ($key == 2) { $val = urldecode($val); $val = nl2br(wordwrap($val, 40, "\n", 1)); }

echo "<td>$val</td>";

}

echo '</tr>';

}

}

else

{

echo '<tr><td colspan="4">Не обнаружены</td>';

}

?>

<tr>

<td align="center" colspan="4">Подозрительные запросы</td>

</tr>

<?

if (!empty($hack))

{

$hack = array_reverse($hack);

foreach ($hack as $k=>$v)

{

echo '<tr>';

foreach ($v as $key=>$val)

{

if ($key == 1) { $val = date('d.m.Y H:i:s',(int)$val); }

if ($key == 2) { $val = urldecode($val); $val = nl2br(wordwrap($val, 40, "\n", 1));}

echo "<td>$val</td>";

}

echo '</tr>';

}

}

else

{

echo '<tr><td colspan="4">Не обнаружены</td>';

}

?>

</table>

</div>

<div id="bottom"></div>

</div>

<?

include '../foot.php';

?>

 

Нажав «Справка», пользователь может прочесть справку по использованию системы,

а по нажатию «О сайте» можно увидеть следующую страницу, изображенную на рисунке 22.

 

Рисунок 21 По нажатию «О сайте» можно увидеть следующую страницу

 

Date: 2015-09-02; view: 365; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.011 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию