LoveRead.info » Книги » Разная литература » PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько

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

Книгу PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько читаем онлайн бесплатно полную версию! Чтобы начать читать не надо регистрации. Напомним, что читать онлайн вы можете не только на компьютере, но и на андроид (Android), iPhone и iPad. Приятного чтения!

67 0 11:01, 24-03-2023

Книга PHP. Разработка модуля комментариев для сайта - Дмитрий Приходько читать онлайн бесплатно без регистрации

В книге рассмотрен вариант разработки модуля комментариев для сайта на чистом языке php в процедурном стиле.

    1 2 3 ... 23
    Перейти на страницу:
    src="images/_6.jpg"/>

    Рис. 7 Содержание тестового сайта news.

    Рис. 8. Содержание папки chat сайта news.

    Комментарии без смайлов, как-то не интересно. Поэтому добавим праздника. Смайлов. Для этого в папке «say» создаем подпапку «smiles» в которую загружаем набор смайлов. В этом модуле загружен набор «Колобки» в формате GIF. Вы можете загрузить любые другие смайлы. Папка «smiles» будет проверяться на наличие изображений при первом запуске модуля и в случае если в ней будут обнаружены изображения, то они автоматически будут обработаны в качестве смайлов.

    Рис. 9. Содержимое папки smiles.

    На рисунке 7 представлена структура тестового сайта на данном этапе.

    Рис. 10. Содержание тестового сайта news.

    Таким образом, у нас получился рабочий тестовый сайт с размещенным на нем модулем комментариев с набором смайлов.

    База данных

    Теперь необходимо определиться для чего нам нужна база данных (далее БД), с ее системой управления и с тем, что в ней будет храниться. Я выбрал систему управления БД MySQl. Во-первых потому что ранее уже приходилось с ней работать, во-вторых, это самая распространенная на сегодня БД и на нее есть огромное количество справочной информации. Итак: MySQl – система управления реляционными, т.е. представленными в виде таблиц, базами данных (далее СУБД). Что в ней хранить?

    В контексте задачи храниться будут:

    Комментарии.

    Ответы на комментарии.

    Данные пользователей.

    Данные о странице на которой размещаются комментарии.

    Смайлы (без смайлов я комментарии не представляю).

    При создании таблиц используем правило: каждый объект должен располагаться в отдельной таблице.

    Объекты будут следующие: комментарии, ответы на комментарии, пользователи, права пользователей, смайлы. Еще одна таблица будет связывать права пользователя с данными в других таблицах.

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

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

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

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

    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 int(11)

    )";

    //роль автора определение

    $sql_role = "CREATE TABLE IF NOT EXISTS role (

    id VARCHAR(255) NOT NULL PRIMARY KEY,

    description VARCHAR(255)

    )

    DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

    //роль автора id

    $sql_authorrole = "CREATE TABLE IF NOT EXISTS authorrole (

    authorid INT NOT NULL,

    roleid VARCHAR(255) NOT NULL,

    PRIMARY KEY (authorid, roleid)

    )

    DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

    $sql_roledesc = "REPLACE INTO role (id, description) VALUES

    ('user', 'Контроль своих комментариев'),

    ('admin', 'Full control'),

    ('Site Administrator', 'Контроль комментариев')";

    $sql_userole = "REPLACE INTO authorrole (authorid, roleid) VALUES

    (1, 'admin')";

    /* Для комментариев */

    $sql_say = "CREATE TABLE IF NOT EXISTS say (

    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

    saytext TEXT,

    userid int(11),

    saydate int(11)

    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

    /* Для ответов на комментарии */

    $sql_reply = "CREATE TABLE IF NOT EXISTS reply (

    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

    replytext TEXT,

    userid int(11),

    replyid int(11),

    replydate int(11)

    ) DEFAULT CHARACTER SET utf8 ENGINE=InnoDB";

    /* 4. Создаем таблицы */

    $dsn->exec($sql_users);

    $dsn->exec($sql_authorrole);

    $dsn->exec($sql_role);

    $dsn->exec($sql_roledesc);

    $dsn->exec($sql_userole);

    $dsn->exec($sql_say);

    $dsn->exec($sql_page);

    $dsn->exec($sql_reply);

    } catch (PDOException $e) {

    echo $e->getMessage();

    }

    /* 5. Смайлы */

    try {

    $sql_smile = "CREATE TABLE IF NOT EXISTS smiles (

    id INT(11) AUTO_INCREMENT PRIMARY KEY NOT NULL,

    smile text,

    path text)";

    $dsn->exec($sql_smile);

    } catch (PDOException $e) {

    echo $e->getMessage();

    echo $e->getLine();

    exit();

    }

    $dir = $_SERVER['DOCUMENT_ROOT'].'/chat/say/smiles/';//строим путь к папке smiles

    $files1 = preg_grep('~.(jpeg|jpg|png|gif)$~', scandir($dir));//делаем массив из картинок в папке smiles

    try {

    $sql = 'INSERT INTO smiles SET

    smile = :smile,

    path = :path';

    $s = $dsn->prepare($sql);

    foreach ($files1 as $val) {

    $smile = pathinfo($val, PATHINFO_FILENAME); //получаем путь

    1 2 3 ... 23
    Перейти на страницу:
    1. Жалоба
    Отзывы - 0

    Прочитали книгу? Предлагаем вам поделится своим отзывом от прочитанного(прослушанного)! Ваш отзыв будет полезен читателям, которые еще только собираются познакомиться с произведением.


    Уважаемые читатели, слушатели и просто посетители нашей библиотеки! Просим Вас придерживаться определенных правил при комментировании литературных произведений.

    • 1. Просьба отказаться от дискриминационных высказываний. Мы защищаем право наших читателей свободно выражать свою точку зрения. Вместе с тем мы не терпим агрессии. На сайте запрещено оставлять комментарий, который содержит унизительные высказывания или призывы к насилию по отношению к отдельным лицам или группам людей на основании их расы, этнического происхождения, вероисповедания, недееспособности, пола, возраста, статуса ветерана, касты или сексуальной ориентации.
    • 2. Просьба отказаться от оскорблений, угроз и запугиваний.
    • 3. Просьба отказаться от нецензурной лексики.
    • 4. Просьба вести себя максимально корректно как по отношению к авторам, так и по отношению к другим читателям и их комментариям.

    Надеемся на Ваше понимание и благоразумие. С уважением, администратор LoveRead.info.


    Установить VPN и читай слушай бесплатно

    Новые отзывы

    1. Лариса Лариса04 июнь 12:43 Да, просто до слез похоже на сериал ,,Даррел,,... Смерть в райском уголке - Эмили Салливан
    2. Stmara Stmara02 июнь 22:44 Приятная история, чтобы скоротать вечер. Любимая книга из последних "Любовь со смертью", также очень понравилась -"Суженная... Сердце космического дракона - Ольга Вадимовна Гусейнова
    3. Alex Alex01 июнь 17:12 💩💩💩🖕🖕🖕🖕🖕🖕🖕... Игровой момент II - Александр Андреевич Бодров
    Все комметарии
    Новинки бесплатной онлайн библиотеки