'; if ($wrfname!=null) { $codename=urlencode($wrfname); // Кодируем имя в СПЕЦФОРМАТ, для поддержки корректной передачи имени через GET-запрос. print "Ваш профиль  Выход [$wrfname]";} else {print " Регистрация   Вход";} if (is_file("data/tiptop.html")) include("data/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=preg_replace("/\n\n/",'

',$text); $text=preg_replace("/\n/",'
',$text); $text=preg_replace("/\\\$/",'$',$text); $text=preg_replace("/\r/",'',$text); $text=preg_replace("/\\\/",'\',$text); // если magic_quotes включена - чистим везде СЛЭШи в этих случаях: одиночные (') и двойные кавычки ("), обратный слеш (\) if (get_magic_quotes_gpc()) { $text=str_replace("\"",'"',$text); $text=str_replace("\'",'\'',$text); $text=str_replace("\\",'\',$text); } $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; } function unreplacer($text) { // ФУНКЦИЯ замены спецсимволов конца строки на обычные $text=str_replace("<br>","
",$text); return $text;} function nospam() { global $max_key,$rand_key,$antispam2012,$antispam2012v; // Функция АНТИСПАМ 2011+2012 if (array_key_exists("image", $_REQUEST)) { $num=replacer($_REQUEST["image"]); for ($i=0; $i<10; $i++) {if (md5("$i+$rand_key")==$num) {imgwr($st,$i); die();}} } $xkey=""; mt_srand(time()+(double)microtime()*1000000); $dopkod=mktime(0,0,0,date("m"),date("d"),date("Y")); // доп.код: меняется каждые 24 часа $stime=md5("$dopkod+$rand_key");// доп.код echo''; $nummax=0; for ($i=0; $i<=$max_key; $i++) { $snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$rand_key+$dopkod); $secret=mt_rand(0,1); $styles='bgcolor=#FFFF00'; if ($nummax<3) { if ($secret==1 or $i==0) {$styles='bgcolor=#77C9FF'; $xkey=$xkey.$snum[$i]; $nummax++;}} echo "\r\n";} $xkey=md5("$xkey+$rand_key+$dopkod"); //число + ключ из data/config.php + код меняющийся кажые 24 часа print"
Защитный код:\n (введите цифры, которые на голубом фоне)
"; if ($antispam2012==TRUE) print"Ответ на вопрос: ($antispam2012v)"; return; } // ВСЁ, что делается при наличии переменной $_GET['event'] if(isset($_GET['event'])) { if ($_GET['event']=="login") { // ВХОД на форум УЧАСТНИКОМ $frname="Вход на форум .:. "; $frtname=""; include("data/top.html"); addtop(); // подключаем ШАПКУ форума echo '



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



Забыли пароль? Введите на выбор:
Ваш Емайл: *
Имя (Ник):
* На Ваш электронный адрес будет выслана
информация для восстановления учётной записи.





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


Закрыть окно
"); if (!isset($_POST['email'])) exit("Нет данных переменной email."); if (!isset($_POST['name'])) exit("Нет данных переменной name."); $uemail=replacer($_POST['email']); $uname=replacer($_POST['name']); $id=""; $fid=""; if (isset($_POST['id'])) {$id=replacer($_POST['id']); if (strlen($id)>0) $fid=substr($id,0,3);} print " Отправление сообщения автору объявления
Получатель сообщения: $uname
  Ваше Имя:* и E-mail:*
  Сообщение:*
"; if ($antispam==TRUE and !isset($wrfname)) nospam(); // АНТИСПАМ ! if ($id!="") print""; echo'
'; exit; } // ШАГ 2 отправки сообщения пользователю if ($_GET['event']=="mailtogo") { $name=replacer($_POST['name']); $email=replacer($_POST['email']); $msg=replacer($_POST['msg']); if (isset($_POST['fid'])) $fid=replacer($_POST['fid']); if (isset($_POST['id'])) $id=replacer($_POST['id']); $uname=replacer($_POST['uname']); $uemail=replacer($_POST['uemail']); //--А-Н-Т-И-С-П-А-М--проверка кода-- if ($antispam==TRUE) { if (!isset($_POST['usernum']) or !isset($_POST['xkey']) or !isset($_POST['stime']) ) exit("данные из формы не поступили!"); $usernum=replacer($_POST['usernum']); $xkey=replacer($_POST['xkey']); $stime=replacer($_POST['stime']); $dopkod=mktime(0,0,0,date("m"),date("d"),date("Y")); // доп.код. Меняется каждые 24 часа $usertime=md5("$dopkod+$rand_key");// доп.код $userkey=md5("$usernum+$rand_key+$dopkod"); if (($usertime!=$stime) or ($userkey!=$xkey)) exit("введён ОШИБОЧНЫЙ код!");} if (!preg_match('/^([0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+[a-zA-Z]{2,9})$/si',$email) and strlen($email)>30 and $email!="") exit("$back и введите корректный E-mail адрес!
"); if (!preg_match('/^([0-9a-zA-Z]([-.w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-w]*[0-9a-zA-Z].)+[a-zA-Z]{2,9})$/si',$uemail) and strlen($uemail)>30 and $uemail!="") exit("$back у пользователя задан несуществующий адрес!
"); if ($name=="") exit("$back Вы не ввели своё имя!"); if ($msg=="") exit("$back Вы не ввели сообщение!"); $text="$name|$msg|$uname|$email|"; $text=str_replace("\r\n","
",$text); $exd=explode("|",$text); $name=$exd[0]; $msg=$exd[1]; $uname=$exd[2]; $email=$exd[3]; $headers=null; // Настройки для отправки писем $headers.="From: $name $email\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/html; charset=UTF-8"; // Собираем всю информацию в теле письма $allmsg="

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

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


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



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


Закрыть окно
'); } // проверка имени/пароля и вход на форум if ($_GET['event']=="regenter") { if (!isset($_POST['name']) & !isset($_POST['pass'])) exit("$back введите имя и пароль!"); $name=str_replace("|","I",$_POST['name']); $pass=replacer($_POST['pass']); $name=replacer($name); $name=strtolower($name); if (strlen($name)<1 or strlen($pass)<1) exit("$back Вы не ввели имя или пароль!"); // проходим по всем пользователям и сверяем данные $lines=file("$datadir/user.php"); $i=count($lines); $regenter=FALSE; $pass=md5("$pass"); do {$i--; $rdt=explode("|",$lines[$i]); if (isset($rdt[1])) { // Если строчка НЕ ПУСТА if ($name===strtolower($rdt[2]) & $pass===$rdt[3]) { if ($rdt[16]==FALSE) exit("$back. Ваша учётная запись не активирована. Для активации Вам необходимо перейти по ссылке, которая должна прийти Вам на емайл."); $regenter=TRUE; $tektime=time(); $wrfcookies="$rdt[2]|$rdt[3]|$tektime|$tektime|"; setcookie("wrfcookies", $wrfcookies, time()+1728000); }} // if-ы } while($i > "1"); if ($regenter==FALSE) exit("$back Ваш данные НЕ верны!"); Header("Location: index.php"); } // Регистрация НОВЫЙ ШАГ 2!! отправка на мыл подтверждения и сохранение в БД if ($_GET['event']=="regnxt") { 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==TRUE) { if (!isset($_POST['usernum']) or !isset($_POST['xkey']) or !isset($_POST['stime']) ) exit("данные из формы не поступили!"); $usernum=replacer($_POST['usernum']); $xkey=replacer($_POST['xkey']); $stime=replacer($_POST['stime']); $dopkod=mktime(0,0,0,date("m"),date("d"),date("Y")); // доп.код. Меняется каждые 24 часа $usertime=md5("$dopkod+$rand_key");// доп.код $userkey=md5("$usernum+$rand_key+$dopkod"); if (($usertime!=$stime) or ($userkey!=$xkey)) exit("введён ОШИБОЧНЫЙ код!"); // АНТИСПАМ 2012! if ($antispam2012==TRUE) { $ao=replacer($_POST['antispam2012o']); if (strtolower($antispam2012o)!=strtolower($ao) or strlen($ao)<1) exit("введён ошибочный ответ на вопрос!");} } 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!="1") $pol="0"; $email=str_replace("|","I",$email); $activ="0"; $key=mt_rand(100000,999999); if ($activation==FALSE) { $key=""; $activ="1";} // КОЛДУЕМ рандомный КОД активации? если не требуется - обнуляем $rn=mt_rand(10000,99999); $tektime=time(); $pass=replacer($pass); $ps=md5("$pass"); $text="$rn|$tektime|$name|$ps|0|$email|$pol||0|||||||$key|$activ|"; $text=replacer($text); $exd=explode("|",$text); $name=$exd[2]; $email=$exd[5]; $ip=$_SERVER['REMOTE_ADDR']; // определяем IP юзера if ($name===$pass) exit("$back. В целях Вашей безопасности, запрещено равенство имени и пароля!"); // Ищем юзера с таким логином или емайлом $loginsm=strtolower($name); $lines=file("$datadir/user.php"); $i=count($lines); if ($i>"1") { do {$i--; $rdt=explode("|",$lines[$i]); $rdt[2]=strtolower($rdt[2]); if ($rdt[2]===$loginsm) {$bad="1"; $er="логином";} if ($rdt[5]===$email) {$bad="1"; $er="емайлом";} } while($i > 1); if (isset($bad)) exit("$back. Участник с таким $er уже зарегистрирован на форуме!"); } // отправка пользователю КОДА АКТИВАЦИИ $headers=null; // Настройки для отправки писем $headers.="From: robot форума <$adminemail>\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-type: text/plain; charset=UTF-8"; // Собираем всю информацию в теле письма if ($activation==TRUE) { $allmsg=$forum_name.' (подтверждение регистрации)'.chr(13).chr(10). 'Подтвердите регистрациию на форуме, для этого перейдите по ссылке: '.$forum_url.'tools.php?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).chr(13).chr(10). 'Сохраните письмо с паролем или запомните его.'.chr(13).chr(10). 'Пароли на форуме хранятся в зашифрованном виде, увидеть пароль невозможно.'.chr(13).chr(10). 'Для восстановления доступа к форуму Вам придётся воспользоваться системой восстановления пароля.'.chr(13).chr(10); } else { $allmsg=$forum_name.' (данные регистрации)'.chr(13).chr(10). 'Вы успешно зарегистрированы на форуме: '.$forum_url.chr(13).chr(10). 'Ваше Имя: '.$name.chr(13).chr(10). 'Ваш пароль: '.$pass.chr(13).chr(10). 'Ваш E-mail: '.$email.chr(13).chr(10); } // Отправляем письмо майлеру на съедение ;-) mail("$email", "=?UTF-8?B?" . base64_encode("$forum_name (подтверждение регистрации)") . "?=", $allmsg, $headers); sleep(1); // пауза 1 секунду, чтобы прошли оба письма if ($admin_send==TRUE) {mail("$adminemail", "=?UTF-8?B?" . base64_encode("$forum_name (Новый участник)") . "?=", $allmsg, $headers);} $file=file("$datadir/user.php"); $fp=fopen("$datadir/user.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,"$rn||$name|0||0|0|0|0||$ip||\r\n"); fflush ($fp);//очищение файлового буфера flock ($fp,LOCK_UN); fclose($fp); // ЕСЛИ АКТИВАЦИИ НЕ ТРЕБУЕТСЯ, то устанавливаем КУКИ if ($activation!=TRUE) { $tektime=time(); $wrfcookies="$name|$ps|$tektime|$tektime|"; 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("data/top.html"); addtop(); // подключаем ШАПКУ форума exit('
Подтверждение регистрации*

