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

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

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

67 0 11:01, 24-03-2023

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

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

    1 ... 5 6 7 8 9 10 11 12 13 ... 23
    Перейти на страницу:
    (PDOException $e)

    {

    echo $e->getMessage();

    echo $e->getLine();

    exit('Ошибка поиска прав пользователя');

    }

    $row = $s->fetch();

    if ($row[0] > 0)

    {

    return TRUE;

    }

    else

    {

    return FALSE;

    }

    }

    }

    /* Определяем id пользователя */

    function userId() {

    if (isset($_SESSION['login'])) {

          try {

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

                $sql = 'SELECT id FROM users WHERE login = :login';

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

                $s->bindValue(':login',$_SESSION['login']);

                $s->execute();

                $rowid=$s->fetch();

                $_SESSION['userid'] = $rowid['id'];

          }

          catch (PDOException $e) {

                echo $e->getMessage();

                echo $e->getLine();

                exit('Ошибка добавления пользователя');

          }

    }

    }

    Файл содержит функции для проверки данных пользователя.

    Функция userIsLoggedIn()проверяет наличие и правильность данных переданных формой авторизации, активациию пользователя. В зависимости от результатов проверки этих данных устанавливает или уничтожает значения переменных сессии $_SESSION. Возвращает «true» или «false».

    Для активации пользователя используется $activation. Пользователь считается активированным, если $activation = 1. Проверяем запросом к БД для указанного логина.

    Функция databaseContainsAuthor() проверяет наличие в БД пользователя с переданной парой логин – пароль. Если пользователь существует возвращает «true» если нет «false».

    Функция userHasRole($role)определяет уровень пользователя: «admin» или «user». В качестве параметра передается значение $role. Если $role равна значению «id» таблицы «role» установленному для данного логина при авторизации, то возвращает значение «true» иначе «false».

    Функция userId() определяет «id» пользователя. Устанавливает значение переменной сессии $_SESSION['userid'].

    9.1.3 Форма авторизации

    Форма авторизации «form_login.php» служит для ввода логина и пароля пользователя.

    Листинг 14. form_login.php Путь: /news/chat/admin/ form_login.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>

    <?php if (isset($loginError)): ?>

    <p><?php htmlout($loginError); ?></p>

    <?php endif; ?>

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

    <h4 class="formname">Авторизация</h4>

    <hr>

    <div class="login_input">

    <label for="email">Логин:

    <input type="text" name="login" id="login" class="inputs">

    </label>

    </div>

    <hr>

    <div>

    <label for="password">Пароль:

    <input type="password" name="password" id="password">

    </label>

    </div>

    <hr>

    <div>

    <input type="hidden" name="action" value="out">

    <input type="submit" value="Отправить">

    </div>

    </form>

    </body>

    </html>

    В самом начале файла вставляем скрипт «clean.php», который будет чистить получаемые данные ($loginError).

    Выводим форму. Заполняем, отправляем данные.

    9.1.4 Страница ошибки активации

    Страница ошибка активации erroractivation.html. Форма будет вставляться в случае ошибки активации, а именно, если переменная активации не равна 1:

    $activation != 1;

    проверка ведется в скрипте access.php.

    Листинг 15. erroractivation.html Путь: /news/chat/admin/ erroractivation.html

    <!DOCTYPE html>

    <html lang="en">

    <head>

    <meta charset="utf-8">

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

    <title>Ошибка активациии</title>

    </head>

    <body>

    <div style="float:none; display:inline-block; ">

    <h5 class="ingress" style="text-align:center;">

    Вы не активировали аккаунт, <br>

    проверьте сообщения в почтовом ящике,<br>

    указанном вами при регистрации

    </h5>

    </div>

    <div>

    <h5 class="ingress"><a href="/">Вернуться на главную страницу</a></h5>

    </div>

    </body>

    </html>

    Здесь вопросов быть не должно. Обычная html страница без кода. Часть стилей CSS заданы непосредственно на странице.

    9.1.5 Кнопка выхода из раздела администрирования

    Кнопка выхода из раздела администрирования «button_logout.php»

    Листинг 16. button_logout.php Путь: /news/chat/admin/ button_logout.php

    <!DOCTYPE html>

    <html lang="en">

    <head>

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

    </head>

    <div class="logouts">

    <form action="/chat/admin/logout.php" method="post" class="logout">

    <input type="hidden" name="action" value="logout" />

    <input type="hidden" name="goto" value="/admin/" />

    <input type="submit" name="action" value="Выйти" />

    </form>

    </div>

    </html>

    Кнопка передает данные скрипту logout.php (Листинг 25) который обнуляет соответствующие переменные сессии.

    После создания этих фалов пробуем зайти на страницу администрирования

    news/chat/admin и посмотреть что получилось.

    Рис. 16. Форма авторизации закрывает вход в личный кабинет

    Заполняем поля формы и отправляем данные.

    Рис. 17. Страница личного кабинета открыта

    Если всё прошло нормально открывается страница доступа к личному кабинету в административном разделе. На этой странице имеется кнопка «Выход», ссылки на страницы «Комментарии» и «Пользователи», а также ссылка «Вернуться на главную страницу».

    9.1.6 Страница доступ запрещен

    Сами понимаете, без такой страницы никуда.

    Листинг 17. accessdenied.html.php Путь: news/chat/admin/ accessdenied.html.php

    <?php

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

    include_once $_SERVER['DOCUMENT_ROOT'].'/chat/admin/button_logout.html';

    ?>

    <!DOCTYPE html>

    <html lang="en">

    <head>

    <meta charset="utf-8">

    <title>Access Denied</title>

    </head>

    <body>

    <h1>Доступ запрещен</h1>

    <p><b><i><?php htmlout($error); ?></i></b></p>

    <p><a href="/">Вернуться на главную страницу</a></p>

    </body>

    </html>

    Страница будет выводиться, в случае если у пользователя нет прав для доступа к панели управления. Допустим, user захочет войти на страницу, доступную только пользователю с правами admin. «Доступ запрещен» будет выводиться по результатам проверки в файле access.php, на странице index раздела admin вместо основной страницы.

    9.2. Статистика комментариев

    9.2.1 Страница комментариев

    Создаем страницу просмотра статистики комментариев «comment.html.php»

    Листинг 18. comment.html.php Путь: news/chat/admin/ comment.html.php

    <!DOCTYPE html>

    <html>

    <head>

    <meta charset="utf-8">

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

    <title>Листинг комментариев</title>

    </head>

    <body class="chatbody">

    <h1 class="user">Статистика комментариев</h1>

    <div class="statwrap" id="">

    <!– Вставляем блок формы поиска –>

    <div class="statone" id="">

    <?php include_once $_SERVER['DOCUMENT_ROOT'].'/chat/admin/search.html.php'; ?>

    </div><!– END statone –>

    <div class="stattwo" id="">

    <h5 class="user">Комментарии</h5>

    <?php

    if (isset($says)) {

    foreach ($says as $say) : ?>

    <p class="stat">

    <?php

    echo '<span style="color:cadetblue;">' . ' ' . $say['id'] . ' ' . '</span>';

    //убираем смайлы

    $patterns = '/(:([^>]+):)/U';

    $replace = ' smile* ';

    $clean = $say['text'];

    $text = preg_replace($patterns, $replace, $clean);

    echo $text;

    $t = time($say['saydate']);

    echo '<span style="color:cadetblue;">' . ' ' . date("d.m.Y", "$t") . '</span>'; ?>

    </p>

    <?php endforeach;

    } ?>

    </div><!– END stattwo –>

    <div class="statthree" id="">

    <h5 class="user">Ответы на комментарии</h5>

    <?php

    if (isset($replys)) {

    foreach ($replys as $reply) : ?>

    <p class="stat"><?php

    echo '<span style="color:cadetblue;">' . ' ' . $reply['replyid'] . ' ' . '<-' . ' ' . '</span>';

    //убираем смайлы

    $patterns = '/(:([^>]+):)/U';

    $replace = ' smile* ';

    $clean = $reply['replytext'];

    $text = preg_replace($patterns, $replace, $clean);

    echo $text;

    //время

    $t = time($reply['replydate']);

    echo '<span style="color:cadetblue;">' . ' ' . date("d.m.Y", "$t") . '</span>'; ?>

    </p>

    <?php endforeach;

    } ?>

    </div><!– END statthree –>

    </div><!– END statwrap –>

    <br />

    <div class="return"><a href="/chat/admin/">Вернуться</a></div>

    </body>

    </html>

    Страница функционально состоит из трех блоков:

    • Блок с данными пользователей и формой поиска.

    • Блок, отображающий комментарии.

    • Блок, отображающий ответы на комментарии.

    Предусмотрена ссылка для возврата на предыдущую страницу «Вернуться».

    Содержание блоков формируется в файле comment.php в соответствии с данными отправленными формой поиска search.html.php. По умолчанию отображаются все имеющиеся данные. Комментарии и ответы на них выводятся без картинок.

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