Вниз  PHP и мелкие вопросы
- 7.10.2011 / 11:49
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
вот как и обещал готовая гостевуха
  1. <?php
  2. session_start();
  3. error_reporting(E_ALL & ~E_NOTICE);
  4. $charset = 'utf-8';
  5. mb_internal_encoding($charset);
  6. header('Content-Type: text/html; charset=' . $charset . '');
  7.  
  8. // include шапка
  9.  
  10. echo '<style>.div1 {background-color : #005555;} .div2 {background-color : #228822;}</style>';
  11.  
  12. $pg = $_SERVER['PHP_SELF'];
  13. $file = 'data.dat';
  14. if (!file_exists($file)) {
  15. file_put_contents($file, NULL);
  16. }
  17.  
  18. $fgb = file_get_contents($file);
  19. $arr = explode('||', $fgb);
  20.  
  21. $admin = TRUE; // админ проверка
  22. // вывод собщений
  23. echo isset($_SESSION['ok']) ? $_SESSION['ok'] : '';
  24. unset($_SESSION['ok']);
  25. // главная
  26. $p = empty($_GET['p']) || $_GET['p']<1 ? '1' : intval($_GET['p']);
  27. if (isset($p) && !isset($_GET['add']) && !isset($_GET['mod']) && !isset($_GET['del_one'])) {
  28. if (!empty($_POST['checked']) && @$_POST['del'] && $admin == TRUE) {
  29.  
  30. $fgb = file_get_contents($file);
  31. $arr = explode('||', $fgb);
  32.  
  33. foreach ($_POST['checked'] as $value) {
  34. unset($arr[$value]);
  35. }
  36. $contents = implode('||', $arr);
  37. file_put_contents($file, $contents);
  38. $_SESSION['ok'] = '<p>Выбранные записи были удалены<p>';
  39. header("Location: " . $pg);
  40. }
  41.  
  42. echo '<p><a href="' . $pg . '?add">Написать</a></p>';
  43.  
  44. if ($admin==TRUE) {
  45. echo '<form action="' . $pg . '?p=' . $p . '" method="post">';
  46. $checkall = !empty($_POST['checkall']) ? 'checked="yes"' : ''; // yes==checked
  47. }
  48.  
  49. $kol = sizeof($arr);
  50.  
  51. if ($kol>0 && !empty($fgb)) {
  52. $n=10;
  53. $str = ceil($kol/$n);
  54. if ($p>$str) {
  55. $p=$str;
  56. }  
  57. if ($p==1) {
  58. $start=0;
  59. } else {
  60. $start=($p-1)*$n;
  61. }
  62. if ($p==$str) {
  63. $end=$kol;
  64. } else {
  65. $end=($nn+$n);    
  66. }
  67.  
  68. for ($i=$start;$i<$end;$i++) {
  69. $link = explode("~~", $arr[$i]);
  70. echo $i%2 ? '<div class="div1">' : '<div class="div2">';
  71. echo '<b>' . $link[0] . '</b><br/><i>' . $link[1] . '</i>' . PHP_EOL;
  72. if ($admin==TRUE) {
  73. echo '<br/><a href="' . $pg . '?mod&amp;id=' . $i . '">Изм.</a> | <a href="' . $pg . '?del_one&amp;id=' . $i . '">Удл.</a> <input type="checkbox" name="checked[]"' .  $checkall . ' value="' . $i . '" /></div>' . PHP_EOL;
  74. } else {
  75. echo '</div>';
  76. }
  77. }
  78. } else {
  79. echo 'Пока пусто<hr/>';
  80. }
  81.  
  82. if ($admin==TRUE && sizeof($arr)>1) {
  83. echo '<br/><input type="submit" name="checkall" value="Выделить все" />  <input type="submit" name="del" value="Удалить" /></form>';
  84. }
  85.  
  86. if ($str>1) {
  87. echo '<hr/>';
  88. if ($p==1) {
  89. $left = 'пред';
  90. } else {
  91. $left = '<a href="' . $pg . '?p=' . ($p-1) . '">&lt;пред</a>';
  92. }
  93. if ($p==$str) {
  94. $right = 'след';
  95. } else {
  96. $right = '<a href="' . $pg . '?p=' . ($p+1) . '">след&gt;</a>';
  97. }
  98. echo $left . ' | ' . $right . '<br/>';
  99. echo '<hr/><b>Страница ' . $p . ' из ' . $str . '</b><hr/>';  
  100. }
  101.  
  102. }
  103. // Добавить
  104.  
  105. if (isset($_GET['add'])) {
  106. if (isset($_GET['add']) && isset($_GET['ok'])) {
  107. $name = trim(htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'));
  108. if (empty($name)) {
  109. $name = 'Guest';    
  110. }
  111. $post = trim(htmlspecialchars($_POST['post'], ENT_QUOTES, 'UTF-8'));
  112. if (mb_strlen($post)<5 || mb_strlen($post)>1000) {
  113. $_SESSION['ok'] = '<p>Сообщение должно быть не более 500 знаков<p>';
  114. header('Location: ' . $pg . '?add');
  115. exit;    
  116. }
  117. if (empty($fgb)) {
  118. $sep = '';    
  119. } else {
  120. $sep = '||';    
  121. }
  122. $content = $name . '~~' . $post . $sep . $fgb;
  123. file_put_contents($file, $content);
  124. $_SESSION['ok'] = '<p>Сообщение успешно добавлено<p>';
  125. header("Location: " . $pg);
  126. exit;
  127. }
  128. echo '<p><h3>Написать</h3><form action="' . $pg . '?add&amp;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>';
  129. echo '<p><a href="' . $pg . '">Назад</a></p>';    
  130. }
  131. // Редактировать
  132. if (isset($_GET['mod']) && $admin==TRUE) {
  133. $id = intval($_GET['id']);
  134. if (isset($_GET['mod']) && isset($_GET['ok'])) {
  135. #unset($arr[$id]);
  136. $name = trim(htmlspecialchars($_POST['name'], ENT_QUOTES, 'UTF-8'));
  137. $post = trim(htmlspecialchars($_POST['post'], ENT_QUOTES, 'UTF-8'));
  138. $arr[$id] = $name . '~~' . $post;
  139. $contents = implode('||', $arr);
  140. file_put_contents($file, trim($contents));
  141. $_SESSION['ok'] = '<p>Пост был изменен<p>';
  142. header("Location: " . $pg);
  143. }
  144. $link = explode("~~", $arr[$id]);
  145. $name = $link[0];
  146. $post = $link[1];
  147.  
  148. echo '<p><p>Изменить пост</p><form action="' . $pg . '?mod&amp;ok&amp;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>';
  149. echo '<p><a href="' . $pg . '">Назад</a></p>';  
  150. }
  151. // удалить одну
  152. if (isset($_GET['del_one']) && $admin==TRUE) {
  153. $id = intval($_GET['id']);
  154. if (isset($_GET['del_one']) && isset($_GET['yes'])) {
  155. unset($arr[$id]);
  156. $contents = implode('||', $arr);
  157. file_put_contents($file, $contents);
  158. $_SESSION['ok'] = '<p>Запись успешно удалена<p>';
  159. header("Location: " . $pg);
  160. }
  161. echo '<p>Вы действительно хотите удалить данный пост?</p>';
  162. echo '<p><a href="' . $pg . '?del_one&amp;yes&amp;id=' . $id . '">Да</a> | <a href="' . $pg . '">Нет</a></p>';
  163. }
  164. /*
  165. echo '<pre>';
  166. print_r($arr);
  167. echo '</pre>';
  168. */
  169.  
  170. // include ноги
  171. ?>

__________________
 Магистр Мёда

Изменено Koenig (7.10 / 11:49) (всего 1 раз)
- 7.10.2011 / 11:50
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
сам фаил не прекрепился
__________________
 Магистр Мёда


Прикрепленные файлы:
fgb.php (5.35 кб.) Скачано 158 раз
- 7.10.2011 / 12:03
Erik53OO@
  Пользователь

Erik53OO@ 
Сейчас: Offline
Koenig, Щас проверим. Я бы такое месяц писал бы)
- 7.10.2011 / 12:07
Erik53OO@
  Пользователь

