Информационный сайт

 

Реклама
bulletinsite.net -> Книги на сайте -> Программисту -> Кухарчик А. -> "РНР: обучение на примерах" -> 45

РНР: обучение на примерах - Кухарчик А.

Кухарчик А. РНР: обучение на примерах — Мн.: Новое знание, 2004. — 237 c.
ISBN 985-475-050-7
Скачать (прямая ссылка): phpobuchennaprimerah2004.pdf
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 68 >> Следующая

Записываем эту строку с обновленными данными в файл, предварительно полностью обнулив его:
$fp = fopen($file_kto_in_chat, "w");
if ($fp) { $fw = fwrite($fp, $sav); fclose($fp); } ?>
Дальше — простой код, отвечающий за формирование HTML-страницы:
<html><headxtitle>Пример чата<ДШс>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251"></head>
При помощи следующего кода формируются фреймы, в которых будет работать чат. Их будет четыре, размеры каждого вы можете отрегулировать, изменяя цифры в ту или иную сторону:
<frameset framespacing="0" rows="54,*,70">
<frame name="banner" scrolling="no" noresize target = "banner" src="banner.phtml">
<frameset cols="200,*">
<frame name="userlist" target="userlist" src="userlist.phtml" frameborder="0" scrolling="l">
<frame name="main_window" src="main_window.phtml" frameborder="0">
</frameset><frame name="msg" scrolling-"no" noresize target="msg" src="msg.phtml" frameborder="0">
</frameset>
Файл banner.phtml. В верхнем фрейме можно организовать вывод
баннеров, сообщений от администрации сайта и т.д.
I
Например: <html><head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
<style type=text/css>
A { text-decoration: none}
A { color: #FFFFFF}
A:hover {color: #EFEF4B; text-decoration:underline;} ]
t
A.mat {color: #FFFFFF}
A.mat:hover {color: #0066FF} p { font: 8px Verdana } </style></head>
<body topmargin=0 leftmargin=0 bgcolor=#546A8C>
Так мы подготовили заголовок и определили стили. Вы можете их поменять самостоятельно.
Теперь выводим в таблице по центру текст рекламы или список баннеров.
<table border="0" cellpadding="0" cellspacing="0"
width="90%" align="center"><tr><td>
<font color="white">
Текст рекламы</td></tr></table>
</body></html>
На этом с подготовкой окончено, переходим непосредственно к вводу, выводу сообщений и показу присутствующих в чате.
Файл main_window.phtml. Данная страница — особенная, она отличается от остальных тем, что периодически должна автоматически
обновляться (у нас это будет происходить каждые пять секунд):
154_Программирование на РНР
Чат
155
<? include {"tools.phtml"); ?> <html><head>
<meta http-equiv="Content-Type" content = "text/html; charset=windows-1251">
<meta http-equiv=Refresh content="5; URL=main_window.phtml">
Обновление нужно для того, чтобы ' посетители могли видеть новые сообщения, посланные в чат.
Уменьшение времени реагирования чата ведет к увеличению нагрузки на канал связи и на сервер, поэтому не стоит ставить этот параметр очень малым.
Теперь зададим стили (см. приложение 1), в соответствии с которыми будут отображаться сообщения:
<style type=text/css> bociy {
scrollbar-face-color:#54 6A8C;
scrollbar-3dlight-color:#FFFFFF;
scrollbar-track-color: #FFFFFF;
scrollbar-arrow-color: #FFFFFF;'"
scrollbar-border-color:#000000 }
p { font: Verdana; font-size : 12; }
</style>
<bodV bgcolor=#E7E7E7>
Дальше нам надо прочитать файл с сообщениями и вывести на экран последние 30 сообщений:
<p>
<?
$user = file ($file_logchat) ;
$i = count($user) ;
156'
Программирование на РНР
$fi = $i - 30;
if {$fi < 0) { $fi = 0; }
while ($i >= $fi):
Считываем файл с сообщениями в массив и ¦ начинаем обрабатывать последние 30:
list ($name, $time_name, $msg, $komu) = split ("~", trim(str_replace ("\n","", Suser
Сообщения записаны в специальном компактном формате, который надо расшифровать, ¦ а заодно удалить символ перевода строки.
Дальше:
if ($name and $msg) { if {!$komu or $komu == $person) { if (!$komu) { echo "<small>$time_name> </small> <b>$name</b> $msg<br>"; } else {
echo "<small>$time_name>
</small> <Ь>для $name от $komu:</b> $msg<br>";
} } }
Вывод организован таким образом, что если кто-то захотел отправить сообщение только определенному нику, другие это сообщение не увидят. Вот такая простая реализация идеи привата.
endwhile;
?><br></body></html> Закрываем цикл и сам файл.
Чат
157
Файл msg.phtml. Этот файл — один из самых больших и сложных файлов чата в смысле программирования, но он практически не дает нагрузки на сервер, так как отрабатывает один раз, когда пользователь вводит свои данные в чат. Его основная функция — просто обеспечить ввод посылаемой строки в файл с сообщениями чата.
Как обычно, в начале вызываем служебный файл и описываем стили. Обращайте внимание, чтобы перед вызовом не было даже пробела, иначе будет ошибка работы с сессиями.
<? Include ("tcols.phtmL") ; ?>
<html><head><meta http-equiv="Content-Type" content="text/ html; charset=windows-1251">
<style type=text/css>
input.button {
border-style:solid;
border-width:1px;
border-width-color:#546A8C;
width:8 0px;
height:20px;
font-family: Verdana;
font-size: 10px;
color: #000000;
font-size: 10px;
background: #E7E7E7
}
p { font: 8px Verdana } body { font: 12px Verdana }
</style>
158
Программирование на РНР
Проверяем каждый присутствующий ник на истечение времени последней связи:
Предыдущая << 1 .. 39 40 41 42 43 44 < 45 > 46 47 48 49 50 51 .. 68 >> Следующая
Реклама
Авторские права © 2009 AdsNet. Все права защищены.
Rambler's Top100