"; $host=$_SERVER["HTTP_HOST"]; $self=$_SERVER["PHP_SELF"]; // считываем урл скрипта $boardurl="http://$host$self"; $boardurl=str_replace("tools.php", "", $boardurl); // Функция сортировки function prcmp ($a, $b) {if ($a==$b) return 0; if ($a>$b) return -1; return 1;} 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); $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 addtop($brdskin) { global $wrbname, $wrbpass; if (isset($_COOKIE['wrbcookies'])) {// ищем В КУКАХ wrbcookies чтобы вывести ИМЯ $wrbc=$_COOKIE['wrbcookies']; $wrbc=htmlspecialchars($wrbc); $wrbc=stripslashes($wrbc); $wrbc=explode("|", $wrbc); $wrbname=$wrbc[0]; $wrbpass=$wrbc[1];} else {$wrbname=null; $wrbpass=null;} echo''; if ($wrbname!=null) {print "Личный кабинет  Выход [$wrbname] ";} else {print "вход в систему | регистрация ";} print"
"; return true;} function nospam() { global $max_key,$rand_key; // Функция АНТИСПАМ 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");// доп.код for ($i=0; $i<$max_key; $i++) { $snum[$i]=mt_rand(0,9); $psnum=md5($snum[$i]+$rand_key+$dopkod); echo "\n"; $xkey=$xkey.$snum[$i];} $xkey=md5("$xkey+$rand_key+$dopkod"); //число + ключ из config.dbf + код меняющийся кажые 24 часа print" (введите число, указанное на картинке) "; return; } if (isset($_GET['url'])) { // Функция шифрации ссылок $url=rawurldecode(replacer($_GET['url'])); $url=@base64_decode($url); $url=str_replace("&","&",$url); header("HTTP/1.1 404 Moved Permanently"); header("Location: $url"); exit(); } if (!is_file("$brdskin/top.html")) {$topurl="$brdskin/top.html";} else {$topurl="$brdskin/top.html";} // все события в файле tools.php выполняются ТОЛЬКО при наличии переменной $event if(isset($_GET['event'])) { if ($_GET['event']=="login") { include "$topurl"; addtop($brdskin); // подключаем ШАПКУ print"

Вход в систему
Имя:
Пароль:
"; print "


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


"; } if ($_GET['event']=="regenter") { // проверка Логина/Пароля и ВХОД НА ДОСКУ if (isset($_POST['name']) and isset($_POST['pass'])) { $name=strtolower($_POST['name']); $pass=$_POST['pass']; $name=str_replace("|","I",$name); $text="$name|$pass|"; if (strlen($text)<4) {exit("$back Вы не ввели имя или пароль? либо имя/пароль слишком коротки!");} $text=replacer($text); $dt=explode("|", $text); } else {exit("$back Вы неввели имя и/или пароль!");} $lines=file("$datadir/usersdat.php"); $i=count($lines); do {$i--; $rdt=explode("|", $lines[$i]); $emfile=strtolower($rdt[0]); if ($name==$emfile & $pass==$rdt[1]) { if ($rdt[10]=="no") exit("$back. Ваша учётная запись не активирована!
Перейдите по этой ссылке для активации. Ключ выслан Вам на емайл."); $regenter="$i"; $tektime=time(); $wrbcookies="$rdt[0]|$rdt[1]|$tektime|$tektime|"; setcookie("wrbcookies", $wrbcookies, time()+1728000); } } while($i > "1"); if (!isset($regenter)) {exit("$back. Ваш данные ОШИБОЧНЫ!
");} Header("Location: index.php"); exit; } // очищаем куки, если выбран выход if ($_GET['event']=="clearcooke") { setcookie("wrbcookies", "", time()); print ""; exit;} if ($_GET['event']=="viewfoto") {$foto=$_GET['foto']; // Просмотр ФОТО поближе exit("Фото
");} if ($_GET['event'] =="about") { // ПРАВИЛА работы с ДОСКОЙ include "$topurl"; addtop($brdskin); // подключаем ШАПКУ include"$datadir/pravila.html"; } if ($_GET['event'] =="givmepassword") { // отсылает утеряные данные на мыло if ($sendmail=="0") {exit("$back.Функция отправки писем ЗАБЛОКИРОВАНА администратором!");} // Преобразовываем емайл в нижний регистр $myemail=strtolower($_POST['myemail']); $lines=file("$datadir/usersdat.php"); $i = count($lines); $regenter=""; do {$i--; $rdt=explode("|", $lines[$i]); // проходим по всем пользователям и сверяем данные if ($myemail==$rdt[2]) {$myname=$rdt[0]; $mypassword=$rdt[1];} } while($i > "1"); // отправка пользователю его имени и пароля на мыло if (isset($myname)) { $headers=null; // Настройки для отправки писем $headers.="From: <".$adminemail.">\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/plain; charset=windows-1251"; // Собираем всю информацию в теле письма $allmsg=$brdname.' (данные регистрации)'.chr(13).chr(10). 'Вы запросили Имя и Пароль доступа к доске объявлений по адресу: '.$boardurl.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", "$brdname (регистрационные данные)", $allmsg, $headers); // если есть участник с введённым емайлом $msgtoopr="$myname, на Ваш электронный адрес выслано сообщение с именем и паролем доступа к доске объявлений."; } // Если нет такого емайла в БД else {$msgtoopr="Участника с таким емайлом
на доске объявлений не зарегистрировано!";} print "


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



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


