PHP. Разработка модуля комментариев для сайта. Дмитрий Приходько. Читать онлайн. Newlib. NEWLIB.NET

Автор: Дмитрий Приходько
Издательство: Автор
Серия:
Жанр произведения: Компьютеры: прочее
Год издания: 2021
isbn:
Скачать книгу
– идентификатор пользователя;

      page_id – идентификатор страницы;

      saydate – дата добавления комментария;

      Для ответов на комментарии создаем таблицу «reply». Таблица будет содержать следующую информацию.

      id – уникальный номер ответа на комментарий;

      replytext – текст комментария;

      userid – идентификатор пользователя;

      replyid – идентификатор комментария;

      saydate – дата добавления комментария;

      Мне кажется в этих двух таблицах все понятно, вопросов быть не должно.

      Для администрирования создаем три таблицы: «users», «authorrole», «role».

      Таблица «users», будет содержать следующие данные:

      id – уникальный номер пользователя;

      login – логин пользователя;

      password – пароль пользователя;

      email – адрес электронной почты пользователя;

      img – адрес расположения аватара пользователя;

      activation – проверка активации пользователя;

      date – дата регистрации пользователя.

      Для идентификации автора комментария, поле «id» таблицы «users» будет в запросах к бд связываться с полем «userid» таблиц «say» и «reply»

      Таблица «role» будет содержать следующие данные:

      id – роль (права) пользователя;

      description – описание прав пользователя;

      Таблица «authorrole» – промежуточная и будет содержать следующие данные:

      authorid – id пользователя;

      roleid – роль (права) пользователя;

      Таблица «authorrole» связывает пользователей «users» и их права «role»

      Для смайлов создаем таблицу «smiles». Таблица будет содержать следующие данные:

      id – id смайла;

      smile – условное обозначение смайла;

      path – путь к смайлу.

      Пишем файл, создающий базу данных и необходимые таблицы. Назовем этот файл «createbase.php» и разместим в папке «admin». Сохраняем в формате php.

      Листинг 4. createbase.php Путь: news/admin/createbase.php

      <?php

      error_reporting(E_ALL);//включаем вывод ошибок

      /* 1. Создаем переменные подключения */

      $host = "localhost"; /* Имя хоста */

      $root = "root"; /* Имя пользователя БД */

      $root_password = ""; /* Пароль к БД */

      $db = "beseder"; /* название БД */

      /* 2. Создаем базу данных */

      try {

      $dsn = new PDO("mysql:host=$host", $root, $root_password);

      $dsn->exec("CREATE DATABASE IF NOT EXISTS `$db` CHARACTER SET utf8 COLLATE utf8_general_ci;");

      echo 'База создана (OK!)<br>' . ' Имя БД: ' . '<b>' . $db . '</b>' . '<br> Пользователь: ' . '<b>' . $root . '</b>';

      } catch (PDOException $e) {

      echo $e->getMessage();

      echo $e->getLine();

      exit('Ошибка при создании базы');

      }

      $dsn = null;//обнуляем подключение

      /* 3. Формируем запросы для создания таблиц */

      try {

      $dsn=newPDO("mysql:host=$host;dbname=$db",$root,root_password);//подключаемся к созданной БД

      $dsn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

      /* Нумерация страниц */

      $sql_page = "CREATE TABLE IF NOT EXISTS page (

      id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,

      sayid int(11),

      userid int(11),

      pageid text

      )";

      //пользователи

      $sql_users = "CREATE TABLE IF NOT EXISTS users (

      id int(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,

      login VARCHAR(15) NOT NULL,

      password VARCHAR(256) NOT NULL,

      youtext text NOT NULL,

      email text NOT NULL,

      img text NOT NULL,

      activation int(11),

      date