Пишим мини чат на php + bb + смайлики!

Discussion in 'PHP' started by Hormold, 27 Jun 2007.

  1. Hormold

    Hormold Banned

    Joined:
    26 Jun 2007
    Messages:
    43
    Likes Received:
    9
    Reputations:
    -14
    Создаём своё чат на 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...

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

    Zitt Elder - Старейшина

    Joined:
    7 May 2006
    Messages:
    736
    Likes Received:
    268
    Reputations:
    59
    Смайлы не проще через массив сделать?
     
  3. nc.STRIEM

    nc.STRIEM Members of Antichat

    Joined:
    5 Apr 2006
    Messages:
    1,036
    Likes Received:
    347
    Reputations:
    292
    просмотрев вот этот участок кода
    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);

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