7.10.2011 / 11:49 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| вот как и обещал готовая гостевуха <?php
session_start();
error_reporting(E_ALL & ~E_NOTICE);
$charset = 'utf-8';
mb_internal_encoding($charset);
header('Content-Type: text/html; charset=' . $charset . '');
// include шапка
echo '<style>.div1 {background-color : #005555;} .div2 {background-color : #228822;}</style>';
$pg = $_SERVER['PHP_SELF'];
$file = 'data.dat';
if (!file_exists($file)) {
file_put_contents($file, NULL);
}
$fgb = file_get_contents($file);
$arr = explode('||', $fgb);
$admin = TRUE; // админ проверка
// вывод собщений
echo isset($_SESSION['ok']) ? $_SESSION['ok'] : '';
unset($_SESSION['ok']);
// главная
$p = empty($_GET['p']) || $_GET['p']<1 ? '1' : intval($_GET['p']);
if (isset($p) && !isset($_GET['add']) && !isset($_GET['mod']) && !isset($_GET['del_one'])) {
if (!empty($_POST['checked']) && @$_POST['del'] && $admin == TRUE) {
$fgb = file_get_contents($file);
$arr = explode('||', $fgb);
foreach ($_POST['checked'] as $value) {
unset($arr[$value]);
}
$contents = implode('||', $arr);
file_put_contents($file, $contents);
$_SESSION['ok'] = '<p>Выбранные записи были удалены<p>';
header("Location: " . $pg);
}
echo '<p><a href="' . $pg . '?add">Написать</a></p>';
if ($admin==TRUE) {
echo '<form action="' . $pg . '?p=' . $p . '" method="post">';
$checkall = !empty($_POST['checkall']) ? 'checked="yes"' : ''; // yes==checked
}
$kol = sizeof($arr);
if ($kol>0 && !empty($fgb)) {
$n=10;
$str = ceil($kol/$n);
if ($p>$str) {
$p=$str;
}
if ($p==1) {
$start=0;
} else {
$start=($p-1)*$n;
}
if ($p==$str) {
$end=$kol;
} else {
$end=($nn+$n);
}
for ($i=$start;$i<$end;$i++) {
$link = explode("~~", $arr[$i]);
echo $i%2 ? '<div class="div1">' : '<div class="div2">';
echo '<b>' . $link[0] . '</b><br/><i>' . $link[1] . '</i>' . PHP_EOL;
if ($admin==TRUE) {
echo '<br/><a href="' . $pg . '?mod&id=' . $i . '">Изм.</a> | <a href="' . $pg . '?del_one&id=' . $i . '">Удл.</a> <input type="checkbox" name="checked[]"' . $checkall . ' value="' . $i . '" /></div>' . PHP_EOL;
} else {
echo '</div>';
}
}
} else {
echo 'Пока пусто<hr/>';
}
if ($admin==TRUE && sizeof($arr)>1) {
echo '<br/><input type="submit" name="checkall" value="Выделить все" /> <input type="submit" name="del" value="Удалить" /></form>';
}
if ($str>1) {
echo '<hr/>';
if ($p==1) {
$left = 'пред';
} else {
$left = '<a href="' . $pg . '?p=' . ($p-1) . '"><пред</a>';
}
if ($p==$str) {
$right = 'след';
} else {
$right = '<a href="' . $pg . '?p=' . ($p+1) . '">след></a>';
}
echo $left . ' | ' . $right . '<br/>';
echo '<hr/><b>Страница ' . $p . ' из ' . $str . '</b><hr/>';
}
}
// Добавить
if (isset($_GET['add'])) {
if (isset($_GET['add']) && isset($_GET['ok'])) {
$name = trim(htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'));
if (empty($name)) {
$name = 'Guest';
}
$post = trim(htmlspecialchars($_POST['post'], ENT_QUOTES, 'UTF-8'));
if (mb_strlen($post)<5 || mb_strlen($post)>1000) {
$_SESSION['ok'] = '<p>Сообщение должно быть не более 500 знаков<p>';
header('Location: ' . $pg . '?add');
exit;
}
if (empty($fgb)) {
$sep = '';
} else {
$sep = '||';
}
$content = $name . '~~' . $post . $sep . $fgb;
file_put_contents($file, $content);
$_SESSION['ok'] = '<p>Сообщение успешно добавлено<p>';
header("Location: " . $pg);
exit;
}
echo '<p><h3>Написать</h3><form action="' . $pg . '?add&ok" method="post">Имя<br/><input type="text" value="" size="25" maxlength="30" name="name" /><br/>Сообщение<br/><textarea name="post" rows="5" cols="40"></textarea><br/><input type="submit" name="submit" value="Написать"/></form></p>';
echo '<p><a href="' . $pg . '">Назад</a></p>';
}
// Редактировать
if (isset($_GET['mod']) && $admin==TRUE) {
$id = intval($_GET['id']);
if (isset($_GET['mod']) && isset($_GET['ok'])) {
#unset($arr[$id]);
$name = trim(htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'));
$post = trim(htmlspecialchars($_POST['post'], ENT_QUOTES, 'UTF-8'));
$arr[$id] = $name . '~~' . $post;
$contents = implode('||', $arr);
file_put_contents($file, trim($contents));
$_SESSION['ok'] = '<p>Пост был изменен<p>';
header("Location: " . $pg);
}
$link = explode("~~", $arr[$id]);
$name = $link[0];
$post = $link[1];
echo '<p><p>Изменить пост</p><form action="' . $pg . '?mod&ok&id=' . $id . '" method="post"><p>Имя</p><input type="text" value="' . $name . '" size="25" maxlength="30" name="name" /><br/><p>Сообщение</p><textarea name="post" rows="5" cols="40">' . $post . '</textarea><br/><input type="submit" name="submit" value="Изменить"/></form></p>';
echo '<p><a href="' . $pg . '">Назад</a></p>';
}
// удалить одну
if (isset($_GET['del_one']) && $admin==TRUE) {
$id = intval($_GET['id']);
if (isset($_GET['del_one']) && isset($_GET['yes'])) {
unset($arr[$id]);
$contents = implode('||', $arr);
file_put_contents($file, $contents);
$_SESSION['ok'] = '<p>Запись успешно удалена<p>';
header("Location: " . $pg);
}
echo '<p>Вы действительно хотите удалить данный пост?</p>';
echo '<p><a href="' . $pg . '?del_one&yes&id=' . $id . '">Да</a> | <a href="' . $pg . '">Нет</a></p>';
}
/*
echo '<pre>';
print_r($arr);
echo '</pre>';
*/
// include ноги
?>
__________________
Магистр Мёда Изменено Koenig (7.10 / 11:49) (всего 1 раз) |
7.10.2011 / 11:50 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| сам фаил не прекрепился
__________________
Магистр Мёда
Прикрепленные файлы: fgb.php (5.35 кб.) Скачано 159 раз |
7.10.2011 / 12:03 | |
Erik53OO@ Пользователь Сейчас: Offline
Имя: Erik Регистрация: 09.08.2011
| Koenig, Щас проверим. Я бы такое месяц писал бы)
|
7.10.2011 / 12:07 | |
Erik53OO@ Пользователь Сейчас: Offline
Имя: Erik Регистрация: 09.08.2011
| Koenig, Робит) спасибо http://maxstar.wup.ru/sait/guest.php сам писал? И ах,да, там админка для всех? Или по каким параметрам админа определяет |
7.10.2011 / 12:16 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| Erik53OO@, писал сам, в строке $admin = TRUE; // админ проверка
меняем на или $admin = $_GET['pass']=='testpass' ? TRUE : FALSE;
и в строку в гостевой добавляем ?pass=testpass тогда права админа, ну там любую проверку сделать можно чтоб вернуло положительный результат, проверка на переменную сессии например __________________
Магистр Мёда Изменено Koenig (7.10 / 12:18) (всего 2 раза) |
7.10.2011 / 12:20 | |
Erik53OO@ Пользователь Сейчас: Offline
Имя: Erik Регистрация: 09.08.2011
| Можно тупо вынести это в отдельный файл через пост метод, и сделать там админку)?
|
7.10.2011 / 12:22 | |
Лека Пользователь Сейчас: Offline
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| Erik53OO@, Создай для юзеров групу и дальше все просто. Если группа больше к примеру четырех значит админ истина,иначе ложь.
|
7.10.2011 / 12:28 | |
Лека Пользователь Сейчас: Offline
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| Эрик,вот фрагмент с моего кода if($userinfo['group']<'5') {
echo err('Вы зашли на защищеную страницу.<br/>Админка доступна только админ-составу'); break;
}else{
echo '<div class="text">';
echo'<ul class="us_adm"><li><a href="/admin/stat.php">Статистика посещений</a>...;
#ссылки админ меню
я испытывала не однакратно,чужих не пропускает. Изменено Лека (7.10 / 12:28) (всего 1 раз) |
7.10.2011 / 12:32 | |
Лека Пользователь Сейчас: Offline
Имя: Лена Откуда: Скрытенбург Регистрация: 08.08.2011
| Erik53OO@, у тебя еще проще. У тя дцмс,там группы уже есть. Просто заточи книгу под двиг. |
7.10.2011 / 12:33 | |
Koenig Модератор форума Сейчас: Offline
Имя: Дмитрий Откуда: Калининград(Koenigsberg) Регистрация: 23.01.2011
| Лека, я когда у меня реги на сайте не было сделал себе типо доступ админа по паролю <?php
session_start();
$pass = 'тут пароль';
if (@$_POST['pass'] == $pass) {
$_SESSION['pass'] = 1;
} else {
$_SESSION['pass'] = 0;
}
if (@$_SESSION['pass']==1) {
header("Location: /");
exit;
}
echo '<form action="" method="post">Введите пароль Администратора<br/><input type="password" name="pass" /><br/><input type="submit" name="post" value="ok" /></form>';
?>
так как сессии в гостевой открыты, и так же их надо открыть по всему сайту прописав в шапке то получаем админа в сессии ну и проверка $admin = $_SESSION['pass']==1 ? TRUE : FALSE;
__________________
Магистр Мёда Изменено Koenig (7.10 / 12:38) (всего 1 раз) |