// WR-Chat v 1.0 // 16.10.05 г. // Miha-ingener@yandex.ru error_reporting (E_ALL); /////////////////////// НАСТРОЙКИ ///////////////////////// $chatname="Чат"; // Имя скрипта отображается в теге TITLE и заголовке $datafile="chat.dat"; // имя файла c данных $ip=$_SERVER['REMOTE_ADDR']; // определяем IP юзера $fil="$ip.dat"; // имя файла с "IPшником клиента" $chatrefresh="5"; // частота обновления чата $maxname="20"; // Максимальное кол-во символов в имени $maxmsg="300"; // Максимальное количество символов в сообщении $chatqq="20"; // кол-во отображаемых сообщений $s2=""; // Смайлики ;-) $s1=""; $s3=""; $s4=""; $s5=""; $s6=""; $s7=""; $s8=""; $s9=""; $s10=""; $s11=""; $s12=""; $chemodan="0644"; $date=date("d.m.Y"); // число.месяц.год $time=date("H:i:s"); // часы:минуты:секунды // КОНЕЦ настройкам ----------------------------------------------- // Чтение сообщений $query=$_SERVER["REQUEST_METHOD"]; $eq1=$_SERVER['QUERY_STRING']; if ($eq1=="") { print" Чат "; } else { if ($_GET['event']=="msgwindow") { // ФРЕЙМ с сообщениями чата print""; ////////////////////// заменить блоки!!!!!!!!!!!!!!!!!!!!!!! // Сюда вставить проверку на кол-во строчек (месаг) в файле с данными. // Если больше допустимого - удалить лишние. То есть считать в память с 0 по максимально допустимую // и перезаписать в файл. //////////////////// заменить выше //////////////////////////// // считываем данные, заменяем текстовые смайлики на графические, выводим на экран $lines = file($datafile); $i = count($lines); $n="0"; do {$dt=explode("|", $lines[$n]); $n++; $dt[4]=str_replace(":-))",$s1,$dt[4]); $dt[4]=str_replace(":-)",$s2,$dt[4]); $dt[4]=str_replace(":-P",$s3,$dt[4]); $dt[4]=str_replace("8-)",$s4,$dt[4]); $dt[4]=str_replace(":-(",$s5,$dt[4]); $dt[4]=str_replace(":-O",$s6,$dt[4]); $dt[4]=str_replace(";-)",$s7,$dt[4]); $dt[4]=str_replace(":roll:",$s8,$dt[4]); $dt[4]=str_replace(":rf:",$s9,$dt[4]); $dt[4]=str_replace("8-(",$s10,$dt[4]); $dt[4]=str_replace("`-(",$s11,$dt[4]); $dt[4]=eregi_replace("((https?|ftp)://[[:alnum:]_=/-]+(\\.[[:alnum:]_=/-]+)*(/[[:alnum:]+&._=/%]*(\\?[[:alnum:]?+&_=/%]*)?)?)", "\\1", $dt[4]); print" $dt[1], $dt[3]: $dt[4]\r\n"; } while($n < $i); print ""; } // if ($event=="msgwindow") // Нижний фрейм - находимся в чате уже пишем сообщения if ($_GET['event']=="login") { if (isset($_POST['name2'])) {$name2=$_POST['name2'];} else {$name2="";} if(@$name2) { $ucolor=$_POST['ucolor']; $writedata="$name2\r\n$ucolor"; $fp=fopen($fil,"w"); flock ($fp,LOCK_EX); fwrite($fp,$writedata); flock ($fp,LOCK_UN); fclose($fp); //@chmod("$f","$chemodan"); $text="$date|$time|$ucolor|$name2|вошел в чат|"; // запись данных в файл $fp=fopen($datafile,"a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); flock ($fp,LOCK_UN); fclose($fp); //@chmod("$fp","$chemodan"); } if(file_exists($fil)) { // Если с такого IP уже заходи ктото - то входим под его именем $userlines=file($fil); $name=$userlines[0]; $usercolor=$userlines[1]; } print" "; if(@$name){ ?> Smiles: Message : } else { // Нижний фрейм - Первый вход в чат $namecolor="#000000|#e553e0|#ff0000|#666666|#00aa00|#dbbc0d|#fa803e|#e55372|#0000ff|"; // набор цветов $nc=explode("|",$namecolor); $i=0; print " "; do { if (!isset($m)) {$chek="checked"; $m="0";} else {$chek="";} print" \r\n"; $i++;} while ($i<9); print" Ваш ник: "; } // добавление сообщения if(isset($_POST['msg'])){ $msg=$_POST['msg']; $name=$_POST['name']; // обрезаем лишние символы в имени и сообщении $name=str_replace("\n","",$name); $name=str_replace("|","I",$name); $msg=str_replace("|","I",$msg); $msg=str_replace(""," ",$msg); $msg=str_replace("\r\n", "", $msg); $name=wordwrap($name,50,' ',1); // разрываем слишком длинные строки $msg=wordwrap($msg,150,' ',1); $msg=substr($msg,0,$maxmsg); $text="$date|$time|$usercolor|$name|$msg|"; $text=str_replace( " " ,' ' ,$text); $text=str_replace( "&" ,'&' ,$text); $text=str_replace( "" ,'-->' ,$text); $text=preg_replace( "/ "; */ } // ВЫХОД из ЧАТА if ($_GET['event']=="goexit") {if(file_exists($fil)) {unlink ($fil); } unset($name); Header("Location: index.php?event=login"); exit;} } //else ?>