Закрыть окно
"); $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 " Отправление сообщения автору объявления
"; if ($antispam==TRUE) {print"
Отправка сообщения пользователю: $uname
  Ваше Имя:* и E-mail:*
  Сообщение:*
"; nospam();} // АНТИСПАМ ! exit('
'); } if ($_GET['event']=="mailtogo") { // ШАГ 2 отправки сообщения пользователю доски $id=""; $fid=""; if (isset($_POST['id'])) {$id=replacer($_POST['id']); if (strlen($id)>0) $fid=substr($id,0,3);} $name=replacer($_POST['name']); $email=replacer($_POST['email']); $uname=replacer($_POST['uname']); $uemail=replacer($_POST['uemail']); $msg=replacer($_POST['msg']); //--А-Н-Т-И-С-П-А-М--проверка кода-- 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("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email) or $email=="" or strlen($email)>30) exit("$back и введите корректный E-mail адрес!"); if (!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $uemail) or $uemail=="" or strlen($uemail)>30) exit("$back у пользователя задан несуществующий E-mail адрес!"); if ($name=="") exit("$back Вы не ввели своё имя!
"); if ($msg=="") exit("$back Вы не ввели сообщение!
"); $text="$name|$msg|$uname|"; $text=htmlspecialchars($text); $text=stripslashes($text); $text=str_replace("\r\n","
",$text); $exd=explode("|",$text); $name=$exd[0]; $msg=$exd[1]; $uname=$exd[2]; $headers=null; // Настройки для отправки писем $headers.="From: Робот доски объявлений <".$adminemail.">\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/html; charset=windows-1251"; // Собираем всю информацию в теле письма if (strlen($id)>0) $apurl="index.php?id=$id"; else $apurl=""; $boardurl=str_replace("tools.php", "index.php", $boardurl); $allmsg="

$uname, это сообщение отправлено Вам от посетителя доски объявлений
$brdname


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


* Данное письмо сгенерировано и отправлено роботом.
Если хотите ответить, то в поле получатель укажите емайл $email!"; mail("$uemail", "Отзыв на Ваше объявление на ($brdname) от $name ", $allmsg, $headers); exit("



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


