// WR-forum v 1.8.2M // 15.01.08 г. // Miha-ingener@yandex.ru
#error_reporting (E_ALL);
include "config.php";
$avatardir="./avatars"; // Каталог куда загружаются аватары
$maxfsize=round($max_file_size/10.24)/100;
$valid_types=array("gif","jpg","png","jpeg"); // допустимые расширения
// Функция содержит ПРОДОЛЖЕНИЕ ШАПКИ. Вызывается: addtop();
function addtop() { global $wrfname,$fskin,$date,$time;
// ищем В КУКАХ wrfcookies чтобы вывести ИМЯ
if (isset($_COOKIE['wrfcookies'])) {$wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc); $wrfc=stripslashes($wrfc); $wrfc=explode("|", $wrfc); $wrfname=$wrfc[0];} else {unset($wrfname); unset($wrfpass);}
print"
";
if (isset($wrfname)) {
$codename=urlencode($wrfname); // Кодируем имя в СПЕЦФОРМАТ, для поддержки корректной передачи имени через GET-запрос.
print "Ваш профильВыход [$wrfname]";}
else {print "Регистрация Вход
";}
if (is_file("$fskin/tiptop.html")) {include("$fskin/tiptop.html");} // подключаем дополнение к ВЕРХУШКе
print"Сегодня: $date - $time";
return true;}
// --ЦИФРОЗАЩИТА--
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;}
// РЕПУТАЦИЯ - окно выбора: шаг 1
if ($_GET['event']=="repa") {
if (!isset($_GET['name'])) {exit("Нет данных переменной $name.");}
if (!isset($_GET['who'])) {exit("Нет данных переменной $who.");}
////!!!!!!!!!!! обработать NAME по полной!!!!!!!!!!!!!
$name=$_GET['name'];
$name=htmlspecialchars($name);
$name=stripslashes($name);
$name=str_replace("\r\n"," ",$name);
$userpn=$_GET['who']; if (!ctype_digit($userpn) or strlen($userpn)>2) {exit("$back. Попытка взлома. Хакерам здесь не место.");}
print "Изменение РЕПУТАЦИИ участника: $name
"; 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)>2) {exit("$back. Попытка взлома. Хакерам здесь не место.");}
$repa=$_POST['repa']; if (!is_numeric($repa)) {exit("$back. Попытка взлома. Не хулигань, друг!");}
$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 (!isset($_POST['email'])) {exit("Нет данных переменной $email.");}
if (!isset($_POST['name'])) {exit("Нет данных переменной $name.");}
////!!!!!!!!!!! обработать NAME по полной!!!!!!!!!!!!!
$uemail=$_GET['email'];
$uname=$_GET['name'];
$text="$uemail|$uname|";
$text=htmlspecialchars($text);
$text=stripslashes($text);
$text=str_replace("\r\n"," ",$text);
$dt=explode("|",$text);
$uemail=$dt[0]; $uname=$dt[1];
if (isset($_GET['fid'])) {$fid=$_GET['fid'];}
if (isset($_GET['id'])) {$id=$_GET['id'];}
print "Отправление сообщения автору объявления
"; exit;
}
// ШАГ 2 отправки сообщения пользователю
if ($_GET['event']=="mailtogo") {
$name=$_POST['name'];
$email=$_POST['email'];
$msg=$_POST['msg'];
if (isset($_POST['fid'])) {$fid=$_POST['fid'];}
if (isset($_POST['id'])) {$id=$_POST['id'];}
$uname=$_POST['uname'];
$uemail=$_POST['uemail'];
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 != "") {print "$back и введите корректный E-mail адрес!
"; exit;}
if ($name=="") {print "$back Вы не ввели своё имя!
"; exit;}
if ($msg=="") {print "$back Вы не ввели сообщение!"; exit;}
$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
* Данное письмо сгенерировано и отправлено роботом, отвечать на него не нужно.
";
mail("$uemail", "Сообщение от посетителя форума ($fname) от $name ", $allmsg, $headers);
print "
";
exit; }
// проверка имени/пароля и вход на форум
if(isset($_GET['event'])) { if ($_GET['event']=="regenter") // if ($event =="regenter")
{
if (!isset($_POST['name']) & !isset($_POST['pass'])) {print"$back введите имя и пароль!"; exit;}
$name=str_replace("|","I",$_POST['name']); $pass=str_replace("|","I",$_POST['pass']);
$text="$name|$pass|";
$text=trim($text); // Вырезает ПРОБЕЛьные символы
if (strlen($text)<4) {print"$back Вы не ввели имя или пароль!"; exit;}
$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=str_replace("\n",' ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$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])) {print"$back. Ваша учётная запись не активирована."; exit;}
$regenter="$i";
$tektime=time();
$wrfcookies="$rdt[0]|$rdt[1]|$tektime|$tektime|";
setcookie("wrfcookies", $wrfcookies, time()+1728000);
}} // if-ы
} while($i > "1");
if (!isset($regenter)) {print "$back Ваш данные НЕ верны!"; exit;}
Header("Location: index.php");
}
}
// Регистрация НОВЫЙ ШАГ 2!! отправка на мыл подтверждения и сохранение в БД
if(isset($_GET['event'])) { if ($_GET['event']=="reg2")
{
if (!isset($_POST['name']) & !isset($_POST['pass'])) {print"$back введите имя и пароль!"; exit;}
$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 {print"$bada"; exit;}
if (isset($_POST['xkey'])) {$xkey=$_POST['xkey'];} else {print"$bada"; exit;}
$userkey=md5("$usernum+$absrand");
if ($userkey!=$xkey) {print"$bada"; exit;}}
//--А-Н-Т-И-С-П-А-М--проверка кода--
if ($name=="" or strlen($name)>$maxname) {print "$back ваше имя пустое, или превышает $maxname символов!"; exit;}
if ($pass=="" or strlen($pass)<1 or strlen($pass)>$maxname) {print "$back Вы не ввели пароль. Пароль не должен быть пустым."; exit;}
if(!preg_match("/^[a-z0-9\.\-_]+@[a-z0-9\-_]+\.([a-z0-9\-_]+\.)*?[a-z]+$/is", $email) or $email=="" or strlen($email)>40) {print "$back и введите корректный E-mail адрес!"; exit;}
if (isset($_POST['pol'])) {$pol=$_POST['pol'];} else {$pol="";} if ($pol!="мужчина") {$pol="женщина";}
$email=str_replace("|","I",$email);
// КОЛДУЕМ рандомный КОД активации
$z=1; do {$key=mt_rand(100000,999999); if (strlen($key)==6) {$z++;} } while ($z<1);
if ($useactkey!="1") {$key="";}
$regdat="$name|$pass|0|$email|$dayreg||$pol||||||noavatar.gif|$key|";
$text=$regdat;
$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/",'
$name, на указанный Вами емайл был выслан код подтверждения.
Для того чтобы зарегистрироваться - введите его на странице, либо перейдите по ссылке - указанной в письме.
Через несколько секунд Вы будете автоматически перемещены на страницу подтверждения регистрации.
";
exit;
}
}
// Регистрация ШАГ 3 - ввод ключа либо подтверждение по емайлу
if(isset($_GET['event'])) { 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"
Подтверждение регистрации
"; 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) {print"Ошибка при вводе емайла"; exit;}
// Ищем юзера с таким емайлом и ключом. Если есть - меняем статус на пустое поле.
$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)) {print "$back. Вы ошиблись в воде активационного ключа или емайла.
"; exit;}
if (isset($ok)) {$add="Ваша запись уже активирована";} else {$add="$name, Вы успешно зарегистрированы";}
print"
Спасибо, $add.
Через несколько секунд Вы будете автоматически перемещены на главную страницу форума.
";
exit;
}
}
// Изменение данных регистрации - сохранение данных
if(isset($_GET['event'])) { if ($_GET['event']=="reregist") // if ($event =="reregist")
{
if (!isset($_POST['name'])) {print"$back введите Ваше имя!"; exit;}
$name=str_replace("|","I",$_POST['name']);
if ($name=="" or strlen($name)>$maxname) {print "$back ваше имя пустое, или превышает $maxname символов!"; exit;}
$name=trim($name); // Вырезает ПРОБЕЛьные символы
if (!isset($_POST['pass'])) {print"$back Вы не ввели пароль!"; exit;}
$pass=str_replace("|","I",$_POST['pass']);
$oldpass=$_POST['oldpass']; // Старый пароль
if (strlen($pass)<1 or strlen($pass)>20) {print "$back Вы не ввели пароль. Пароль не должен быть пустым."; exit;}
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) {print "$back и введите корректный E-mail адрес!"; exit;}
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.="день рождения!"; print"$notgood"; exit;}
if (strlen($icq)>10) {$notgood.="ICQ!"; print"$notgood"; exit;}
if (strlen($www)>40) {$notgood.="URL сайта!"; print"$notgood"; exit;}
if (strlen($about)>100) {$notgood.="откуда!"; print"$notgood"; exit;}
if (strlen($work)>40) {$notgood.="интересы!"; print"$notgood"; exit;}
if (strlen($write)>80) {$notgood.="подпись!"; print"$notgood"; exit;}
$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);
// проверка Логина/Старого пароля
$lines=file("$datadir/usersdat.php"); $i=count($lines);
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)) {print "$back. Участник с емайлом $email уже зарегистрирован на форуме!"; exit;}
if (!isset($ok)) {setcookie("wrfcookies","",time());
print "$back Ваш новый логин /пароль / Емайл не совпадает НИ с одним из БД.
Смена электронного адреса Запрещена
Ошибка скрипта или попытка взлома - обратитесь к администратору!"; exit;}
$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)) {echo 'ФАЙЛ НЕ загружен. Возможные причины:
- разрешена загрузка только файлов с такими расширениями: gif, jpg, jpeg, png
- Вы пытаетесь загрузить не графический файл;
- неверно введён адрес или выбран файл; '; exit;}
}
$regdat="$name|$pass|$kolvomsg|$email|$dayreg|$dayx|$pol|$icq|$www|$about|$work|$write|$avatar|$status|";
$text=$regdat;
$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=str_replace("\n",' ',$text);
$text=str_replace("\t",'',$text);
$text=str_replace("\r",'',$text);
$text=str_replace(' ',' ',$text);
$regdat=$text;
$exd=explode("|",$regdat); $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) {echo "ТОЧКА встречается в имени файла $findtchka раз(а). Это ЗАПРЕЩЕНО! \r\n"; exit;}
// 2. если в имени есть .php, .html, .htm - свободен!
$bago="Извините. В имени ФАйла запрещено использовать .php, .html, .htm";
if (preg_match("/\.php/i",$fotoname)) {echo "Вхождение \".php\" найдено. $bago"; exit;}
if (preg_match("/\.html/i",$fotoname)) {echo "Вхождение \".html\" найдено. $bago"; exit;}
if (preg_match("/\.htm/i",$fotoname)) {echo "Вхождение \".htm\" найдено. $bago"; exit;}
// 3. защищаем от РУССКИХ букв в имени файла и проверяем расширение файла
if (!preg_match("/^[a-z0-9\.\-_]+\.(jpg|gif|png|jpeg)+$/is",$fotoname)) {print "Запрещено использовать РУССКИЕ буквы в имени файла!"; exit;}
// 4. Проверяем, может быть файл с таким именем уже есть на сервере
if (file_exists("$avatardir/$fotoname")) {print "Файл с таким именем уже существует на сервере! Измините имя на другое!"; exit;}
// Конец защит по имени файла
// 5. Размер в Кб. < допустимого
$fotoksize=round($fotosize/10.24)/100; // размер ЗАГРУЖАЕМОГО ФОТО в Кб.
$fotomax=round($max_file_size/10.24)/100; // максимальный размер фото в Кб.
if ($fotoksize>$fotomax) {print"Вы превысили допустимый размер фото! Максимально допустимый размер фото: $fotomax Кб. Вы пытаетесь загрузить изображение: $fotoksize Кб!"; exit;}
// 6. "Габариты" аватара > 150 х 150 - ДО свиданья! :-)
$size=getimagesize($_FILES['file']['tmp_name']);
if ($size[0]>150 or $size[1]>150) {print "Не допустимые габариты аватара. Допустимо лишь 150 х 150 px!"; exit;}
if ($fotosize>"0" and $fotosize<$max_file_size) {
copy($_FILES['file']['tmp_name'], $avatardir."/".$fotoname);
print "
";
exit;
}
if ($_GET['event'] =="givmepassword") { // отсылает утеряные данные на мыло
// Преобразовываем емайл в нижний регистр
$myemail=strtolower($_POST['myemail']);
$lines=file("$datadir/usersdat.php");
$i=count($lines); $regenter=""; $myname="";
// проходим по всем пользователям и сверяем данные
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 (isset($_GET['event']))
{
if ($_GET['event']=="moresmiles") { // ДОБАВЛЕНИЕ ВСЕХ смайлов из директории SMILE
if (!is_dir("smile/")) {print"папка smile не существует."; exit;}
$i=0; if ($handle = opendir("smile/")) {
while (($file = readdir($handle)) !== false)
if (!is_dir($file)) {$lines[$i]=$file; $i++;}
closedir($handle);
}
if (!isset($lines)) {print 'В папке smile НЕТ смайлов! Обратитесь к админу - пусть скинет.'; exit;}
$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" Закрыть окно
";
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") { // просмотр всех участников форума
$t1="row1";
$lines=file("$datadir/usersdat.php");
$maxi=count($lines)-1;
print"
№
Имя
Статус
ЛС на Е-майл
Зарегистрирован
Дата рождения
Сайт
Откуда
";
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;}
do {$dt=explode("|", $lines[$fm]);
$fm++; $num=$fm-1;
if (isset($dt[1])) { // Если строчка потерялась в скрипте (пустая строка) - то просто её НЕ выводим
$codename=urlencode($dt[0]); // Кодируем имя в СПЕЦФОРМАТ, для поддержки корректной передачи имени через GET-запрос.
if (isset($wrfname)) {$wfn="$dt[0]";} else {$wfn="$dt[0]";}
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"
$num
$wfn
$dt[13]
$dt[4]
$dt[5]
$dt[8]
$dt[9]
";
if ($t1=="row1") {$t1="row2";} else {$t1="row1";}
} // если строчка потерялась
} while($fm < $lm);
} // конец Если файл userdat.php пуст
print "
Страницы: "; // выводим СПИСОК СТРАНИЦ ВНИЗУ
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)) {
if ($wrfname===$rdt[0] & $wrfpass===$rdt[1]) {
print "
Регистрационные данные
"; $use="1"; }
if ($use!="1") {
if (strlen($rdt[13])<2) {$rdt[13]=$users;}
if (is_file("avatars/$rdt[12]")) {$avpr="$rdt[12]";} else {$avpr="noavatar.gif";}
print "
"; $use="1";}
}
}
} // if
} while($i > "1");
if (!isset($wrfname)) {print"
Только зарегистрированные участники форума могут просматривать данные профиля!"; exit;}
// БД такого ЮЗЕРА НЕТ - его админ удалил
if ($use!="1") {
print"
Уважаемый посетитель!
Извините, но участник с таким - логином на форуме не зарегистрирован.
Скорее всего, его удалил администратор.
Перейти на главную страницу форума можно по этой ссылке
"; }
}
if(isset($_GET['event'])) {
if ($_GET['event'] =="reg") {
if (!isset($_POST['rules'])) {
print"
Правила и условия регистрации
";
} else {
print"
Регистрация на форуме
";
}
}
if ($_GET['event']=="find") { // ПОИСК
$minfindme="3"; //минимальное кол-во символов в слове для поиска
print"