PDA

Просмотр полной версии : Пишим мини чат на php + bb + смайлики!


Hormold
27.06.2007, 12:25
Создаём своё чат на php!
Автор: Hormold
Спецально для XAKEPOK.org & WEB-HACK.ru .
-------------
Введение: Тут, я вам расскажу как сделать полноценный чат на PHP, в место ников будет ip аддрес.
Это подойдёт для LAN.
-------------
Начнём...
Приступаем за дело! Сначало создаём папку image. В нёё помещаем смайлики.С название 1,2,3,4...
и так до 8. После пишим наш index.php.
Мой исходный код:
<HTML>
<HEAD>
<TITLE>Mini Chat</TITLE>
</HEAD>
<BODY>
<CENTER>
<?include('config.php');
$ip = getenv ("REMOTE_ADDR");
?>
<CENTER><B><?echo $we;?></B></CENTER>
-------------------<BR>
Войти:
<FORM METHOD=POST ACTION="login.php">
Ваш ip:<INPUT TYPE="text" NAME="nick" value="<?echo $ip;?>"><BR>
<INPUT TYPE="submit" value="Войти"><BR>
Внимание:<B>Если вы неправельно написали, то будет исправленно!</B><BR>
-------------------<BR>
</FORM>
</CENTER>
</BODY>
</HTML>


Тут будет приветствие и поля ввода Ip. login.php- файл с фреймом!
В нём будет 2 окна: Окно чата и строка ввода.
Вот мой исходный код:
<?
$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).
Приступим к созданию окна сообщений! Там нам нужно сделать скрипт чтения даных из файла.
Скрипт прост!
<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 (Там где вводим сообщение) прописываем это:
<?
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>-Текст<BR>
<i>ТЕКСТ</i>-Текст<BR>
Перенос строки - <br>
<INPUT TYPE="hidden" value=<?echo $ip;?> name="ip">
<INPUT TYPE="submit" value="Отправить">
</FORM>


Тут будет строка ввода,смайлики и помощь к сообщениям.
Дальше прописываем в sendx.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>",$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>-Текст<BR>
<i>ТЕКСТ</i>-Текст<BR>
Перенос строки - [br] <br>
<INPUT TYPE="submit" value="Отправить">
</FORM>



Коменты в коде...
Ну и Config.php !
<?
$we="Привет";//Приветствие
?>


Вот и всё! Юзайте! Там есть баги...
Но это буду исправлять позже!
Спасибо, ваш Hormold...

-----------------------------------------------------
Писал на скорую руку для одного сайта :)
Эта версия без дизайна!
Так-что не ругайте ...

Zitt
27.06.2007, 12:37
Смайлы не проще через массив сделать?

nc.STRIEM
27.06.2007, 22:00
просмотрев вот этот участок кода


$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>",$m);
$m = str_replace("","</b>",$m);
$m = str_replace("[/i]","</i>",$m);
$m = str_replace("[i]","<i>",$m);
$m = str_replace("[br]","<br>",$m);



уже можно сказать что смайлы работать не будут