Закрыть окно
"); } if ($_GET['event'] =="reg") { // Защита от РОБОТОВ-регистраторов но простая if (isset($_COOKIE['wrbcookies'])) exit("Вам необходимо Выйти из текущего профиля, а затем лишь регистрироваться!"); // проверяем IP-посетителя на наличие в БАНе. Если есть - досвидос! $ip=$_SERVER['REMOTE_ADDR']; // определяем IP юзера if (is_file("$datadir/bad_ip.dat")) { $lines=file("$datadir/bad_ip.dat"); $i=count($lines); if ($i>0) {do {$i--; $idt=explode("|", $lines[$i]); if ($idt[0]===$ip) exit("


Админитратор заблокировал для Вашего IP: $ip
возможность регистрироваться и добавлять объявления по следующей причине:

$idt[1].

Вам разрешено просматривать объявления,
а вот ДОБАВЛЯТЬ ОБЪЯВЛЕНИЯ и РЕГИСТРИРОВАТЬСЯ категорически ЗАПРЕЩЕНО!
"); } while($i > "1");} unset($lines);} include "$topurl"; addtop($brdskin); // подключаем ШАПКУ print "
"; if ($antispam==TRUE) {print"
Регистрация
Имя:*
E-mail:*
Город:
Телефон:  ICQ:
Организация:
Коротко о себе:
Защитный код"; nospam();} // АНТИСПАМ ! print"
С правилами ознакомлен
* Пароль Вам будет выслан на емайл."; } if ($_GET['event'] =="reguser") { //регистрация - ШАГ 2 сохранение данных // Простая защита от РОБОТОВ-регистраторов if (isset($_COOKIE['wrbcookies'])) exit("Вам необходимо Выйти из текущего профиля, а затем лишь регистрироваться!"); // проверяем IP-посетителя на наличие в БАНе. Если есть - досвидос! $ip=$_SERVER['REMOTE_ADDR']; // определяем IP юзера if (is_file("$datadir/bad_ip.dat")) { $lines=file("$datadir/bad_ip.dat"); $i=count($lines); if ($i>0) {do {$i--; $idt=explode("|", $lines[$i]); if ($idt[0]===$ip) exit("


Админитратор заблокировал для Вашего IP: $ip
возможность регистрироваться и добавлять объявления по следующей причине:

$idt[1].

Вам разрешено просматривать объявления,
а вот ДОБАВЛЯТЬ ОБЪЯВЛЕНИЯ и РЕГИСТРИРОВАТЬСЯ категорически ЗАПРЕЩЕНО!
"); } while($i > "1");} unset($lines);} if (isset($_POST['login'])) $login=replacer($_POST['login']); else $login=""; $email=replacer($_POST['email']); $email=strtolower($email); $gorod=replacer($_POST['gorod']); $icq=replacer($_POST['icq']); $phone=replacer($_POST['phone']); $company=replacer($_POST['company']); $about=replacer($_POST['about']); if (!isset($_POST['rules'])) exit("$back. Вам необходимо согласиться с правилами."); $status="ok"; $login=str_replace("|","I",$login); $password=str_replace("|","I",$password); $email=str_replace("|","I",$email); $gorod=str_replace("|","I",$gorod); $icq=str_replace("|","I",$icq); $phone=str_replace("|","I",$phone); $company=str_replace("|","I",$company); $about=str_replace("|","I",$about); //--А-Н-Т-И-С-П-А-М--проверка кода-- if ($antispam==TRUE and !isset($_COOKIE['wrbcookies'])) { 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("/[^(\\w)|(\\x7F-\\xFF)|(\\-)|(\s)]/",$login)) exit("$back Ваше имя содержит запрещённые символы. Разрешены русские и английские буквы, цифры и подчёркивание!!."); if ($login=="" or strlen($login)>$maxname) exit("$back ваше имя пустое, или превышает $maxname символов!
"); if (!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email) or $email=="" or strlen($email)<6) exit("$back и введите корректный E-mail адрес!
"); // ГЕНЕРИРУЕМ новый ПАРОЛЬ юзера $len=8; // количество символов в новом пароле $base='ABCDEFGHKLMNPQRSTWXYZabcdefghjkmnpqrstwxyz123456789'; $max=strlen($base)-1; $password=''; mt_srand((double)microtime()*1000000); while (strlen($password)<$len) $password.=$base{mt_rand(0,$max)}; // ГЕНЕРИРУЕМ случайный КОД активации $z=1; do {$key=mt_rand(100000,999999); if (strlen($key)==6) {$z++;} } while ($z<1); if ($useactkey!="1") {$key="";} $text="$login|$password|$email||$icq|$phone|$company|$about|$ip|$date|no|$gorod|$key|||"; // Проверка, может такой юзер уже есть? $loginsm=strtolower($login); $lines=file("$datadir/usersdat.php"); $i = count($lines); do {$i--; $rdt=explode("|", $lines[$i]); $rdt[0]=strtolower($rdt[0]); if ($rdt[0]===$loginsm) {$bad="1"; $er="логином";} if ($rdt[2]===$email) {$bad="1"; $er="емайлом";} } while($i > "1"); if (isset($bad)) {exit("$back. Участник с таким $er уже зарегистрирован!
");} $fp=fopen("$datadir/usersdat.php","a+"); flock ($fp,LOCK_EX); fputs($fp,"$text\r\n"); fflush ($fp); flock ($fp,LOCK_UN); fclose($fp); $burl=str_replace("index.php", "tools.php", $boardurl); if ($sendmail==TRUE) { // МЫЛИМ юзеру данные регистрации $headers=null; // Настройки для отправки писем $headers.="From: Администратор <".$adminemail.">\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/html; charset=windows-1251"; // Собираем всю информацию в теле письма $allmsg="

