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

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

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

67 0 11:01, 24-03-2023

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

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

    1 ... 9 10 11 12 13 14 15 16 17 ... 23
    Перейти на страницу:
    $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';

    try {

    $sql = 'DELETE FROM authorrole WHERE authorid = :id';

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

    $s->bindValue(':id', $_POST['id']);

    $s->execute();

    } catch (pdoException $e) {

    $error = 'Ошибка удаления роли пользователя.';

    include $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/error.html.php';

    exit();

    }

    // Удаляем пользователя

    try {

    $sql = 'DELETE FROM users WHERE id = :id';

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

    $s->bindValue(':id', $_POST['id']);

    $s->execute();

    } catch (pdoException $e) {

    $error = 'Ошибка удаления пользователя индекс.';

    $e->getMessage();

    $e->getLine();

    include $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/error.html.php';

    exit();

    }

    header('Location: .');

    exit();

    }

    /*…Первичный запрос на удаление. Выводит форму выбора ДА или НЕТ. Удаление 1…*/

    if (isset($_POST['action']) and $_POST['action'] == 'Удалить') {

    include $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/delete.php';

    exit();

    }

    //Готовим лист с данными пользователей

    include $_SERVER['DOCUMENT_ROOT'] . '/chat/dsn.php';

    try {

    $result = $dsn->query('SELECT users.id,users.login, users.img, authorrole.roleid FROM `users` INNER JOIN authorrole ON users.id =authorrole.authorid');

    } catch (pdoException $e) {

    $error = 'Ошибка при получении пользователей из базы данных!';

    include $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/error.html.php';

    exit();

    }

    foreach ($result as $row) {

    $authors[] = array('id' => $row['id'], 'login' => $row['login'], 'roleid' => $row['roleid'], 'img' => $row['img']);

    }

    include $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/authors.html.php'; //вставляем листинг авторов

    }

    //Закончили основной цикл для администратора

    /*............. END admin.........................*/

    /*............ Start user........................ */

    //Работа с простым пользователем

    if (userHasRole('user')) {

    include_once $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/users/edituser.php';

    }

    //Закончили работу простым пользователем

    /*.............. END user........................ */

    /* Удаляем неактивных пользователей.

    Удаление происходит из двух таблиц при обновлении страницы */

    try {

    $sql = "SELECT * FROM users INNER JOIN authorrole ON users.id = authorrole.authorid WHERE users.activation IS NULL OR users.activation !='1' ";

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

    $no_active = $s->Fetchall();

    } catch (pdoException $e) {

    exit('Ошибка при выборке неактивных пользователей');

    }

    foreach ($no_active as $nouser) {

    $r = time() – $nouser["date"];

    $id = $nouser['id'];

    if ($r > 3600) {

    try {

    $sql = "DELETE FROM users WHERE id = :id AND activation IS NULL OR users.activation !='1'";

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

    $s->bindValue(':id', $id);

    $s->execute();

    } catch (pdoException $e) {

    exit('Ошибка при выборке неактивных пользователей0');

    }

    try {

    $sql = "DELETE FROM authorrole WHERE authorid = :id";

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

    foreach ($no_active as $nouser) {

    $authorid = $nouser['id'];

    $s->bindValue(':id', $authorid);

    $s->execute();

    }

    } catch (pdoException $e) {

    exit('Ошибка при выборке неактивных пользователей');

    }

    }

    }

    Файл состоит из трех частей. В первой обрабатываются данные администратора. Во второй части подключается файл edituser.php и в нем обрабатываются данные обычного пользователя. Вторая часть начинается с комментария /* Start user */. В третьей части идет проверка неактивных пользователей и их удаление.

    Скрипты, которые обрабатывает файл index.php:

    – /chat/admin/access.php';

    – /chat/admin/users/authors.html.php;

    – /chat/admin/users/edituser.php;

    – /chat/admin/users/error.html.php';

    – /chat/admin/users/form_add_user.php';

    – /chat/admin/users/avatar.php';

    – /chat/admin/users/form_add_user.php';

    – /chat/admin/users/delete.php';

    Обработка данных администратора заключается в следующем:

    1. Сквозной вариант без нажатия ссылок и кнопок

    1.1 Проверяются полномочия пользователя для захода на страницу, если пользователь не «admin» и не «user» доступ к странице закрывается.

    1.2 Если права «admin», то проверяются нажатия ссылок «Добавить нового пользователя», кнопок «Редактировать» и «Удалить».

    1.3 Если кнопки не нажимались идем дальше и проверяем пользователя на права «user».

    1.4 Если права не «user», переходим к последней, третьей части в которой идет удаление неактивных пользователей.

    1.5 Удаление не активных пользователей сделано для тех пользователей, которые активируются самостоятельно, а не добавлены администратором. Принцип удаления таков: если пользователь начал регистрацию на сайте, получил письмо на свою электронную почту и в течении часа не ответил на него, перейдя по указанной в письме активации ссылке, то его данные удаляются из БД. Сам алгоритм определения неактивных пользователей следующий:

    Делается SQL запрос к таблице «users» и связанной с ней таблицей «authorrole», в котором выбираются все пользователи, у которых значение activation не равно 1. Полученный массив обрабатывается построчно в цикле foreach по условию:

    $r = time() – $nouser["date"];

    где:

    time() – текущее время;

    $nouser["date"]– время регистрации пользователя (соответствует значению «date» таблицы «users»).

    За время активации отвечает параметр $r. Если у пользователя $r > 3600 идет удаление значений данного пользователя из таблиц «users» и «authorrole».

    Внимание! В файле много sql запросов, если некоторые не очень понятны, можно перейти в phpMyAdmin зайти в базу beseder выбрать вкладку sql и самостоятельно посмотреть, что выдают запросы в коде. при вставке не забудьте заменить переменные их значениями.

    2. Нажата ссылка «Добавить нового пользователя»

    2.1. Страница перегружается и появляется переменная $_GET['add'].

    2.2 Инициализируем переменные добавления пользователя, вставляем форму добавления пользователя form_add_user.php. После заполнения формы проверяются переданные ею данные и устанавливается «аватар» в подключаемом скрипте avatar.php.

    2.3 Данные заносятся в БД.

    2.4 Проверяются и удаляются не активированные пользователи.

    3. Нажата кнопка «Редактировать».

    3.1 Появляется $_POST['action'] == 'Редактировать'

    3.2. Также вставляется form_add_user.php, но в ней уже заранее установлены данные конкретного пользователя.

    3.3 Данные изменяются администратором, проверяются и заносятся в БД.

    3.4 Проверяются и удаляются не активированные пользователи.

    4. Нажата кнопка «Удалить»

    4.1. Появляется $_POST['action'] == 'Удалить', выполняется условие вставки скрипта подготовки удаления delete.php и формы удаления form_delete.php. Если в форме удаления соглашаемся и нажимаем «Да» то $_POST['action'] == 'Да' и запускается код удаления. Удаление происходит из таблицы «users» и связанной с ней таблицей «authorrole».

    13. Управление пользователями

    Попадаем при переходе по ссылке «Пользователи» на странице «Панель управления». За вывод страницы отвечает файл authors.html.php .

    Листинг 28. authors.html.php Путь: news/chat/admin/users/ authors.html.php

    <?php

    include_once $_SERVER['DOCUMENT_ROOT'] . '/chat/admin/clean.php';

    ?>

    <!DOCTYPE html>

    <html lang="en">

    <head>

    <meta charset="utf-8">

    <link rel="stylesheet" type="text/css" href="/chat/style.css" />

    <title>Управление пользователями</title>

    </head>

    <body>

    <h2 class="user">Управление пользователями</h2>

    <div class="addusers"><a href="?add">Добавить нового пользователя</a></div>

    <div class="ourwrapper" id="">

    <!– <ul>–>

    <?php foreach ($authors as $author) : ?>

    <!– <li style="list-style-type: none">–>

    <div class="formuser">

    <form action="" method="post" class="formusers">

    <div class="wrapuser">

    <div class="topuser" id="">

    <p class="login_art">

    <span class="number"># <?php htmlout($author['id']); ?></span>

    <?php htmlout($author['login']); ?>

    </p>

    </div><!– end topuser –>

    <?php

    $ava = $author['img'];

    echo '<img class="imgava" src="' . $ava . '">' . ' ';

    echo '<p>';

    htmlout($author['roleid']); //выводим уровень доступа пользователя

    echo '</p>' . '<br>';

    ?>

    <input type="hidden" name="id" value="<?php echo $author['id']; ?>">

    <input type="submit" name="action" value="Редактировать">

    <input type="submit" name="action" value="Удалить" onclick="">

    </div><!– end wrapuser –>

    </form>

    </div><!– end formuser –>

    <!–</li>–>

    <?php endforeach; ?>

    <!–</ul>–>

    </div><!– end ourwrapper –>

    <p><a href="..">Вернуться</a></p>

    </body>

    </html>

    На этой странице выводится список пользователей и предоставляется возможность

    1 ... 9 10 11 12 13 14 15 16 17 ... 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 - Александр Андреевич Бодров
    Все комметарии
    Новинки бесплатной онлайн библиотеки