Jump to content

Featured Replies

Posted
comment_104936

Всем привет. Решил сделать на своем форуме анонимный раздел, аналог "Подслушано".

Суть его проста: Пользователь пишет сообщение, а оно публикуется анонимно.
Но проблема в том, что форум не умеет делать анонимные сообщения. Можно, допустим написать от Гостя, но если гостям у вас на форуме запрещено писать?

Возможно как-то можно разрешить гостям создавать темы только в определенном разделе, но я не нашел. Я придумал свой способ.

Создаем нужный раздел, и ставим, в его настройках, модерацию новых тем, во вкладке "Публикация"
Сообщения должны быть утверждены -> Новые темы

Затем, создаем нового пользователя, называем его что-то вроде Аноним, или как пожелаете. Запоминаем его id.
Ну, а дальше самое интересное. В папке с корнем форума создаем файлик, например anonim.php, и вставляем туда вот это

Спойлер

<!DOCTYPE html>
<html>
<head>
  <style>
  table {
    border: 1px solid #ccc;
    /* border="0" */
    border-radius: 5px;
  }
  table td {
    padding: 2px;
    /* cellpadding="0" */
  }
  tr:nth-child(2n-1) {
    background: #f8f8f8;
    /* Цвет фона */
  }
  body {
    font-family: Tahoma, Arial;
    font-size: 13px;
  }
  </style>
</head>
<body>
  <?php
$topic_id_anon = $_POST['topic_anon'];	
$pass = $_POST['password'];
if (!isset($message)) {
$message = "<span style=\"color: red\">Введите правильные параметры!</span>";
}

if (isset($_POST['new_user'])){
$new_user = $_POST['new_user'];
}
else
{
  $new_user = "1"; //id пользователя, который будет новым автором темы, если не введен вручную
}
mysql_connect("localhost", "username", "password");		//Параметры подключения к вашей БД (можно посмотреть в файле conf_global.php)
mysql_select_db("db_name");
mysql_query  ("set_client='utf8'");
mysql_query  ("set character_set_results='utf8'");
mysql_query  ("set collation_connection='utf8_general_ci'");
mysql_query  ("SET NAMES utf8");

if ((isset($pass)) AND ($pass == "6280"))                                                             //Ваш пароль
 {
if ((isset($new_user)) AND ($new_user != "") AND (isset($topic_id_anon)) AND ($topic_id_anon != "") AND (isset($pass)) AND ($pass != ""))
  {
    $sql = "UPDATE `forums_topics` SET `starter_id` = $new_user WHERE `tid` = $topic_id_anon";        //Меняем автора темы
    $result = mysql_query($sql) or die(mysql_error());

    $sql2 = "UPDATE `forums_topics` SET `last_poster_id` = $new_user WHERE `tid` = $topic_id_anon";   //Меняем последнего автора сообщения
    $result2 = mysql_query($sql2) or die(mysql_error());

    $sql3 = "UPDATE `forums_posts` SET `author_id` = $new_user WHERE `topic_id` = $topic_id_anon";    //Меняем автора темы в списке тем
    $result3 = mysql_query($sql3) or die(mysql_error());
    $message = "<span style=\"color: green\">Выполнено. Не забудьте утвердить тему.</span>";
  } 
 }
else
{
  if ((isset($pass)) AND ($pass != "6280")) {    //Сюда вписываем свой пароль
$message =  "<span style=\"color: red\">Неверный пароль!</span>";
}
else
{
 $message = "<span style=\"color: #777\">Введите параметры:</span>";
}
}
?>
    <form method="post" action="db_vk.php">
      <table align="center" width="300px">
        <br>
        <tr>
          <td colspan="2" align="center">
            <?php echo $message; ?>
          </td>
        </tr>
        <tr>
          <td width="300px">
            ID нового автора темы
          </td>
          <td>
            <input type="text" name="new_user" size="3" style="width: 50px; text-align: center;"placeholder="id user" title="id нового автора темы" value="<?php echo "$new_user " ?>">
          </td>
          <br>
        </tr>
        <tr>
          <td>
            ID темы, которую нужно изменить
          </td>
          <td>
            <input type="text" name="topic_anon" size="3" style="width: 50px; text-align: center;" placeholder="id темы" title="id темы">
          </td>
        </tr>
        <tr>
          <td>
            Ваш секретный пароль
          </td>
          <td>
            <input type="text" name="password" size="3" style="width: 50px; text-align: center;" placeholder="пароль" title="Секретный пароль">
          </td>
        </tr>
        <tr>
          <td colspan="2" align="center">
            <input type="submit" style="width: 100px;" value="OK" />
          </td>
        </tr>
      </table>
    </form>
</body>
</html>

 

Обязательно немного настраиваем наш файлик. Нужно указать параметры подключения к базе данных, а также свой пароль.

Теперь при открытии страницы http://ваш_форум.ru/anonim.php

Вы увидите примерно следующую картину:

info.png

Алгоритм примерно такой:

  • Пользователь создает тему в нашем разделе.
  • Мы с помощью нашего файлика меняем автора новой темы на своего анонима.
  • Утверждаем тему.

Дальше думаю разбересь.

Будут вопросы, пишите.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.


Guest
Ответить в этой теме...

Последние посетители 0

  • No registered users viewing this page.