// WR-forum Lite v 2.2 UTF-8 // 07.01.2019 г. // WR-Script.ru
error_reporting (E_ALL); //error_reporting(0);
ini_set('register_globals','off');// Все скрипты написаны для этой настройки php
include "data/config.php";
// оставить только поиск здесь
// простая регистрация и авторизация (без мыл)
//
// Определяем URL форума 11-11-2018 поддержка http / https
$url="http".(($_SERVER['SERVER_PORT']==443)?"s":"")."://".$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']; $fu=explode('tools.php', $url);$forum_url=$fu[0];
// Функция содержит ПРОДОЛЖЕНИЕ ШАПКИ. Вызывается: addtop();
function addtop() { global $wrfname,$forum_skin,$date,$time;
// ищем В КУКАХ wrfcookies чтобы вывести ИМЯ
if (isset($_COOKIE['wrfcookies'])) {$wrfc=$_COOKIE['wrfcookies']; $wrfc=htmlspecialchars($wrfc,ENT_COMPAT,"UTF-8"); $wrfc=stripslashes($wrfc); $wrfc=explode("|", $wrfc); $wrfname=$wrfc[0];} else {$wrfname=null; $wrfpass=null;}
echo'
';
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 "
\n
\r\n";}
$xkey=md5("$xkey+$rand_key+$dopkod"); //число + ключ из data/config.php + код меняющийся кажые 24 часа
print"
(введите цифры, которые на голубом фоне)
";
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 "
Отправление сообщения автору объявления
';
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
* Данное письмо сгенерировано и отправлено роботом, отвечать на него не нужно.
";
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, Вы успешно зарегистрированы.
Через несколько секунд Вы будете автоматически перемещены на главную страницу форума.
$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('
Подтверждение регистрации*
');}
// защиты от взлома по ключу и емайлу
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 "
Регистрационные данные
"; $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 "