Доска объявлений \"$brdname\"

Регистрационные данные
Ваше Имя:$login
Пароль:$password
E-mail:$email
Ключ активации:$key
Город:$gorod  
ICQ:$icq  
Организация:$company  
Телефон:$phone  
О себе:$about  
Дата регистрации:$time - $date г. 
Ваш IP-адрес:$ip  

"; if ($useactkey=="1") {$allmsg.="
Вам необходимо подтвердить регистрацию на доске,
для этого перейти по этой ссылке


"; } else { $allmsg.="
Вы успешно зарегистрированы.

";} $allmsg.="Перейти на доску объявлений


* Это сообщение сгенерировано и отправлено роботом с доски объявлений. Отвечать на него не нужно."; // Отправляем письмо майлеру на съедение ;-) mail("$email", "=?windows-1251?B?" . base64_encode("$brdname (подтверждение регистрации)") . "?=", $allmsg, $headers); if ($sendmailadmin!="0") {mail("$adminemail", "Новый пользователь доски ($brdname)", $allmsg, $headers);} } // if ($sendmail!=0) if ($useactkey==FALSE) { $tektime=time(); $wrbcookies="$login|$password|$tektime|0|"; setcookie("wrbcookies", $wrbcookies, time()+1728000); print"
$login, Вы успешно зарегистрированы.

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

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

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

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

Ввод емайла и активационного ключа
Адрес e-mail:
Активационный ключ:
* Для активации аккаунта достаточно перейти по ссылке в письме!
** Ключ был выслан Вам на емайл, указанный при регистрации.
Если вы не получали письмо, обратитесь к Администратору через форму обратной связи,
укажите свой логин и емайл и попросите активировать Вашу учётную запись.


"; if (is_file("$brdskin/bottom.html")) include "$brdskin/bottom.html"; exit; } // защиты от взлома по ключу и емайлу if (strlen($key)<6 or strlen($key)>6 or !ctype_digit($key)) exit("$back. Вы ошиблись при вводе ключа. Ключ может содержать только 6 цифр."); if (strlen($email)>50) 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[2]=strtolower($rdt[2]); if ($rdt[2]===$email and $rdt[12]===$key) {$name=$rdt[0]; $pass=$rdt[1]; $fnomer=$i;} if ($rdt[2]===$email and $rdt[12]==="") $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]|ok|$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(); $wrbcookies="$name|$pass|$tektime|0|"; setcookie("wrbcookies", $wrbcookies, time()+1728000); } if (!isset($fnomer) and !isset($ok)) exit("$back. Вы ошиблись в воде активационного ключа или емайла.
"); if (isset($ok)) $add="Ваша запись уже активирована"; else $add="$name, Вы успешно зарегистрированы и активированы"; print"
Спасибо, $add.

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

