'; if ($wrfname!=null) { $codename=urlencode($wrfname); // Кодируем имя в СПЕЦФОРМАТ, для поддержки корректной передачи имени через GET-запрос. print "Ваш профиль  Выход [$wrfname]";} else {print " Регистрация   Вход";} if (is_file("$fskin/tiptop.html")) include("$fskin/tiptop.html"); // подключаем дополнение к ВЕРХУШКе print"Сегодня: $date - $time"; return true;} function replacer ($text) { // ФУНКЦИЯ очистки кода $text=str_replace(" ",' ',$text); $text=str_replace("&",'&',$text); // закоментируйте эту строку если вы используете языки: Украинский, Татарский, Башкирский и т.д. $text=str_replace(">",'>',$text); $text=str_replace("<",'<',$text); $text=str_replace("\"",'"',$text); $text=preg_replace("/\n\n/",'

',$text); $text=preg_replace("/\n/",'
',$text); $text=preg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\',$text); if (get_magic_quotes_gpc()) { $text=str_replace("\"",'"',$text); $text=str_replace("\'",'\'',$text); $text=str_replace("\\",'\',$text); } // если magic_quotes включена - чистим везде СЛЭШи в этих случаях автозамены: // одиночные (') и двойные кавычки ("), обратный слеш () $text=str_replace("\r\n","
",$text); $text=str_replace("\n\n",'

',$text); $text=str_replace("\n",'
',$text); $text=str_replace("\t",'',$text); $text=str_replace("\r",'',$text); $text=str_replace(' ',' ',$text); return $text; } // --ЦИФРОЗАЩИТА-- if (isset($_GET['image'])) { // Функция с цифрами защиты $st="R0lGODlhCgAMAIABAFNTU////yH5BAEAAAEALAAAAAAKAAwAAAI"; // общая часть для всех рисунков function imgwr($st,$num){ if ($num=="0") {$len="63"; $number=$st."WjIFgi6e+QpMP0jin1bfv2nFaBlJaAQA7";} if ($num=="1") {$len="61"; $number=$st."UjA1wG8noXlJsUnlrXhE/+DXb0RUAOw==";} if ($num=="2") {$len="64"; $number=$st."XjIFgi6e+QpMPRlbjvFtnfFnchyVJUAAAOw==";} if ($num=="3") {$len="64"; $number=$st."XjIFgi6e+Qovs0RkTzXbj+3yTJnUlVgAAOw==";} if ($num=="4") {$len="64"; $number=$st."XjA9wG8mWFIty0amczbVJDVHg9oSlZxQAOw==";} if ($num=="5") {$len="63"; $number=$st."WTIAJdsuPHovSKGoprhs67mzaJypMAQA7";} if ($num=="6") {$len="63"; $number=$st."WjIFoB6vxmFw0pfpihI3jOW1at3FRAQA7";} if ($num=="7") {$len="61"; $number=$st."UDI4Xy6vtAIzTyPpg1ndu9oEdNxUAOw==";} if ($num=="8") {$len="63"; $number=$st."WjIFgi6e+QpMP2slSpJbn7mFeWDlYAQA7";} if ($num=="9") {$len="64"; $number=$st."XjIFgi6e+QpMP0jinvbT2FGGPxmlkohUAOw==";} header("Content-type: image/gif"); header("Content-length: $len"); echo base64_decode($number); } // Вывод изображений на экран (все кодированы - робот не пройдёт) if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"]; for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} } exit;} // ВСЁ, что делается при наличии переменной $_GET['event'] if(isset($_GET['event'])) { if ($_GET['event']=="login") { // ВХОД на форум УЧАСТНИКОМ $frname="Вход на форум .:. "; $frtname=""; include("$fskin/top.html"); addtop(); // подключаем ШАПКУ форума print"



Вход на форум
Имя:
Пароль:
"; print "


Забыли пароль?
Введите Ваш Емайл
* имя и пароль будут высланы Вам на электронный адрес.





"; exit;} // РЕПУТАЦИЯ - окно выбора: шаг 1 if ($_GET['event']=="repa") { if (!isset($_GET['name'])) exit("Нет данных переменной $name."); if (!isset($_GET['who'])) exit("Нет данных переменной $who."); $name=replacer($_GET['name']); $userpn=$_GET['who']; if (!ctype_digit($userpn) or strlen($userpn)>4) exit("$back. Попытка взлома. Хакерам здесь не место."); // Если куков нет - облом, если куки есть и равны имени юзера - облом. if (!isset($_COOKIE['wrfcookies'])) exit("Изменение РЕПУТАЦИИ



Изменение РЕПУТАЦИИ может производить только участник форума!"); else { $wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc); $wrfc=stripslashes($wrfc); $wrfc=explode("|", $wrfc); $wrfname=$wrfc[0]; if ($wrfname===$name) exit("$back. По правилам форума
поднимать репутацию себе ЗАПРЕЩЕНО!"); print "Изменение РЕПУТАЦИИ участника: $name
Оцените репутацию
участника $name
-5 -2 -1 0 +1 +2 +5
"; exit; }} // РЕПУТАЦИЯ - сохранение: шаг 2 if ($_GET['event']=="repasave") { if (!isset($_POST['userpn'])) exit("Нет данных переменной $userpn."); if (!isset($_POST['repa'])) exit("Нет данных переменной $repa."); $userpn=$_POST['userpn']; if (!ctype_digit($userpn) or strlen($userpn)>4) exit("$back. Попытка взлома. Хакерам здесь не место."); $repa=$_POST['repa']; if (!is_numeric($repa)) exit("$back. Попытка взлома. Не хулигань, друг!"); if ($repa>5 or $repa<-5) exit("$back. Попытка взлома. Репу можно менять только на +-5 пунктов. Не хулигань, друг!"); $today=mktime(); // БЛОК добавляет + к репутации ЮЗЕРА //ИМЯ_ЮЗЕРА|Тем|Сообщений|Репутация|Предупреждения Х/5|Когда последний раз меняли рейтинг в UNIX формате||| $ufile="$datadir/userstat.dat"; $ulines=file("$ufile"); $ui=count($ulines)-1; $ulinenew=""; // Ищем юзера по имени в файле userstat.dat, если недавно голосовали за него, запрещаем. for ($i=0;$i<=$ui;$i++) {$udt=explode("|",$ulines[$i]); if ($i==$userpn) {$udt[3]=$udt[3]+$repa; if (strlen($udt[5])>5) {$next=$today-$udt[5]; sleep(1); if ($next<60) {$last=60-$next; exit("$back. Рейтинг этого участника
уже был изменён только что.
Ожидайте $last секунд.
");}} $ulines[$i]="$udt[0]|$udt[1]|$udt[2]|$udt[3]|$udt[4]|$today||||\r\n";} $ulinenew.="$ulines[$i]";} // Записываем данные в файл $fp=fopen("$ufile","w"); flock ($fp,LOCK_EX); fputs($fp,"$ulinenew"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); print "



Рейтинг успешно пересчитан.


Закрыть окно
"; exit; } // ОТПРАВКА СООБЩЕНИЯ юзеру if ($_GET['event']=="mailto") { if ($sendmail!="1") exit("$back.
Извините, но функция отправки писем ЗАБЛОКИРОВАНА администратором!


Закрыть окно
"); if (!isset($_GET['email'])) exit("Нет данных переменной $email."); if (!isset($_GET['name'])) exit("Нет данных переменной $name."); if (isset($_GET['fid'])) $fid=$_GET['fid']; if (isset($_GET['id'])) $id=$_GET['id']; $uemail=replacer($_GET['email']); $uname=replacer($_GET['name']); print " Отправление сообщения автору объявления
"; //-А-Н-Т-И-С-П-А-М- if (!isset($wrfname)) { if ($antispam!="0") { // Вывод изображений на экран (все кодированы - робот не пройдёт) if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"]; for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} } $xkey=""; mt_srand(time()+(double)microtime()*1000000); echo'
Получатель сообщения: $uname
  Ваше Имя:* и E-mail:*
  Сообщение:*
