Создаём своё чат на php! Автор: Hormold Спецально для XAKEPOK.org & WEB-HACK.ru . ------------- Введение: Тут, я вам расскажу как сделать полноценный чат на PHP, в место ников будет ip аддрес. Это подойдёт для LAN. ------------- Начнём... Приступаем за дело! Сначало создаём папку image. В нёё помещаем смайлики.С название 1,2,3,4... и так до 8. После пишим наш index.php. Мой исходный код: Тут будет приветствие и поля ввода Ip. login.php- файл с фреймом! В нём будет 2 окна: Окно чата и строка ввода. Вот мой исходный код: PHP: <? $name=$_POST['nick']; $fh = fopen("mess.txt","a"); $today = date("H:i:s"); fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>Бот</FONT> >>> Привет $name <BR>"); fclose($fh); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML> <HEAD> <TITLE>Добро пожаловать в чат, <?echo $name;?>!</TITLE> </HEAD> <FRAMESET ROWS="300,60" > <FRAME SRC="chat.php" NAME="chat"> <FRAME SRC="sends.php" NAME="send"> </FRAMESET> </HTML> В заголовке будет такой текст: Добро пожаловать в чат, 127.0.0.1 (Или ваш ip). Приступим к созданию окна сообщений! Там нам нужно сделать скрипт чтения даных из файла. Скрипт прост! PHP: <META http-equiv="pragma" content="no-cache"><META http-equiv="refresh" content="2"> <? $fh = fopen("mess.txt","r"); while(!feof($fh)) { $line = fgets($fh); echo "$line"; } fclose($fh); ?> Первая строчка обозначает: страница no-cache и обновляется раз в 2 секунды. Сохраняем его как chat.php. И в место mess.txt напишите ваше название файла с сообщениями... После этого нам нужно создать 2 файла и назвать sendx.php & sends.php . В файле sends.php (Там где вводим сообщение) прописываем это: PHP: <? include('config.php'); $ip = getenv ("REMOTE_ADDR"); ?> <FORM METHOD=POST ACTION="sendx.php"> <TABLE align="right"> <TR> <TD>Самйлики:</TD> </TR> <TR> <TD>:)-<IMG SRC='image/1.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br>:( - <IMG SRC='image/8.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br> :B - <IMG SRC='image/2.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br>:D - <IMG SRC='image/3.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br>O_o - <IMG SRC='image/6.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br> :~ - <IMG SRC='image/5.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br> !!!! - <IMG SRC='image/4.gif' WIDTH='19' HEIGHT='19' BORDER='0'> <br>:-) - <IMG SRC='image/7.gif' WIDTH='19' HEIGHT='19' BORDER='0'> </TD> </TR> </TABLE> Сообщение:<INPUT TYPE="text" NAME="mess"><BR> <b>Текст</b>-[b]Текст[/b]<BR> <i>ТЕКСТ</i>-[i]Текст[/i]<BR> Перенос строки - [br] <br> <INPUT TYPE="hidden" value=<?echo $ip;?> name="ip"> <INPUT TYPE="submit" value="Отправить"> </FORM> Тут будет строка ввода,смайлики и помощь к сообщениям. Дальше прописываем в sendx.php (Файл который обробатывает всё...) это: PHP: <? $m=$_POST['mess']; $ip = getenv ("REMOTE_ADDR"); $fh = fopen("mess.txt","a"); $today = date("H:i:s"); $m = nl2br($m); $m = str_replace("<","[",$m); $m = str_replace(">","]",$m); $m = str_replace(":)","<IMG SRC='image/1.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":(","<IMG SRC='image/8.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":B","<IMG SRC='image/2.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":D","<IMG SRC='image/3.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace("O_o","<IMG SRC='image/6.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":~","<IMG SRC='image/5.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace("!!!!","<IMG SRC='image/4.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":-)","<IMG SRC='image/7.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace("<","[",$m); $m = str_replace(">","]",$m); $m = str_replace("[b]","<b>",$m); $m = str_replace("[/b]","</b>",$m); $m = str_replace("[/i]","</i>",$m); $m = str_replace("[i]","<i>",$m); $m = str_replace("[br]","<br>",$m); fwrite($fh,"<BR><FONT COLOR='#0000CC'>$today </FONT><FONT COLOR='#FF0000'>$ip</FONT> >>> $m <BR>"); fclose($fh); ?> <FORM METHOD=POST ACTION="sendx.php"> <TABLE align="right"> <TR> <TD>Самйлики:</TD> </TR> <TR> <TD>:)-<IMG SRC='image/1.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br>:( - <IMG SRC='image/8.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br> :B - <IMG SRC='image/2.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br>:D - <IMG SRC='image/3.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br>O_o - <IMG SRC='image/6.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br> :~ - <IMG SRC='image/5.gif' WIDTH='19' HEIGHT='19' BORDER='0'><br> !!!! - <IMG SRC='image/4.gif' WIDTH='19' HEIGHT='19' BORDER='0'> <br>:-) - <IMG SRC='image/7.gif' WIDTH='19' HEIGHT='19' BORDER='0'> </TD> </TR> </TABLE> Сообщение:<INPUT TYPE="text" NAME="mess"><BR> <b>Текст</b>-[b]Текст[/b]<BR> <i>ТЕКСТ</i>-[i]Текст[/i]<BR> Перенос строки - [br] <br> <INPUT TYPE="submit" value="Отправить"> </FORM> Коменты в коде... Ну и Config.php ! PHP: <? $we="Привет";//Приветствие ?> Вот и всё! Юзайте! Там есть баги... Но это буду исправлять позже! Спасибо, ваш Hormold... ----------------------------------------------------- Писал на скорую руку для одного сайта Эта версия без дизайна! Так-что не ругайте ...
просмотрев вот этот участок кода PHP: $m = str_replace("<","[",$m); $m = str_replace(">","]",$m); $m = str_replace(":)","<IMG SRC='image/1.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":(","<IMG SRC='image/8.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":B","<IMG SRC='image/2.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":D","<IMG SRC='image/3.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace("O_o","<IMG SRC='image/6.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":~","<IMG SRC='image/5.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace("!!!!","<IMG SRC='image/4.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace(":-)","<IMG SRC='image/7.gif' WIDTH='19' HEIGHT='19' BORDER='0'>",$m); $m = str_replace("<","[",$m); $m = str_replace(">","]",$m); $m = str_replace("[b]","<b>",$m); $m = str_replace("[/b]","</b>",$m); $m = str_replace("[/i]","</i>",$m); $m = str_replace("[i]","<i>",$m); $m = str_replace("[br]","<br>",$m); уже можно сказать что смайлы работать не будут