Нажмите здесь, если не хотите больше ждать
"; exit; } if ($_GET['event'] =="reregistr") { // ПЕРЕрегистрация - ШАГ 2 сохранение данных $login=replacer($_POST['login']); // Логин юзера $oldpass=replacer($_POST['oldpass']); // Старый пароль $password=replacer($_POST['password']); // Новый пароль $email=replacer($_POST['email']); $email=strtolower($email); $gorod=replacer($_POST['gorod']); $url=replacer($_POST['url']); $icq=replacer($_POST['icq']); $phone=replacer($_POST['phone']); $company=replacer($_POST['company']); $about=replacer($_POST['about']); $ip=$_SERVER['REMOTE_ADDR']; // определяем IP юзера $login=str_replace("|","I",$login); $password=str_replace("|","I",$password); $email=str_replace("|","I",$email); $url=str_replace("|","I",$url); $icq=str_replace("|","I",$icq); $phone=str_replace("|","I",$phone); $company=str_replace("|","I",$company); $about=str_replace("|","I",$about); $gorod=str_replace("|","I",$gorod); if ($login==="" || strlen($login)>$maxname) exit("$back ваше имя пустое, или превышает $maxname символов!"); if ($password==="" || strlen($password)>15) exit("$back вы не ввели пароль!"); // проверка Логина/Старого пароля $lines=file("$datadir/usersdat.php"); $i=count($lines); do {$i--; $rdt=explode("|", $lines[$i]); if (strtolower($login)===strtolower($rdt[0]) & $oldpass===$rdt[1]) {$ok="$i";} // Ищем юзера логин/пароль else { if ($email===$rdt[2]) $bademail="1"; } // Вдруг у когото уже есть такой емайл? } while($i > "1"); if (!isset($ok)) {setcookie("wrbcookies", "", time()); exit("$back Ваш новый логин /пароль / Емайл не совпадает НИ с одним из БД.

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

Ошибка скрипта или попытка взлома - обратитесь к администратору!");} if (isset($bademail)) {exit("$back. Участник с емайлом $email уже зарегистрирован на доске!
Возможно, Ваш емайл продублирован в БД - обратитесь к администратору!");} $udt=explode("|",$lines[$ok]); $status=$udt[10]; $dayx=$udt[12]; $text="$login|$password|$email|$url|$icq|$phone|$company|$about|$ip|$date|$status|$gorod|$dayx|||"; $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); // устанавливаем КУКИ $tektime=time(); $wrbcookies="$login|$password|$tektime|0|"; setcookie("wrbcookies", $wrbcookies, time()+1728000); if ($sendmail==TRUE) { // отправка юзеру РЕГИСТРАЦИОННЫЕ ДАННЫЕ $headers=null; // Настройки для отправки писем $headers.="From: Администратор <".$adminemail.">\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/html; charset=windows-1251"; // Собираем всю информацию в теле письма $allmsg="

Доска объявлений \"$brdname\"

Регистрационные данные
Ваше Имя:$login
Пароль:$password
E-mail:$email
Город:$gorod  
URL:$url  
ICQ:$icq  
Организация:$company  
Телефон:$phone  
О себе:$about  
Дата регистрации:$time - $date г. 
Ваш IP-адрес:$ip  

Вы успешно перерегистрированы

Перейти на доску объявлений


