Создаем динамические веб-сайты с помощью PHP, MySQL и JavaScript

Печать

Файл rnmessages.php

Код последнего из основных модулей, rnmessages.php, показан в примере 20.12. Этот модуль начинает работу с проверки наличия отправленного сообщения в элементе POST-массива, имеющего ключ 'text'. Если сообщение имеется, оно вставляется в таблицу rnmessages. Одновременно с этим сохраняется и значение элемента, имеющего ключ ' рт'. Значение этого элемента свидетельствует об открытом или закрытом статусе сообщения. Нуль представляет открытое, а единица — закрытое сообщение.

Затем отображаются пользовательский профиль и форма для ввода сообщения, а также переключатели для выбора между закрытым (private) или открытым (public) статусом сообщения. После этого показываются все сообщения с учетом имеющегося у них статуса — закрытые или открытые. Если они имеют статус открытого сообщения, их могут просматривать все пользователи, а закрытые сообщения могут просматривать только отправитель и получатель. Все это управляется двумя запросами к базе данных MySQL. В дополнение к этому, когда сообщение имеет статус закрытого, оно представлено словом «whispered» (прошептал) и отображается курсивом.

И наконец, программа отображает две ссылки:для обновления сообщений (refresh the messages) в том случае, когда другой пользователь за время просмотра опубликовал новое сообщение, и для просмотра друзей пользователя (view the user's friends). Здесь опять используется прием с переменными Snamel и Sname2, для того чтобы при просмотре вашего собственного профиля вместо имени пользователя отображалось слово Your (Ваши).

Результат запуска этой программы в браузере показан на рис. 20.7. Обратите внимание на то, как пользователям, просматривающим собственные сообщения, предоставляется ссылка для того, чтобы можно было стереть (erase) любое из нежелательных сообщений.

Пример 20.12. rnmessages.php

<?php // rnmessages.php i ncl ude__once ' rnheader. php';

if (!isset($_SESSI0N['user']))

die("<br /><br />You need to login to view this page");

// Для просмотра этой страницы нужно войти на сайт Suser = $_SESSI0NC'user']:

if (isset(S_GET['view'])) Sview - sanitizeString(S_GET[,view']):else Sview = Suser:

if (isset(S_P0ST['text'])) {

Stext - sanitizeString(S_POST['text']);

if (Stext H "") {

Spm = substr(sani ti zeStri ng(S_P0ST['pm']),0,1); Stime = timeO;