Erik53OO@ 
Сейчас: Offline
Koenig, Робит) спасибо http://maxstar.wup.ru/sait/guest.php сам писал? И ах,да, там админка для всех? Или по каким параметрам админа определяет
- 7.10.2011 / 12:16
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
Erik53OO@, писал сам,
в строке
  1. $admin = TRUE; // админ проверка
меняем на
  1. $admin = FALSE;
или
  1. $admin = $_GET['pass']=='testpass' ? TRUE : FALSE;
и в строку в гостевой добавляем
?pass=testpass
тогда права админа, ну там любую проверку сделать можно чтоб вернуло положительный результат, проверка на переменную сессии например
__________________
 Магистр Мёда

Изменено Koenig (7.10 / 12:18) (всего 2 раза)
- 7.10.2011 / 12:20
Erik53OO@
  Пользователь

Erik53OO@ 
Сейчас: Offline
Можно тупо вынести это в отдельный файл через пост метод, и сделать там админку)?
- 7.10.2011 / 12:22
Лека
  Пользователь

Лека 
Сейчас: Offline
Erik53OO@, Создай для юзеров групу и дальше все просто. Если группа больше к примеру четырех значит админ истина,иначе ложь.
- 7.10.2011 / 12:28
Лека
  Пользователь

Лека 
Сейчас: Offline
Эрик,вот фрагмент с моего кода
  1. if($userinfo['group']<'5') {
  2. echo err('Вы зашли на защищеную страницу.<br/>Админка доступна только админ-составу'); break;
  3. }else{
  4. echo '<div class="text">';
  5. echo'<ul class="us_adm"><li><a href="/admin/stat.php">Статистика посещений</a>...;
  6. #ссылки админ меню
я испытывала не однакратно,чужих не пропускает.

Изменено Лека (7.10 / 12:28) (всего 1 раз)
- 7.10.2011 / 12:32
Лека
  Пользователь

Лека 
Сейчас: Offline
Erik53OO@, у тебя еще проще. У тя дцмс,там группы уже есть. Просто заточи книгу под двиг. :-D
- 7.10.2011 / 12:33
Koenig
  Модератор форума

Koenig 
Сейчас: Offline
Лека, я когда у меня реги на сайте не было сделал себе типо доступ админа по паролю
  1. <?php
  2. session_start();
  3. $pass = 'тут пароль';
  4. if (@$_POST['pass'] == $pass) {
  5. $_SESSION['pass'] = 1;
  6. } else {
  7. $_SESSION['pass'] = 0;
  8. }
  9. if (@$_SESSION['pass']==1) {
  10. header("Location: /");
  11. exit;
  12. }
  13. echo '<form action="" method="post">Введите пароль Администратора<br/><input type="password" name="pass" /><br/><input type="submit" name="post" value="ok" /></form>';
  14. ?>
так как сессии в гостевой открыты, и так же их надо открыть по всему сайту прописав в шапке
  1. session_start();
то получаем админа в сессии
ну и проверка
  1. $admin = $_SESSION['pass']==1 ? TRUE : FALSE;

__________________
 Магистр Мёда

Изменено Koenig (7.10 / 12:38) (всего 1 раз)
Наверх  Всего сообщений: 4740
Фильтровать сообщения
Поиск по теме
Файлы топика (129)