Ввод емайла и активационного ключа
Адрес e-mail:
Активационный ключ:
* Вы можете либо ввести емайл и ключ, который пришёл по почте, либо перейти по активационной ссылке в письме.
');} // защиты от взлома по ключу и емайлу if (strlen($key)<6 or strlen($key)>6 or !ctype_digit($key)) exit("$back. Вы ошиблись при вводе ключа. Ключ может содержать только 6 цифр."); $email=replacer($email); $email=str_replace("|","I",$email); $email=str_replace("\r\n","
",$email); if (strlen($email)>35) exit("Ошибка при вводе емайла"); // Ищем юзера с таким емайлом и ключом. Если есть - меняем статус на пустое поле. $fnomer=null; $email=strtolower($email); unset($fnomer); unset($ok); $lines=file("$datadir/user.php"); $ui=count($lines); $i=$ui; do {$i--; $rdt=explode("|",$lines[$i]); $rdt[5]=strtolower($rdt[5]); if ($rdt[5]===$email and $rdt[15]===$key) {$name=$rdt[2]; $pass=$rdt[3]; $fnomer=$i;} if ($rdt[5]===$email and $rdt[16]==TRUE) $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]|$dt[13]|$dt[14]|noavatar.gif|1|"; $fp=fopen("$datadir/user.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'] =="givmepassword") { // отсылает утеряные данные на мыло // защита от злостного хакера if (!isset($_POST['myemail']) or !isset($_POST['myname'])) exit("Из формы НЕ поступили данные!"); $myemail=strtolower($_POST['myemail']); $myemail=replacer($myemail); $myname =strtolower($_POST['myname']); $myname =replacer($myname); if (strlen($myemail)>40 or strlen($myname)>40) exit("Длина имени или емайл должна быть менее 40 символов!"); // ГЕНЕРИРУЕМ новый пароль юзера $len=8; // количество символов в новом пароле $base='ABCDEFGHKLMNPQRSTWXYZabcdefghjkmnpqrstwxyz123456789'; $max=strlen($base)-1; $pass=''; mt_srand((double)microtime()*1000000); while (strlen($pass)<$len) $pass.=$base{mt_rand(0,$max)}; $lines=file("$datadir/user.php"); $record="\r\n"; $itogo=count($lines); $i=1; $regenter=FALSE; do {$rdt=explode("|",$lines[$i]); // проходим по всем пользователям и сверяем данные if (isset($rdt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим $rdt[5]=strtolower($rdt[5]); $rdt[2]=strtolower($rdt[2]); if ($myemail===$rdt[5] or $myname===$rdt[2]) {$regenter=TRUE; $myemail=$rdt[5]; $myname=$rdt[2]; $passmd5=md5("$pass"); $lines[$i]=str_replace("$rdt[3]","$passmd5",$lines[$i]);} } //if isset $record.=$lines[$i]; $i++; } while($i < $itogo); // узнаём IP-запрашивающего пароль $ip=""; $ip=(isset($_SERVER['REMOTE_ADDR']))?$_SERVER['REMOTE_ADDR']:0; // переписываем файл участников - вставляем туда новый пароль $fp=fopen("$datadir/user.php","a+"); flock ($fp,LOCK_EX); ftruncate ($fp,0); fputs($fp,"$record"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); // отправка пользователю его имени и пароля на мыло if ($regenter==TRUE) { $headers=null; // Настройки для отправки писем $headers.="From: администратор <$adminemail>\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/plain; charset=UTF-8"; // Собираем всю информацию в теле письма $allmsg=$forum_name.' (данные для восстановления доступа к форуму)'.chr(13).chr(10). 'Вы, либо кто-то другой с IP-адреса '.$ip.' запросили данные для восстановления доступа к форуму по адресу: '.$forum_url.chr(13).chr(10).chr(13).chr(10). 'Ваше Имя: '.$myname.chr(13).chr(10). 'Ваш новый пароль: '.$pass.chr(13).chr(10).chr(13).chr(10). 'Для входа на форум перейдите по ссылке и введите логин и НОВЫЙ ПАРОЛЬ: '.$forum_url.'?event=login'.chr(13).chr(10).chr(13).chr(10). 'Изменить Ваш пароль (только после того как войдёте) всегда можно на странице: '.$forum_url.'?event=profile&pname='.$myname.chr(13).chr(10).chr(13).chr(10). '* Это письмо сгенерировано роботом, отвечать на него не нужно.'.chr(13).chr(10); // Отправляем письмо майлеру на съедение ;-) mail("$myemail", "=?UTF-8?B?" . base64_encode("$forum_name (Данные для восстановления доступа к форуму)") . "?=", $allmsg, $headers); // если есть участник с введённым емайлом $msgtoopr="$myname, на Ваш электронный адрес выслано сообщение с именем и паролем доступа к форуму."; } // Если нет такого емайла в БД else $msgtoopr="Участника с таким емайлом или логином
на форуме не зарегистрировано!"; print "


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



"; exit; } // ----- Шапка для всех страниц форума if (isset($_COOKIE['wrfcookies'])) { $wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc,ENT_COMPAT,"UTF-8"); $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("data/top.html"); addtop(); // подключаем ШАПКУ форума if ($_GET['event'] =="profile") { // РЕДАКТИРОВАНИЕ ПРОФИЛЯ if (!isset($_GET['pname'])) exit("Попытка взлома."); $pname=urldecode($_GET['pname']); // РАСКОДИРУЕМ имя пользователif (!ctype_digit($userpn) or strlen($userpn)>4) exit("$back. Попытка взлома. Хакерам здесь не место!");я, пришедшее из GET-запроса. $lines=file("$datadir/user.php"); $i=count($lines); $use="0"; $userpn="0"; do {$i--; $rdt=explode("|", $lines[$i]); if (isset($rdt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим if (strlen($rdt[16])=="6" and ctype_digit($rdt[16])) $rdt[16]="ожидание активации"; if ($pname===$rdt[2]) { $userpn=$i; // Считываем статистику сообщений/репы юзера $jfile="$datadir/userstat.dat"; $jlines=file("$jfile"); $uj=count($jlines)-1; $msjitogo=0; for ($j=1;$j<=$uj;$j++) {$udt=explode("|",$jlines[$j]); $msjitogo=$msjitogo+$udt[6]; if ($udt[2]==$rdt[2]) {$msguser=$udt[6]; $temaded=$udt[5]; $repa=$udt[7];}} if ($msjitogo==0) $msgaktiv=0; else $msgaktiv=round(10000*$msguser/$msjitogo)/100; $aktiv=$rdt[1]; $tekdt=time(); $aktiv=round(($tekdt-$aktiv)/86400); if ($aktiv<=0) $aktiv=1; $aktiv=round(100*$msguser/$aktiv)/100; $rdt[1]=date("d.m.Y г.",$rdt[1]); if (isset($wrfname) & isset($wrfpass)) { $wrfname=replacer($wrfname); $wrfpass=replacer($wrfpass); if ($rdt[6]==TRUE) $pol="мужчина"; else $pol="женщина"; if ($wrfname===$rdt[2] & $wrfpass===$rdt[3]) { print "
Регистрационные данные

Регистрационная информация
Поля отмеченные * обязательны к заполнению, если не указано обратное
Имя участника:
Русские ники РАЗРЕШЕНЫ
$rdt[2]
Ваш пол:
$pol
Ваш пароль: * (если хотите сменить, то введите новый пароль, иначе оставьте как есть!)
Адрес e-mail: *
Введите существующий электронный адрес! Форум защищён от роботов-спамеров.
Дата регистрации:$rdt[1]
Репутация:
$repa [Посмотреть статистику изменения]
Активность:Тем создано: $temaded, всего сообщений: $msguser [$msgaktiv% от общего числа / $aktiv сообщений в сутки]
Персональные сообщения
"; $wrfname=strtolower($wrfname); if (is_file("data-pm/$wrfname.dat")) {$linespm=file("data-pm/$wrfname.dat"); $pmi=count($linespm); print" [$pmi сообщения в ПМ]";} else echo'сообщений нет'; print"
 
Немного о себе
День варенья:
Введите день рождения в формате: ДД.ММ.ГГГГГ, если не секрет.
Номер в ICQ:
Введите номер ICQ, если он у Вас есть.
Домашняя страничка:
Если у Вас есть домашняя или любимая страничка в Интернете, введите URL этой странички.
Откуда:
Введите место жительства (Страна, Область, Город).
Интересы:
Вы можете написать о ваших интересах
"; $use="1"; } if ($use!="1") { ////////////// Передалать строки со статусом!!!! и $rdt[1] - дата регистрации!!!!!!!!! //if (strlen($rdt[13])<2) $rdt[13]=$user_name; if (is_file("avatars/$rdt[15]")) $avpr="$rdt[15]"; else $avpr="noavatar.gif"; if ($rdt[6]==TRUE) $pol="мужчина"; else $pol="женщина"; print "
Профиль участника

Регистрационная информация
Имя участника:$rdt[2]
Репутация:
$repa [Оценить ±]
Активность:Тем создано: $temaded, всего сообщений: $msguser [$msgaktiv% от общего числа / $aktiv сообщений в сутки]
Отправить личное сообщение на e-mail:
Дата регистрации:$rdt[1]
Статус:$rdt[13]
Пол:$pol
День Варенья:
$rdt[7]
Номер в ICQ:
$rdt[10]
Домашняя страничка:$rdt[11]
Откуда (Место жительства, город, страна.):$rdt[12]
Интересы:$rdt[13]
Подпись:$rdt[14]

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

Только зарегистрированные участники форума могут просматривать данные профиля!"); if ($use!="1") { // в БД такого ЮЗЕРА НЕТ - его админ удалил print"
Пользователь НЕ ЗАРЕГИСТРИРОВАН
Уважаемый посетитель!

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

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

Посмотреть других участников можно здесь.

Перейти на главную страницу форума можно по этой ссылке
"; } } if ($_GET['event']=="reg") { if (!isset($_POST['rulesplus'])) { echo'
Правила и условия регистрации

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

"; if ($antispam==TRUE) {echo'
Регистрационная информация
Имя участника:
Разрешено использовать только русские, латинские буквы, цифры и знак подчёркивания
Ваш пароль:
Адрес e-mail:
Введите существующий электронный адрес! На Ваш емайл будет отправлено сообщение с кодом активации.
Ваш пол:
мужчина   женщина
Защитный код'; nospam();} // АНТИСПАМ ! echo'
* Все поля обязательны к заполнению
** Ваш пароль будет также отправлен на адрес электронной почты, который Вы определите
'; } } if ($_GET['event']=="find") { // ПОИСК $minfindme="3"; //минимальное кол-во символов в слове для поиска echo'
'; print"
Поиск
Запрос: Тип: С учётом РЕГИСТРА
ИЛИ найти все сообщения зарегистрированного пользователя:
Язык запросов:
  • "И" - должны присутствовать оба слова;

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

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


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


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


'; print "Ограничение на поиск:
- минимальное кол-во символов: $minfindme"; } if (isset($_GET['find'])) { //exit("Поиск временно не работает!"); $minfindme="2"; //минимальное кол-во символов в слове для поиска $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"; if ($_POST['user']!="0") {$findme=$_POST['user']; $gdefinder="3"; $ftype="2"; $withregistr="1";} // Если выбран поиск по имени юзера else $findme=$_POST['findme']; $findme=replacer($findme); // Защита от взлома $findmeword=explode(" ",$findme); // Разбиваем $findme на слова $wordsitogo=count($findmeword); $findme=trim($findme); // Вырезает ПРОБЕЛьные символы if ($findme == "" || strlen($findme) < $minfindme) exit("$back Ваш запрос пуст, или менее $minfindme символов!"); // Открываем файл с темами формума и запоминаем имена файлов с сообщениями setlocale(LC_ALL,'Russian_Russia.65001'); // 11.2018! РАЗРЕШАЕМ РАБОТУ ФУНКЦИЙ, работающих с регистром и с РУССКИМИ БУКВАМИ //setlocale(LC_ALL,'ru_RU.CP1251'); // ! РАЗРЕШАЕМ РАБОТУ ФУНКЦИЙ, работающих с регистором и с РУССКИМИ БУКВАМИ // ПЕРВЫЙ цикл - считаем кол-во форумов (записываем в переменную $itogofid) $mainlines=file("$datadir/wrforum.dat");$i=count($mainlines); $itogofid="0";$number="0"; $oldid="0"; $nump="0"; do {$i--; $dt=explode("|",$mainlines[$i]); if ($dt[3]==FALSE) { $maxzd=$dt[9]; if (!ctype_digit($maxzd)) $maxzd=0; // считываем ЗВЁЗДы раздела из файла if ($maxzd<1) {$itogofid++; $fids[$itogofid]=$dt[2]; }} // $itogofid - общее кол-во форумов } while($i > "0"); // ВТОРОЙ цикл - открываем файл с топиком (если он существует) и сохраняем в переменную $topicsid все имена тем do { $fid=$fids[$itogofid]; if (is_file("$datadir/$fid.dat")) { $msglines=file("$datadir/$fid.dat"); unset($topicsid); if (count($msglines)>0) { $lines=file("$datadir/$fid.dat"); $i=count($lines); do {$i--; $dt=explode("|",$lines[$i]); $topicsid[$i]="$dt[2]$dt[3]";} 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[14]); $gi="1"; $add="е Текст ";} if ($gdefinder=="2") {$msgmass=array($dt[3],$dt[4]); $gi="2"; $add="ях Текст и Заголовок ";} if ($gdefinder=="3") {$msgmass=array($dt[8]); $gi="1"; $add="е Автор ";} if ($gdefinder=="4") {$msgmass=array($dt[3]); $gi="1"; $add="е Заголовок ";} // Цикл по местам поиска (0,1,2,3,4) do {$gi--; $msg=$dt[14]; $msdat=$msgmass[$gi]; $stroka="0"; $wi=$wordsitogo; // ЦИКЛ по КАЖДОМУ слову запроса ! do {$wi--; // БЛОК УСЛОВИЙ ПОИСКА if ($withregistr!="1") // регистронезависимый поиск - cимвол "i" после закрывающего ограничителя шаблона - / { if ($ftype=="2") { if (stristr($msdat,$findme)) // ПОИСК по "ВСЕЙ ФРАЗЕ ЦЕЛИКОМ" БЕЗ учёта регистра { $stroka++; $msg=str_replace($findme," $findme ",$msg); } } else { $str1=strtolower($msdat); $str2=strtolower($findmeword[$wi]); if ($str2!="" and strlen($str2) >= $minfindme) { if (stristr($str1,$str2)) // ПОИСК БЕЗ учёта регистра при равных прочих условиях { $stroka++; $msg=str_replace($findmeword[$wi]," $findmeword[$wi] ",$msg); } } } } else // if ($withregistr!="1") { if ($ftype=="2") { if (strstr($msdat,$findme)) // ПОИСК по "ВСЕЙ ФРАЗЕ ЦЕЛИКОМ" C учёта РЕГИСТРА { $stroka++; $msg=str_replace($findme," $findme ",$msg); } } else { if ($msdat!="" and strlen($findmeword[$wi]) >= $minfindme) { if (strstr($msdat,$findmeword[$wi])) // ПОИСК С учётом РЕГИСТРА при равных прочих условиях { $stroka++; $msg=str_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"; } $in=$iii+1; if ($in>$msg_onpage) {$page=ceil($in/$msg_onpage);} else $page="1"; // расчитываем верную страницу и номер сообщения if ($oldid!=$id and $number<100) { $number++; $msgnumber=$iii; if ($nump>1) $anp="$nump"; else $anp="1"; if ($number>1) print""; $msg=$msgtowrite; // Убираем спец код из строки поиска $msg=str_replace("&","&",$msg); $msg=str_replace('\"','"',$msg); $msg=str_replace("[b]","

",$msg); $msg=str_replace("[/b]","

",$msg); $msg=str_replace("[RB]","

",$msg); $msg=str_replace("[/RB]","

",$msg); $msg=str_replace("[Code]","

",$msg); $msg=str_replace("[/Code]","

",$msg); $msg=str_replace("[Quote]","

",$msg); $msg=str_replace("[/Quote]","

",$msg); $msg=str_replace("
","\r\n", $msg); $msg=str_replace("&lt;br&gt;","

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

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

"; } } // if isset($_GET['event']) - всё, что делается при наличии переменной $event ?>
Powered by WR-Forum Lite © 2.2 UTF-8