Защитный код: '; for ($i=0; $i<$maxkey; $i++) { $snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand); $phpself=$_SERVER["PHP_SELF"]; echo "\n"; $xkey=$xkey.$snum[$i]; } $xkey=md5("$xkey+$absrand"); print" (введите число) "; } // if $antispam!="0" } // if !isset($wrfname) //-К-О-Н-Е-Ц--А-Н-Т-И-С-П-А-М-А- if (isset($_GET['id'])) print""; echo'
'; exit; } // ШАГ 2 отправки сообщения пользователю if ($_GET['event']=="mailtogo") { $name=replacer($_POST['name']); $email=replacer($_POST['email']); $msg=$_POST['msg']; if (isset($_POST['fid'])) $fid=$_POST['fid']; if (isset($_POST['id'])) $id=$_POST['id']; $uname=replacer($_POST['uname']); $uemail=replacer($_POST['uemail']); //--А-Н-Т-И-С-П-А-М--проверка кода-- if ($antispam!="0") { $bada="$back Введённый вами код НЕ верен!"; if (isset($_POST['usernum'])) $usernum=$_POST['usernum']; else exit("$bada"); if (isset($_POST['xkey'])) $xkey=$_POST['xkey']; else exit("$bada"); $userkey=md5("$usernum+$absrand"); if ($userkey!=$xkey) exit("$bada"); } //--А-Н-Т-И-С-П-А-М--проверка кода-- if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $email) and strlen($email) < 30 and $email != "") exit("$back и введите корректный E-mail адрес!
"); if (!eregi("^([0-9a-z]([-_.]?[0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\\.[a-wyz][a-z](fo|g|l|m|mes|o|op|pa|ro|seum|t|u|v|z)?)$", $uemail) and strlen($uemail) < 30 and $uemail != "") exit("$back у пользователя задан несуществующий E-mail адрес!
"); if ($name=="") exit("$back Вы не ввели своё имя!
"); if ($msg=="") exit("$back Вы не ввели сообщение!
"); $text="$name|$msg|$uname|$email|"; $text=htmlspecialchars($text); $text=stripslashes($text); $text=str_replace("\r\n","
",$text); $exd=explode("|",$text); $name=$exd[0]; $msg=$exd[1]; $uname=$exd[2]; $email=$exd[3]; $headers=null; // Настройки для отправки писем $headers.="Content-Type: text/html; charset=windows-1251\r\n"; $headers.="From: $name <".$email.">\r\n"; $headers.="X-Mailer: PHP/".phpversion()."\r\n"; // Собираем всю информацию в теле письма $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $furl="http://$host$self"; $furl=str_replace("tools.php", "", $furl); $allmsg="

$uname, это сообщение отправлено вам от посетителя форума
$fname

Имя$name
E-mail:$email
Сообщение:
$msg
Дата отправки сообщения:$time - $date г.
Перейти на главную страницу:$furl


* Данное письмо сгенерировано и отправлено роботом, отвечать на него не нужно. "; mail("$uemail", "Сообщение от посетителя форума ($fname) от $name ", $allmsg, $headers); print "



Ваше сообщение успешно отправлено.


Закрыть окно
"; exit; } // проверка имени/пароля и вход на форум if ($_GET['event']=="regenter") // if ($event =="regenter") { if (!isset($_POST['name']) & !isset($_POST['pass'])) exit("$back введите имя и пароль!"); $name=str_replace("|","I",$_POST['name']); $pass=$_POST['pass']; $text="$name|$pass|"; $text=trim($text); // Вырезает ПРОБЕЛьные символы if (strlen($text)<4) exit("$back Вы не ввели имя или пароль!"); $text=replacer($text); $exd=explode("|",$text); $name=strtolower($exd[0]); $pass=$exd[1]; // проходим по всем пользователям и сверяем данные $lines=file("$datadir/usersdat.php"); $i=count($lines); do {$i--; $rdt=explode("|",$lines[$i]); if (isset($rdt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим if ($name===strtolower($rdt[0]) & $pass===$rdt[1]) { if (strlen($rdt[13])>1 and ctype_digit($rdt[13])) exit("$back. Ваша учётная запись не активирована. Для активации Вам необходимо перейти по ссылке, которая должна прийти Вам на емайл."); $regenter="$i"; $tektime=time(); $wrfcookies="$rdt[0]|$rdt[1]|$tektime|$tektime|"; setcookie("wrfcookies", $wrfcookies, time()+1728000); }} // if-ы } while($i > "1"); if (!isset($regenter)) exit("$back Ваш данные НЕ верны!
"); Header("Location: index.php"); } // Регистрация НОВЫЙ ШАГ 2!! отправка на мыл подтверждения и сохранение в БД if ($_GET['event']=="reg2") { if (!isset($_POST['name']) & !isset($_POST['pass'])) exit("$back введите имя и пароль!"); $name=str_replace("|","I",$_POST['name']); $pass=str_replace("|","I",$_POST['pass']); $dayreg=$date; $name=trim($name); // Вырезает ПРОБЕЛьные символы if (isset($_POST['email'])) $email=$_POST['email']; else $email=""; $email=strtolower($email); //--А-Н-Т-И-С-П-А-М--проверка кода-- if ($antispam!="0") { $bada="$back Введённый вами код НЕ верен!"; if (isset($_POST['usernum'])) $usernum=$_POST['usernum']; else exit("$bada"); if (isset($_POST['xkey'])) $xkey=$_POST['xkey']; else exit("$bada"); $userkey=md5("$usernum+$absrand"); if ($userkey!=$xkey) exit("$bada"); } //--А-Н-Т-И-С-П-А-М--проверка кода-- if (preg_match("/[^(\\w)|(\\x7F-\\xFF)|(\\-)]/",$name)) exit("$back Ваше имя содержит запрещённые символы. Разрешены русские и английские буквы, цифры и подчёркивание!!."); if ($name=="" or strlen($name)>$maxname) exit("$back ваше имя пустое, или превышает $maxname символов!"); if ($pass=="" or strlen($pass)<1 or strlen($pass)>$maxname) exit("$back Вы не ввели пароль. Пароль не должен быть пустым."); if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email) or $email=="" or strlen($email)>40) exit("$back и введите корректный E-mail адрес!"); if (isset($_POST['pol'])) $pol=$_POST['pol']; else $pol=""; if ($pol!="мужчина") $pol="женщина"; $email=str_replace("|","I",$email); $key=mt_rand(100000,999999); if ($useactkey!="1") $key=""; // КОЛДУЕМ рандомный КОД активации? если не требуется - обнуляем $text="$name|$pass|0|$email|$dayreg||$pol||||||noavatar.gif|$key|"; $text=replacer($text); $exd=explode("|",$text); $name=$exd[0]; $pass=$exd[1]; $email=$exd[3]; if ($name===$pass) exit("$back. В целях Вашей безопасности, запрещено равенство имени и пароля!"); // Ищем юзера с таким логином или емайлом $loginsm=strtolower($name); $lines=file("$datadir/usersdat.php"); $i=count($lines); if ($i>"1") { do {$i--; $rdt=explode("|",$lines[$i]); $rdt[0]=strtolower($rdt[0]); if ($rdt[0]===$loginsm) {$bad="1"; $er="логином";} if ($rdt[3]===$email) {$bad="1"; $er="емайлом";} } while($i > 1); if (isset($bad)) exit("$back. Участник с таким $er уже зарегистрирован на форуме!"); } // отправка пользователю КОДА АКТИВАЦИИ $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $furl="http://$host$self"; $headers=null; // Настройки для отправки писем $headers.="Content-type: text/plain; charset=windows-1251\r\n"; $headers.="From: ".$name." <".$email.">\r\n"; $headers.="X-Mailer: PHP/".phpversion()."\r\n"; // Собираем всю информацию в теле письма if ($useactkey=="1") { $allmsg=$fname.' (подтверждение регистрации)'.chr(13).chr(10). 'Подтвердите регистрациию на форуме, для этого перейдите по ссылке: '.$furl.'?event=reg3&email='.$email.'&key='.$key.chr(13).chr(10). 'Ваше Имя: '.$name.chr(13).chr(10). 'Ваш пароль: '.$pass.chr(13).chr(10). 'Ваш E-mail: '.$email.chr(13).chr(10). 'Активационный ключ: '.$key.chr(13).chr(10); } else { $allmsg=$fname.' (данные регистрации)'.chr(13).chr(10). 'Вы успешно зарегистрированы на форуме: '.$furl.chr(13).chr(10). 'Ваше Имя: '.$name.chr(13).chr(10). 'Ваш пароль: '.$pass.chr(13).chr(10). 'Ваш E-mail: '.$email.chr(13).chr(10); } // Отправляем письмо майлеру на съедение ;-) mail("$email", "=?windows-1251?B?" . base64_encode("$fname (подтверждение регистрации)") . "?=", $allmsg, $headers); if ($sendadmin=="1") {mail("$adminemail", "=?windows-1251?B?" . base64_encode("$fname (Новый участник)") . "?=", $allmsg, $headers);} $file=file("$datadir/usersdat.php"); $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); // Записываем строчку с именем в файл со статистикой $file=file("$datadir/userstat.dat"); $fp=fopen("$datadir/userstat.dat","a+"); flock ($fp,LOCK_EX); fputs($fp,"$name|0|0|0|0|||\r\n"); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); if ($useactkey!="1") { $tektime=time(); $wrfcookies="$name|$pass|$tektime|0|"; setcookie("wrfcookies", $wrfcookies, time()+1728000); print"
$name, Вы успешно зарегистрированы.

Через несколько секунд Вы будете автоматически перемещены на главную страницу форума.

Нажмите здесь, если не хотите больше ждать
"; exit;} print"
$name, на указанный Вами емайл был выслан код подтверждения. Для того чтобы зарегистрироваться - введите его на странице, либо перейдите по ссылке - указанной в письме.

Через несколько секунд Вы будете автоматически перемещены на страницу подтверждения регистрации.

Нажмите здесь, если не хотите больше ждать
"; exit; } // Регистрация ШАГ 3 - ввод ключа либо подтверждение по емайлу if ($_GET['event']=="reg3") { if (isset($_GET['email']) and isset($_GET['key'])) {$key=$_GET['key']; $email=$_GET['email'];} else { $frname=""; $frtname=""; include("$fskin/top.html"); addtop(); // подключаем ШАПКУ форума print"
Подтверждение регистрации

Ввод емайла и активационного ключа
Адрес e-mail:
Активационный ключ:
"; exit; } // защиты от взлома по ключу и емайлу if (strlen($key)<6 or strlen($key)>6 or !ctype_digit($key)) exit("$back. Вы ошиблись при вводе ключа. Ключ может содержать только 6 цифр."); $email=stripslashes($email); $email=htmlspecialchars($email); $email=str_replace("|","I",$email); $email=str_replace("\r\n","
",$email); if (strlen($key)>30) exit("Ошибка при вводе емайла"); // Ищем юзера с таким емайлом и ключом. Если есть - меняем статус на пустое поле. $fnomer=null; $email=strtolower($email); unset($fnomer); unset($ok); $lines=file("$datadir/usersdat.php"); $ui=count($lines); $i=$ui; do {$i--; $rdt=explode("|",$lines[$i]); $rdt[3]=strtolower($rdt[3]); if ($rdt[3]===$email and $rdt[13]===$key) {$name=$rdt[0]; $pass=$rdt[1]; $fnomer=$i;} if ($rdt[3]===$email and $rdt[13]==="") $ok="1"; } while($i > 1); if (isset($fnomer)) { // обновление строки юзера в БД $i=$ui; $dt=explode("|", $lines[$fnomer]); $txtdat="$dt[0]|$dt[1]|$dt[2]|$dt[3]|$dt[4]|$dt[5]|$dt[6]|$dt[7]|$dt[8]|$dt[9]|$dt[10]|$dt[11]|$dt[12]||"; $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i<=(sizeof($lines)-1);$i++) { if ($i==$fnomer) fputs($fp,"$txtdat\r\n"); else fputs($fp,$lines[$i]); } fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); // устанавливаем КУКИ $tektime=time(); $wrfcookies="$name|$pass|$tektime|0|"; setcookie("wrfcookies", $wrfcookies, time()+1728000); } if (!isset($fnomer) and !isset($ok)) exit("$back. Вы ошиблись в воде активационного ключа или емайла.
"); if (isset($ok)) $add="Ваша запись уже активирована"; else $add="$name, Вы успешно зарегистрированы"; print"
Спасибо, $add.

Через несколько секунд Вы будете автоматически перемещены на главную страницу форума.

Нажмите здесь, если не хотите больше ждать
"; exit; } // Изменение данных регистрации - сохранение данных if ($_GET['event']=="reregist") { // if ($event =="reregist") if (!isset($_POST['name'])) exit("$back введите Ваше имя!"); $name=str_replace("|","I",$_POST['name']); if ($name=="" or strlen($name)>$maxname) exit("$back ваше имя пустое, или превышает $maxname символов!"); $name=trim($name); // Вырезает ПРОБЕЛьные символы if (preg_match("/[^(\\w)|(\\x7F-\\xFF)|(\\-)]/",$name)) exit("$back Ваше имя содержит запрещённые символы. Разрешены русские и английские буквы, цифры и подчёркивание!!."); if (!isset($_POST['pass'])) exit("$back Вы не ввели пароль!"); $pass=str_replace("|","I",$_POST['pass']); $oldpass=$_POST['oldpass']; // Старый пароль if (strlen($pass)<1 or strlen($pass)>20) exit("$back Вы не ввели пароль. Пароль не должен быть пустым."); if (isset($_POST['email'])) $email=$_POST['email']; else $email=""; $email=strtolower($email); if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email) or $email=="" or strlen($email)>40) exit("$back и введите корректный E-mail адрес!"); if (isset($_POST['dayx'])) $dayx=$_POST['dayx']; else $dayx=""; if (isset($_POST['pol'])) $pol=$_POST['pol']; else $pol=""; if ($pol!="мужчина") $pol="женщина"; if (isset($_POST['icq'])) $icq=$_POST['icq']; else $icq=""; if (isset($_POST['www'])) $www=$_POST['www']; else $www=""; if (isset($_POST['about'])) $about=$_POST['about']; else $about=""; if (isset($_POST['work'])) $work=$_POST['work']; else $work=""; if (isset($_POST['write'])) $write=$_POST['write']; else $write=""; if (isset($_POST['avatar'])) $avatar=$_POST['avatar']; else $avatar=""; $notgood="$back слишком длинное значение переменной "; if (strlen($dayx)>20) {$notgood.="день рождения!"; exit("$notgood");} if (strlen($icq)>10) {$notgood.="ICQ!"; exit("$notgood");} if (strlen($www)>75) {$notgood.="URL сайта!"; exit("$notgood");} if (strlen($about)>75) {$notgood.="откуда!"; exit("$notgood");} if (strlen($work)>75) {$notgood.="интересы!"; exit("$notgood");} if (strlen($write)>75) {$notgood.="подпись!"; exit("$notgood");} $email=str_replace("|","I",$email); $dayx=str_replace("|","I",$dayx); $icq=str_replace("|","I",$icq); $www=str_replace("|","I",$www); $about=str_replace("|","I",$about); $work=str_replace("|","I",$work); $write=str_replace("|","I",$write); $avatar=str_replace("|","I",$avatar); // проверка Логина/Старого пароля $ok=null; $lines=file("$datadir/usersdat.php"); $i=count($lines); unset($ok); do {$i--; $rdt=explode("|", $lines[$i]); if (strtolower($name)===strtolower($rdt[0]) & $oldpass===$rdt[1]) $ok="$i"; // Ищем юзера логин/пароль else { if ($email===$rdt[3]) $bademail="1"; } // Вдруг у когото уже есть такой емайл? } while($i > "1"); if (isset($bademail)) exit("$back. Участник с емайлом $email уже зарегистрирован на форуме!"); if (!isset($ok)) {setcookie("wrfcookies","",time()); exit("$back Ваш новый логин /пароль / Емайл не совпадает НИ с одним из БД.

Смена электронного адреса Запрещена

Ошибка скрипта или попытка взлома - обратитесь к администратору!");} $udt=explode("|",$lines[$ok]); $dayreg=$udt[4]; $kolvomsg=$udt[2]; $status=$udt[13]; // блок загрузки АВАТАРА if ($_FILES['file']['name']!="") { $fotoname = $_FILES['file']['name']; // определяем имя файла $avatar=$fotoname; $fotosize=$_FILES['file']['size']; // Запоминаем размер файла // проверяем расширение $ext = strtolower(substr($fotoname, 1 + strrpos($fotoname, "."))); if (!in_array($ext, $valid_types)) {exit("ФАЙЛ НЕ загружен. Возможные причины:
- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png
- Вы пытаетесь загрузить не графический файл;
- неверно введён адрес или выбран файл;
");} } $text="$name|$pass|$kolvomsg|$email|$dayreg|$dayx|$pol|$icq|$www|$about|$work|$write|$avatar|$status|"; $text=replacer($text); $exd=explode("|",$text); $name=$exd[0]; $pass=$exd[1]; $email=$exd[3]; // Ставим куку юзеру $tektime=time(); $wrfcookies="$name|$pass|$tektime|$tektime|"; setcookie("wrfcookies", $wrfcookies, time()+1728000); if ($_FILES['file']['name']!="") { // ЗАЩИТЫ от ВЗЛОМА // 1. считаем кол-во точек в выражении - если большей одной - СВОБОДЕН! $findtchka=substr_count($fotoname, "."); if ($findtchka>1) exit("ТОЧКА встречается в имени файла $findtchka раз(а). Это ЗАПРЕЩЕНО!
\r\n"); // 2. если в имени есть .php, .html, .htm - свободен! $bag="Извините. В имени ФАйла запрещено использовать .php, .html, .htm"; if (preg_match("/\.php/i",$fotoname)) exit("Вхождение \".php\" найдено. $bag"); if (preg_match("/\.html/i",$fotoname)) exit("Вхождение \".html\" найдено. $bag"); if (preg_match("/\.htm/i",$fotoname)) exit("Вхождение \".htm\" найдено. $bag"); // 3. защищаем от РУССКИХ букв в имени файла и проверяем расширение файла if (!preg_match("/^[a-z0-9\.\-_]+\.(jpg|gif|png|jpeg)+$/is",$fotoname)) exit("Запрещено использовать РУССКИЕ буквы в имени файла!"); // 4. Проверяем, может быть файл с таким именем уже есть на сервере if (file_exists("$avatardir/$fotoname")) exit("Файл с таким именем уже существует на сервере! Измините имя на другое!"); // Конец защит по имени файла // 5. Размер в Кб. < допустимого $fotoksize=round($fotosize/10.24)/100; // размер ЗАГРУЖАЕМОГО ФОТО в Кб. $fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб. if ($fotoksize>$fotomax) exit("Вы превысили допустимый размер фото!
Максимально допустимый размер фото: $fotomax Кб.
Вы пытаетесь загрузить изображение: $fotoksize Кб!"); // 6. "Габариты" аватара > 150 х 150 - ДО свиданья! :-) $size=getimagesize($_FILES['file']['tmp_name']); if ($size[0]>150 or $size[1]>150) exit("Не допустимые габариты аватара. Допустимо лишь 150 х 150 px!"); if ($fotosize>"0" and $fotosize<$max_file_size) { copy($_FILES['file']['tmp_name'], $avatardir."/".$fotoname); print "

Фото УСПЕШНО загружено: $fotoname (Размер: $fotosize байт)";} else {exit("Файл НЕ ЗАГРУЖЕН - ошибка СЕРВЕРА! если вы видите сообщение - [function.getimagesize]: Filename cannot be empty, значит у Вас библиотека GD отсутствует, либо старой версии
Иначе, доступ на папку для загрузки выставлен ошибочно, или по условиям хостинга загрузка файлов через http Вам запрещена! Обратитесь к администратору!");} } // КОНЕЦ блока загрузки аватара $file=file("$datadir/usersdat.php"); $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0);//УДАЛЯЕМ СОДЕРЖИМОЕ ФАЙЛА for ($i=0;$i< sizeof($file);$i++) { if ($ok!=$i) fputs($fp,$file[$i]); else fputs($fp,"$text\r\n"); } fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); print"
Спасибо, $name, Ваши данные успешно изменены.

Через несколько секунд Вы будете автоматически перемещены на главную страницу форума.

Нажмите здесь, если не хотите больше ждать
"; exit; } if ($_GET['event'] =="givmepassword") { // отсылает утеряные данные на мыло // защита от злостного хакера $text=strtolower($_POST['myemail']); $myemail=replacer($text); $lines=file("$datadir/usersdat.php"); $i=count($lines); $regenter=""; $myname=""; $mypassword=""; // проходим по всем пользователям и сверяем данные do {$i--; $rdt=explode("|", $lines[$i]); if (isset($rdt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим $rdt[3]=strtolower($rdt[3]); if ($myemail==$rdt[3]) {$myname=$rdt[0]; $mypassword=$rdt[1];} } //if } while($i > "1"); // отправка пользователю его имени и пароля на мыло if ($myname!="") { $headers=null; // Настройки для отправки писем $headers.="Content-Type: text/plain; charset=windows-1251\r\n"; $headers.="From: <".$adminemail.">\r\n"; $headers.="X-Mailer: PHP/".phpversion()."\r\n"; $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $furl="http://$host$self"; $furl=str_replace("tools.php", "index.php", $furl); // Собираем всю информацию в теле письма $allmsg=$fname.' (данные регистрации)'.chr(13).chr(10). 'Вы запросили Имя и Пароль доступа к форуму по адресу: '.$furl.chr(13).chr(10).chr(13).chr(10). 'Ваше Имя: '.$myname.chr(13).chr(10). 'Ваш пароль: '.$mypassword.chr(13).chr(10).chr(13).chr(10).chr(13).chr(10). '* Это письмо сгенерировано роботом, отвечать на него не нужно.'.chr(13).chr(10); // Отправляем письмо майлеру на съедение ;-) mail("$myemail", "=?windows-1251?B?" . base64_encode("$fname (регистрационные данные)") . "?=", $allmsg, $headers); // если есть участник с введённым емайлом $msgtoopr="$myname, на Ваш электронный адрес выслано сообщение с именем и паролем доступа к форуму."; } // Если нет такого емайла в БД else $msgtoopr="Участника с таким емайлом
на форуме не зарегистрировано!"; print "


$msgtoopr Через несколько секунд Вы будете автоматически перемещены на главную страницу. Если этого не происходит, нажмите здесь.



"; exit; } if ($_GET['event']=="moresmiles") { // ДОБАВЛЕНИЕ ВСЕХ смайлов из директории SMILE $lines=null; unset($lines); if (!is_dir("smile/")) exit("папка smile не существует."); $i=0; if ($handle = opendir("smile/")) { while (($file = readdir($handle)) !== false) if (!is_dir($file)) {$lines[$i]=$file; $i++;} closedir($handle); } if (!isset($lines)) exit("В папке smile НЕТ смайлов! Обратитесь к админу - пусть скинет."); $itogo=count($lines); $k=0; $text=null; $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; $forurl="http://$host$self"; $forurl=str_replace("/tools.php", "", $forurl); print"

Дополнительные смайлы

"; do { $rdt=explode(".",$lines[$k]); if ($rdt[1]=="jpg" or $rdt[1]=="gif") {print"  ";} $k++; } while ($k<$itogo); print"
Закрыть окно

P.S. Администратор! Чтобы здесь появились новые смайлы - просто закачай любые смайлы в папку $forurl/smile/"; exit; } // ----- Шапка для всех страниц форума if (isset($_COOKIE['wrfcookies'])) { $wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc); $wrfc=stripslashes($wrfc); $wrfc = explode("|", $wrfc); $wrfname=$wrfc[0];$wrfpass=$wrfc[1];$wrftime1=$wrfc[2];$wrftime2=$wrfc[3]; if (time()>($wrftime1+50)) {$tektime=time();$wrfcookies="$wrfc[0]|$wrfc[1]|$tektime|$wrftime1";setcookie("wrfcookies", $wrfcookies, time()+1728000);}} else {unset($wrfname); unset($wrfpass);} // ----- $frname=""; $frtname=""; include("$fskin/top.html"); addtop(); // подключаем ШАПКУ форума // считываем имя последнего зарегистрировавшегося $userlines=file("$datadir/usersdat.php"); $ui=count($userlines)-1; $tdt=explode("|", $userlines[$ui]); if ($_GET['event']=="who") { // просмотр всех участников форума // если незареган - не пускаем if (!isset($_COOKIE['wrfcookies'])) exit("



Доступ ограничен


Для просмотра данных пользователей необходимо зарегистрироваться.


$back


"); $t1="row1"; $alllines=file("$datadir/usersdat.php"); $allmaxi=count($alllines)-1; $i=1; $j=0; $flag=0; if (isset($_GET['pol'])) $pol=replacer($_GET['pol']); else $pol=""; if (isset($_GET['interes'])) $interes=replacer($_GET['interes']); else $interes=""; if (isset($_GET['url'])) $url=replacer($_GET['url']); else $url=""; if (isset($_GET['from'])) $from=replacer($_GET['from']); else $from=""; if($pol!="" or $interes!="" or $url!="" or $from!="") { do {$dt=explode("|", $alllines[$i]); // Если есть совпадение в строке - присваиваем флагу значение 1 if ($dt[6]!="" and $pol!="") {if (stristr($dt[6],$pol)) $flag=1;} // если строка НЕ пуста if ($dt[10]!="" and $interes!="") {if (stristr($dt[10],$interes)) $flag=1;} if ($dt[8]!="" and $url!="") {if (stristr($dt[8],$url)) $flag=1;} if ($dt[9]!="" and $from!="") {if (stristr($dt[9],$from)) $flag=1;} // если было хоть одно соврадение, включаем участника в массив участников if ($flag==1) {$lines[$j]=$alllines[$i]; $flag=0; $j++;} $i++; } while($i<$allmaxi); $fadd="&pol=$pol&interes=$interes&url=$url&from=$from"; } else {$fadd=""; $lines=$alllines;} // если поиск не задан, сразу присваиваем массив if (!isset($lines)) $maxi=0; else $maxi=count($lines)-1; print"
Фильтр по: Полу: Интересам: Сайту: Откуда:
"; echo''; if ($ui=="0") {print""; } else { // Исключаем ошибку вызова несуществующей страницы if (!isset($_GET['page'])) $page=1; else { $page=$_GET['page']; if (!ctype_digit($page)) $page=1; if ($page<1) $page=1; } $maxpage=ceil(($maxi+1)/$uq); if ($page>$maxpage) $page=$maxpage; $fm=$uq*($page-1); if ($fm>$maxi) $fm=$maxi-$uq; $lm=$fm+$uq; if ($lm>$maxi) $lm=$maxi+1; if (isset($lines)) { do {$dt=explode("|", $lines[$fm]); $fm++; $num=$fm-1; if (isset($dt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим $codename=urlencode($dt[0]); // Кодируем имя в СПЕЦФОРМАТ, для поддержки корректной передачи имени через GET-запрос. if (isset($wrfname)) {$wfn="$dt[0]"; $mls="";} else {$wfn="$dt[0]"; $mls="заблокировано";} if (strlen($dt[13])=="6" and ctype_digit($dt[13])) $dt[13]="ожидание активации"; if (strlen($dt[13])<2) $dt[13]=$users; if ($dt[6]=="мужчина") $add="polm.gif"; else $add="polg.gif"; print""; if ($t1=="row1") $t1="row2"; else $t1="row1"; } // если строчка потерялась } while($fm < $lm); } // if isset($lines) } // конец Если файл userdat.php пуст echo'
Имя Статус ЛС на Е-майл Регистрация День рождения Интересы Сайт Откуда
Участников не зарегистрировано
$num $wfn $dt[13] $mls $dt[4] $dt[5] $dt[10] $dt[8] $dt[9]

Страницы:  '; // выводим СПИСОК СТРАНИЦ ВНИЗУ if ($page>=4 and $maxpage>5) print "1 ... "; $f1=$page+2; $f2=$page-2; if ($page==1) { $f1=$page+4; $f2=$page; } if ($page==2) { $f1=$page+3; $f2=$page-1; } if ($page==$maxpage) { $f1=$page; $f2=$page-4; } if ($page==$maxpage-1) { $f1=$page+1; $f2=$page-3; } if ($maxpage<4) {$f1=$maxpage; $f2=1;} for($i=$f2; $i<=$f1; $i++) { if ($page==$i) print "$i  "; else print "$i  "; } if ($page<=$maxpage-3 and $maxpage>5) print "... $maxpage"; print "Всего зарегистрировано участников - $ui

";} if ($_GET['event'] =="profile") { if (!isset($_GET['pname'])) exit("Попытка взлома."); $pname=urldecode($_GET['pname']); // РАСКОДИРУЕМ имя пользователя, пришедшее из GET-запроса. $lines=file("$datadir/usersdat.php"); $i = count($lines); $use="0"; do {$i--; $rdt=explode("|", $lines[$i]); if (isset($rdt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим if (strlen($rdt[13])=="6" and ctype_digit($rdt[13])) $rdt[13]="ожидание активации"; if ($pname===$rdt[0]) { if (isset($wrfname) & isset($wrfpass)) { $wrfname=replacer($wrfname); $wrfpass=replacer($wrfpass); if ($wrfname===$rdt[0] & $wrfpass===$rdt[1]) { print "
Регистрационные данные

"; print "
Регистрационная информация
Поля отмеченные * обязательны к заполнению, если не указано обратное
Имя участника: *
Русские ники РАЗРЕШЕНЫ
$rdt[0]
Ваш пароль: *
Адрес e-mail: *
Введите существующий электронный адрес! Форум защищён от роботов-спамеров.
 
Немного о себе
Эта информация необязательна
Дата регистрации:$rdt[4]
Ваш пол:
$rdt[6]
День варенья:
Введите день рождения в формате: ДД.ММ.ГГГГГ, если не секрет.
Номер в ICQ:
Введите номер ICQ, если он у Вас есть.
Домашняя страничка:
Если у Вас есть домашняя или любимая страничка в Интернете, введите URL этой странички.
Откуда:
Введите место жительства (Страна, Область, Город).
Интересы:
Вы можете написать о ваших интересах
Подпись:
Введите Вашу подпись, не используйте HTML
Аватар:
Выберите автарар (картинку), которая будет отображаться рядом с вашим именем.
"; $images=null; unset($images); if (!is_file("avatars/$rdt[12]")) $rdt[12]="noavatar.gif"; $root = str_replace( '\\', '/', getcwd() ) . '/'; $dirtoopen = $root.'avatars'; if ( !($images = get_dir($dirtoopen,'*.{gif,png,jpeg,jpg}',GLOB_BRACE)) ) { $images=array(); $handle=opendir($dirtoopen); while ( false !== ($file = readdir($handle)) ) if (strstr($file,'.gif') || strstr($file,'.jpg')) $images[]=$file; closedir($handle); } $selecthtml =""; foreach ($images as $file) { if ($file == $rdt[12]) {$selecthtml .= '\n"; $currentface = $rdt[12];} else {$selecthtml .= '\n";} } print "
Загрузить свой АВАТАР:
Введите локальный путь к Вашему аватару.
Разрешается использовать картинки:
- разрешение не более 120 х 120,
- расширением только gif, png, jpg или jpeg,
- размером менее $maxfsize Кб.
"; $use="1"; } if ($use!="1") { $ufile="$datadir/userstat.dat"; $ulines=file("$ufile"); $ui=count($ulines)-1; $msgitogo=0; for ($i=0;$i<=$ui;$i++) {$udt=explode("|",$ulines[$i]); $msgitogo=$msgitogo+$udt[2]; if ($udt[0]==$rdt[0]) {$msguser=$udt[2];}} $msgaktiv=round(10000*$msguser/$msgitogo)/100; $akt=explode(".",$rdt[4]); $aktiv=mktime(0,0,0,$akt[1],$akt[0],$akt[2]); $tekdt=mktime(); $aktiv=round(($tekdt-$aktiv)/86400); $aktiv=round(100*$msguser/$aktiv)/100; if (strlen($rdt[13])<2) $rdt[13]=$users; if (is_file("avatars/$rdt[12]")) $avpr="$rdt[12]"; else $avpr="noavatar.gif"; print "
Профиль участника

Регистрационная информация
Имя участника:$rdt[0]
Отправить личное сообщение на e-mail:
Дата регистрации:$rdt[4]
Активность:Всего сообщений: $msguser [$msgaktiv% от общего числа / $aktiv сообщений в сутки]
Статус:$rdt[13]
Пол:$rdt[6]
День Варенья:
$rdt[5]
Номер в ICQ:
$rdt[7]
Домашняя страничка:$rdt[8]
Откуда (Место жительства, город, страна.):$rdt[9]
Интересы:$rdt[10]
Подпись:$rdt[11]
Аватар:

"; $use="1";} } } } // if } while($i > "1"); if (!isset($wrfname)) exit("

Только зарегистрированные участники форума могут просматривать данные профиля!"); // БД такого ЮЗЕРА НЕТ - его админ удалил if ($use!="1") { echo'



Уважаемый посетитель!

Извините, но участник с таким - логином на форуме не зарегистрирован.

Скорее всего, его удалил администратор.

Перейти на главную страницу форума можно по этой ссылке












'; } } if ($_GET['event']=="reg") { if (!isset($_POST['rules'])) { echo'
Правила и условия регистрации

Правила работы с форумом
'; if (is_file("pravila.html")) include"pravila.html"; echo'
Я ознакомился с правилами и условиями, и принимаю их.
'; } else { print"
Регистрация на форуме

"; //-А-Н-Т-И-С-П-А-М- if ($antispam!="0") { // Вывод изображений на экран (все кодированы - робот не пройдёт) if (array_key_exists("image", $_REQUEST)) { $num=$_REQUEST["image"]; for ($i=0; $i<10; $i++) {if (md5($i+$absrand)==$num) {imgwr($st,$i); die();}} } $xkey=""; mt_srand(time()+(double)microtime()*1000000); echo'
Регистрационная информация
Имя участника:
Разрешено использовать только русские, латинские буквы, цифры и знак подчёркивания
Ваш пароль:
Адрес e-mail:
Введите существующий электронный адрес! На Ваш емайл будет отправлено сообщение с кодом активации.
Ваш пол:
мужчина   женщина
Защитный код:
'; for ($i=0; $i<$maxkey; $i++) { $snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$absrand); $phpself=$_SERVER["PHP_SELF"]; echo "\n"; $xkey=$xkey.$snum[$i]; } $xkey=md5("$xkey+$absrand"); print" (введите число, указанное на картинке) "; } // if $antispam!="0" //-К-О-Н-Е-Ц--А-Н-Т-И-С-П-А-М-А- echo'
* Все поля обязательны к заполнению
** Ваш пароль будет также отправлен на адрес электронной почты, который Вы определите
'; } } if ($_GET['event']=="find") { // ПОИСК $minfindme="3"; //минимальное кол-во символов в слове для поиска print"
Поиск
Запрос: Тип: С учётом РЕГИСТРА
Язык запросов:
  • "И" - должны присутствовать оба слова;

  • "ИЛИ" - есть ХОТЯ БЫ одно из слов;

  • "Вся фраза целиком" - в искомом документе ищите фразу на 100% соответствующую вашему запросу;


  • "С учётом РЕГИСТРА" - поиск ведётся с учётом введённого ВАМИ РЕГИСТРА;


Скрипт ищет все данные, которые начинаются с введенной вами строки. Например, при запросе "форум" будут найдены слова "форум", "форумы", "форумом" и многие другие.


"; print "Ограничение на поиск:
- минимальное кол-во символов: $minfindme"; } if (isset($_GET['find'])) { $minfindme="3"; //минимальное кол-во символов в слове для поиска $time=explode(' ', microtime()); $start_time=$time[1]+$time[0]; // считываем начальное время запуска поиска $gdefinder="1"; $ftype=$_POST['ftype']; if (!ctype_digit($ftype) or strlen($ftype)>2) exit("$back. Попытка взлома. Хакерам здесь не место."); if (!isset($_POST['withregistr'])) $withregistr="0"; else $withregistr="1"; // Защита от взлома $text=$_POST['findme']; $text=replacer($text); $findmeword=explode(" ",$text); // Разбиваем $findme на слова $wordsitogo=count($findmeword); $findme=trim($text); // Вырезает ПРОБЕЛьные символы if ($findme == "" || strlen($findme) < $minfindme) exit("$back Ваш запрос пуст, или менее $minfindme символов!
"); // Открываем файл с темами формума и запоминаем имена файлов с сообщениями setlocale(LC_ALL,'ru_RU.CP1251'); // ! РАЗРЕШАЕМ РАБОТУ ФУНКЦИЙ, работающих с регистором и с РУССКИМИ БУКВАМИ // ПЕРВЫЙ цикл - считаем кол-во форумов (записываем в переменную $itogofid) $mainlines = file("$datadir/mainforum.dat");$i=count($mainlines); $itogofid="0";$number="0"; $oldid="0"; $nump="0"; do {$i--; $dt=explode("|", $mainlines[$i]); if ($dt[1]!="razdel") { $maxzd=$dt[12]; if (!ctype_digit($maxzd)) $maxzd=0; } // считываем ЗВЁЗДы раздела из файла if ($dt[1]!="razdel" and $maxzd<1) {$itogofid++; $fids[$itogofid]=$dt[0];} // $itogofid - общее кол-во форумов } while($i > "0"); do { $fid=$fids[$itogofid]; // ВТОРОЙ цикл - открываем файл с топиком (если он существует) и сохраняем в переменную $topicsid все имена тем if (is_file("$datadir/topic$fid.dat")) { $msglines=file("$datadir/topic$fid.dat"); if (count($msglines)>0) { $lines = file("$datadir/topic$fid.dat"); $i=count($lines); do {$i--; $dt = explode("|", $lines[$i]); $topicsid[$i]=$dt[7];} while($i > "0"); } // ТРЕТИЙ цикл - последовательно открываем каждую тему if (isset($topicsid)) { $ii=count($topicsid); do {$ii--; $id = str_replace("\r\n","",$topicsid[$ii]); if (is_file("$datadir/$id.dat")) { // Если файл есть? Бывает, что файлы с сообщениями бьются, тогда при пересчёте они удаляются. $file=file("$datadir/$id.dat"); $iii=count($file); // ЧЕТВЁРТЫЙ цикл - последовательно ищем в каждой теме искомое сообщение if ($iii>0) { // если файл с сообщениями НЕ ПУСТОЙ do {$iii--; $lines = file("$datadir/$id.dat"); $dt = explode("|", $lines[$iii]); if (!isset($dt[4])) $dt[4]=" "; if ($gdefinder=="0") {$msgmass=array($dt[2],$dt[3],$dt[4]); $gi="3"; $add="ях Автор, Текст, Заголовок ";} if ($gdefinder=="1") {$msgmass=array($dt[4]); $gi="1"; $add="е Текст ";} if ($gdefinder=="2") {$msgmass=array($dt[3],$dt[4]); $gi="2"; $add="ях Текст и Заголовок ";} if ($gdefinder=="3") {$msgmass=array($dt[2]); $gi="1"; $add="е Автор ";} if ($gdefinder=="4") {$msgmass=array($dt[3]); $gi="1"; $add="е Заголовок ";} // Цикл по местам поиска (0,1,2,3,4) do {$gi--; $msg=$dt[4]; $msdat=$msgmass[$gi]; $stroka="0"; $wi=$wordsitogo; // ЦИКЛ по КАЖДОМУ слову запроса ! do {$wi--; // БЛОК УСЛОВИЙ ПОИСКА if ($withregistr!="1") // регистронезависимый поиск - cимвол "i" после закрывающего ограничителя шаблона - / { if ($ftype=="2") { if (stristr($msdat,$findme)) // ПОИСК по "ВСЕЙ ФРАЗЕ ЦЕЛИКОМ" БЕЗ учёта регистра { $stroka++; $msg=eregi_replace($findme," $findme ",$msg); } } else { $str1=strtolower($msdat); $str2=strtolower($findmeword[$wi]); if ($str2!="" and strlen($str2) >= $minfindme) { if (stristr($str1,$str2)) // ПОИСК БЕЗ учёта регистра при равных прочих условиях { $stroka++; $msg=eregi_replace($findmeword[$wi]," $findmeword[$wi] ",$msg); } } } } else // if ($withregistr!="1") { if ($ftype=="2") { if (strstr($msdat,$findme)) // ПОИСК по "ВСЕЙ ФРАЗЕ ЦЕЛИКОМ" C учёта РЕГИСТРА { $stroka++; $msg=eregi_replace($findme," $findme ",$msg); } } else { if ($msdat!="" and strlen($findmeword[$wi]) >= $minfindme) { if (strstr($msdat,$findmeword[$wi])) // ПОИСК С учётом РЕГИСТРА при равных прочих условиях { $stroka++; $msg=eregi_replace($findmeword[$wi]," $findmeword[$wi] ",$msg); } } } } // if ($withregistr!="1") } while($wi > "0"); // конец ЦИКЛа по КАЖДОМУ слову запроса // Подготавливаем результирующее сообщение, и если результат соответствует условиям - выводим его if ($ftype=="0") { if ($stroka==$wordsitogo) $printflag="1"; } if ($ftype=="1") { if ($stroka>"0") $printflag="1"; } if ($ftype=="2") { if ($stroka==$wordsitogo) $printflag="1"; } if (!isset($printflag)) $printflag="0"; if ($printflag=="1") { $msg=str_replace("
", "   ", $msg); // заменяем в сообщении
на пару пробелов if (strlen($msg)>150) { $ma=strpos($msg,""); if ($ma > 50) $ma=$ma-50; else $ma=0; $mb=strrpos($msg,">b/<"); if (($mb+50) > strlen($msg)) $mb=strlen($msg); else $mb=$mb+50; $msgtowrite="..."; $msgtowrite.=substr($msg,$ma,$mb); $msgtowrite.="..."; $msgtowrite=substr($msg,0,400); } else $msgtowrite=$msg; if (!isset($m)) { print"
По запросу '$findme' в пол$add найдено:

Повторить поиск
Запрос:

"; $m="1"; } if ($iii>$qq) {$in=$iii+2; $page=ceil($in/$qq);} else $page="1"; // расчитываем верную страницу и номер сообщения if ($oldid!=$id and $number<50) { $number++; $msgnumber=$iii; if ($nump>1) $anp="$nump"; else $anp="1"; if ($number>1) print""; print ""; $printflag="0"; $nump="0";} else $nump++; $oldid=$id; } // if $printflag==1 } while($gi > "0"); // конец ЦИКЛа по МЕСТУ поиска } while($iii > "0"); } // если файл с сообщениями НЕПУСТОЙ } // if is_file("$datadir/$id.dat") } while($ii > "0"); } // if isset($topicsid) } // if файл topic$fid.dat НЕ пуст $itogofid--; } while($itogofid > "0"); if (!isset($m)) echo'
Заголовокчасть сообщенияСовпадений
в теме
$anp
$number $dt[3] $msgtowrite
По вашему запросу ничего не найдено.
'; $time=explode(' ',microtime()); $seconds=($time[1]+$time[0]-$start_time); echo "

".str_replace("%1", sprintf("%01.3f", $seconds), "Время поиска: %1 секунд.")."

"; } } // if isset($_GET['event']) - всё, что делается при наличии переменной $event echo'
Powered by WR-Forum Professional © 1.9
'; // функция используется для отображения аватаров function get_dir($path = './', $mask = '*.php', $mode = GLOB_NOSORT) { if ( version_compare( phpversion(), '4.3.0', '>=' ) ) {if ( chdir($path) ) {$temp = glob($mask,$mode); return $temp;}} return false;} ?>