* Это сообщение сгенерировано и отправлено роботом с доски объявлений. Отвечать на него не нужно."; mail("$email", "Данные перерегистрации ($brdname)", $allmsg, $headers); // МЫЛИМ письмо } print "
$login, Ваши данные успешно изменены.
На Ваш электронный адрес высланы данные перерегистрации.
Через несколько секунд Вы будете автоматически перемещены на главную страницу.
Нажмите здесь, если не хотите больше ждать
"; exit; } if ($_GET['event']=="who") { // просмотр всех участников доски ob_start(); include $topurl; $topurl=ob_get_contents(); ob_end_clean(); $topurl=str_replace("",'',$topurl); print"$topurl"; addtop($brdskin); // подключаем ШАПКУ // если незареган - не пускаем if (!isset($wrbname)) exit("



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


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


$back


"); $uq="25"; // По сколько человек выводить список участников $t1="row1"; $lines=file("$datadir/usersdat.php"); $maxi=count($lines)-1; echo''; if ($maxi<"1") {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;} do {$dt=explode("|", $lines[$fm]); $fm++; $num=$fm-1; if (isset($dt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим $codename=urlencode($dt[0]); // Кодируем имя в СПЕЦФОРМАТ, для поддержки корректной передачи имени через GET-запрос. if (isset($wrbname)) {$wbn="$dt[0]"; $mls="";} else {$wbn="$dt[0]"; $mls="заблокировано";} if (strlen($dt[13])=="6" and ctype_digit($dt[13])) {$dt[13]="ожидание активации";} if ($dt[6]=="мужчина") {$add="polm.gif";} else {$add="polg.gif";} if ($dt[10]!="vip") {$dt[10]="-";} print""; if ($t1=="row1") $t1="row2"; else $t1="row1"; } // если строчка потерялась } while($fm < $lm); } // конец Если файл userdat.php пуст // выводим СПИСОК СТРАНИЦ $pageinfo="
Имя ЛС на Е-майл Зарегистрирован Статус Сайт Телефон Организация Город
Участников не зарегистрировано
$num $wbn $mls $dt[9] $dt[10] $dt[3] $dt[5] $dt[6] $dt[11]
Страницы:  "; if ($page>=4 and $maxpage>5) $pageinfo.="1 ... "; $f1=$page+2; $f2=$page-2; if ($page<=2) {$f1=5; $f2=1;} if ($page>=$maxpage-1) {$f1=$maxpage; $f2=$page-3;} if ($maxpage<=5) {$f1=$maxpage; $f2=1;} for($i=$f2; $i<=$f1; $i++) {if ($page==$i) $pageinfo.="$i  "; else $pageinfo.="$i  ";} if ($page<=$maxpage-3 and $maxpage>5) $pageinfo.="... $maxpage"; print"

$pageinfo
Всего зарегистрировано участников - $maxi

";} if ($_GET['event'] =="profile") { if (!isset($_GET['pname'])) exit("Попытка взлома."); ob_start(); include $topurl; $topurl=ob_get_contents(); ob_end_clean(); $topurl=str_replace("",'',$topurl); print"$topurl"; addtop($brdskin); // подключаем ШАПКУ $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]) { $user2="
* VIP-статус позволяет подавать объявления выделенные яркой подсветкой.
Также VIP-объявления всегда расположены на первых позициях
рубрики, в которой они размещены. Эта услуга платная,
стоимость узнайте у администратора через форму обратной связи."; if ($rdt[10]=="ok") {$user1="обычный"; } else { if ($rdt[12]>0) {$tek=mktime(); $vipdays=round(($rdt[12]-$tek)/86400); $vipdays.=" дн. осталось";} else {$vipdays="всегда";} $user1="VIP-статус* ($vipdays)"; $user2="* Все добавленные Вами объявления всегда размещаются вверху страницы и выделяются другим цветом."; if ($vipdays<0) {$user1="обычный (срок истёк)"; $user2="";}} if (isset($wrbname) & isset($wrbpass)) {$wrbname=replacer($wrbname); $wrbpass=replacer($wrbpass); if ($wrbname===$rdt[0] & $wrbpass===$rdt[1]) { print"
Блок поиска всех действующих Ваших объявлений:

Блок редактирования Вашего профиля:
Регистрационная информация
Имя:$rdt[0]
Статус:$user1
Пароль:*
(не более 15 символов)
E-mail:*
Город:
URL:
ICQ:
Телефон:
Организация:
Коротко о себе:
$user2 "; $use="1"; } if ($use!="1") { print "
Регистрационная информация
Имя:$rdt[0]
Город:$rdt[11]
Емайл:
Домашняя страничка:$rdt[3]
ICQ:$rdt[4]
Телефон:$rdt[5]
Организация:$rdt[6]
Дополнительно:$rdt[7]



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

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



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

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

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

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












'; } } // $event=="profile" if ($_GET['event']=="find") { // ПОИСК объявления setlocale(LC_ALL,'ru_RU.CP1251'); // ! РАЗРЕШАЕМ РАБОТУ ФУНКЦИЙ, работающих с регистором и с РУССКИМИ БУКВАМИ include "$topurl"; addtop($brdskin); // подключаем ШАПКУ $minfindme="2"; // минимальное кол-во символов, в поисковой фразе $time=explode(' ', microtime()); $start_time=$time[1]+$time[0]; // считываем начальное время запуска поиска if (!isset($withregistr)) {$withregistr="0";} $ftype=$_POST['ftype']; if (isset($_POST['withregistr'])) {$withregistr="1";} else {$withregistr="0";} $gdefinder=$_POST['gdefinder']; // Разбиваем $findme на слова $findme=$_POST['findme']; if ($_POST['user']!="0") {$findme=$_POST['user']; $gdefinder="3"; $ftype="2"; $withregistr="1";} // Если выбран поиск по имени юзера $findme=stripslashes($findme); $findmeword=explode(" ",$findme); $wordsitogo=count($findmeword); $findme=trim($findme); // Вырезает ПРОБЕЛьные символы if ($findme=="" || strlen($findme) < $minfindme) {exit("$back Ваш запрос пуст, или менее $minfindme символов!");} // Открываем файл с темами формума и запоминаем имена файлов с сообщениями $lines = file("$datadir/$datafile"); $i=count($lines); // первый цикл - подсчёт кол-во тем $number="0"; do {$i--; $dt=explode("|", $lines[$i]); $forumsid[$i]=$dt[0]; } while($i > "0"); $ii=count($forumsid); // второй цикл - проверка последовательная сообщений в теме do {$ii--; $fid=$forumsid[$ii]; if (is_file("$datadir/$fid.dat")) {$file=file("$datadir/$fid.dat");} if ((is_file("$datadir/$fid.dat")) && (sizeof($file)>"0")) { $iii=count($file); // $iii-кол-во сообщений в теме $fid.dat"; $lines = file("$datadir/$fid.dat"); do {$iii--; $dt = explode("|", $lines[$iii]); if ($gdefinder=="0") {$msgmass=array($dt[2],$dt[3],$dt[5]); $gi="3"; $add="ях Автор, Текст, Заголовок ";} if ($gdefinder=="1") {$msgmass=array($dt[5]); $gi="1"; $add="е Текст ";} if ($gdefinder=="2") {$msgmass=array($dt[3],$dt[5]); $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[5]; $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=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.="..."; } else {$msgtowrite=$msg;} if (!isset($m)) {print "
По запросу '$findme' в пол$add найдено:
"; $m="1"; } $number++; $msgnumber=$iii; print ""; $printflag="0"; } } while($gi > "0"); // конец ЦИКЛа по МЕСТУ поиска } while($iii >= "1"); } // if ((is_file("$fid.dat")) && (sizeof("$fid.dat")>0)) } while($ii > "0"); if (!isset($m)) {echo'
ТипЗаголовокАвторчасть объявления
$number $dt[4] $dt[3] $dt[2] $msgtowrite
По вашему запросу ничего не найдено.
';} $time=explode(' ',microtime()); $seconds=($time[1]+$time[0]-$start_time); echo "

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

