Страница 429 из 478 Файл 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;
|