"; } } // if isset($event) if (!isset($_GET['event']) and !isset($_GET['id'])) { include "$topurl"; addtop($brdskin); print"
Поиск
Запрос: Тип: С учётом РЕГИСТРА Где искать:
ИЛИ найти все объявления зарегистрированного пользователя:
Язык запросов:
  • "И" - должны присутствовать оба слова;

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

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


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


  • Где искать:
  • "только в ТЕКСТе" - поиск ведётся только в тексте сообщений;

  • "только в ЗАГОЛОВКе" - поиск ведётся в заголовке объявления;

  • "Имени автора" - поиск по имени подавшего объявления;

  • "В тексте и заголовке" - поиск по имени подавшего объявления, и заголовке объявления;

  • "Везде" - поиск ведётся в полях "Имя", "Заголовок", "Текст" каждого объявления;

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


"; } // Событие проверки на ошибки и отправки сообщения АДМИНУ if (isset($_GET['event'])) { if ($_GET['event']=="add") { sleep(1); // мелкая защита от БОТОВ. Человеку секунда не время - а прога по подбору ключа - будет работать долго и не загружать сервер //--А-Н-Т-И-С-П-А-М--проверка кода-- if ($antispam==TRUE and !isset($_COOKIE['wrbcookies'])) { 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 (!isset($_POST['name'])) exit("$shapka $back Вы не ввели имя!"); else $name=$_POST['name']; if (!isset($_POST['email'])) exit("$shapka $back Вы не ввели емайл!"); else $email=$_POST['email']; if (!isset($_POST['tema'])) exit("$shapka $back Вы не ввели тему!"); else $tema=$_POST['tema']; if (!isset($_POST['msg'])) exit("$shapka $back Вы не ввели сообщение!"); else $msg=$_POST['msg']; if ($name=="" || strlen($name)>$maxname) exit("$shapka $back Вы не ввели имя, или вввели слишком длинное имя!
"); if ($msg=="" || strlen($msg)>$maxmsg) exit("$shapka $back Ваше сообщение или пустое или превышает $maxmsg символов.
"); if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $_POST['email']) or $_POST['email']=="") exit("$shapka $back и введите корректный E-mail адрес!
"); // Защита от взлома $name=str_replace("|","|",$name); $tema=str_replace("|","|",$tema); $msg=str_replace("|","|",$msg); $text="$name|$tema|$email|$msg|"; $text=replacer($text); $exd=explode("|",$text); $name=$exd[0]; $tema=$exd[1]; $email=$exd[2]; $msg=$exd[3]; // Настройки для отправки писем $headers=null; $headers.="From: ".$name." <".$email.">\n"; $headers.="X-Mailer: PHP/".phpversion()."\n"; $headers.="Content-Type: text/html; charset=windows-1251"; // Собираем всю информацию в теле письма $allmsg="

Сообщение от посетителя сайта \"$boardurl\"

Информация
Имя:$name
Е-майл:$email
Дата отправки:$time - $date г.
Тема:$tema
Текст:$msg

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

Вернуться назад"; $printmsg="$allmsg "; $allmsg.="


* Это сообщение сгенерировано и отправлено роботом с формы обратной связи. Отвечать на него не нужно."; // Отправляем письмо майлеру на съедение ;-) mail("$adminemail", "Обратная связь. Сообщение от $name", $allmsg, $headers); // Пишем пользователю "Спасибо" и обновляем страницу через JavaScript print "$printmsg"; exit; } } if (isset($_GET['event'])) { if ($_GET['event']=="addrem") { print "
"; print "
Отправить сообщение администратору
 
Имя     Ваш E-mail
Тема сообщения:  
Сообщение
"; if ($antispam==TRUE and !isset($wrbname)) {print"
АНТИСПАМ: "; nospam();} // АНТИСПАМ ! print"

"; exit; } } if (is_file("$brdskin/bottom.html")) include "$brdskin/bottom.html"; ?>
Powered by WR-Board © 1.7.5 Lite