Файл: my/settings.php
Строк: 165
<?
define('GCMS',true);
define('ROOT','../');
require_once (ROOT.'system/power.php');
$fuser->aut();
$diz -> head('Настройки');
$diz -> title('Настройки');
switch($mode){
case 'act_email':
if(mb_strlen($func->delprobel($ya['email']))>3 and $ya['email_act']=='no'){
$report= $db -> query("Select * FROM `report` WHERE `user` = '".$ya['id']."' and `type` = 'act_email'");
/////Обработка данных
if($report->num_rows>0 and isset($do) and isset($id)){
$act_email= $db -> query("Select * FROM `report` WHERE `user` = '".$ya['id']."' and `text`='".$do."' and `type` = 'act_email'");
if($act_email->num_rows>0){
$db -> query("Update `users` SET `email_act` = 'yes' where `id`='".$ya['id']."'");
$db -> query("DELETE FROM `report` WHERE `user` = '".$ya['id']."' and `type`='act_email'");
echo '<div class="fon">Ваш email был успешно подтверждён.</div>';
}else echo '<div class="fon">Неверные данные для подтверждения.</div>';
echo '<div class="levo"><a href="./" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Мой кабинет').'</a></div>';
echo '<div class="levo"><a href="/index.php" class="levo_tuch">'.$diz -> icon('home.png').' '.language('На главную').'</a></div>';
#####Копирайт#######
$diz -> out($msg);
exit;
}
////////////////////////
if($report->num_rows>0)$db -> query("DELETE FROM `report` WHERE `user` = '".$ya['id']."' and `type`='act_email'");
$cod=$func->capcha(true);
$theme= 'Подтверждение email';
$text='<b>'.$func->famname($ya['id'],0).'</b>,Здравствуйте!<br />
Вы выполняете процедуру подтверждения электронного адреса на сайте <b>'.$_SERVER['SERVER_NAME'].'</b><br />
Если же вы не выполняли это действие,то скорее всего у вас пытаются украсть аккаунт,<br/>
<i>удалите это письмо и не выполняйте действия,которые указаны ниже!</i><br />
Если вас всё же взломали,напишите администрации ресурса '.$_SERVER['SERVER_NAME'].'!<br />
Для подтверждения вашего электронного адреса <b>'.$ya['email'].'</b> вам необходимо перейти по проверочной ссылке,<br/>
после чего на ваш почтовый ящик придёт новый пароль!<br/>
Просто перейдите по ссылке <a href="http://'.$_SERVER['SERVER_NAME'].'/my/settings.php?mode=act_email&id='.$ya['id'].'&do='.$cod.'">http://'.$_SERVER['SERVER_NAME'].'/my/settings.php?mode=act_email&id='.$ya['id'].'&do='.$cod.'</a>
<br />---------------------------------<br />
Данное сообщение создано автоматически(программно) с сайта <br />
'.$_SERVER['SERVER_NAME'].',ответа на него не требуется!';
$header.="From: "accept_email@".$perf."" <accept_email@".$perf.">n";
$header.="Subject: ".$theme."n";
$header.="Content-type: text/html; charset="utf-8"n";
if(mail($ya['email'],$theme,$text,$header)==true){
$db -> query("INSERT INTO `report` SET `user` = '".$ya['id']."', `text` = '".$cod."',`type` = 'act_email',`time` = '".time()."'");
echo '<div class="fon">На вашу почту <b>'.$ya['email'].'</b> выслана инструкция для подтверждения email.</div>';
}else echo '<div class="fon">Произошла ошибка при отправке.</div>';
}else header('Location: ?mode=security');
echo '<div class="levo"><a href="?mode=security" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
break;
case 'security':
echo '<div class="but_razdel">
<a class="button_razdel" style="width:50%" href="?">'.language('Персонализация').'</a>
<div class="button_razdel" style="width:50%"><b>'.language('Безопасность').'</b></div>
</div>';
if (empty($_POST['pass']) || empty($_POST['pass2'])) {
echo '<div class="fon">'.language('Не забудьте запомнить свой новый пароль.Пароль не должен быть короче 4х и длиннее 12и символов').'.<hr>
<form action="?mode=security" method="post">
'.language('Текущий пароль').':<br/><input type="text" name="old" maxlength="12" required/></br>
'.language('Новый пароль').':<br/><input type="text" name="pass" maxlength="12" required/></br>
'.language('Повторите пароль').':<br/><input type="text" name="pass2" maxlength="12" required/></br>
<input type="submit" value="'.language('Сохранить').'"/></form></div>';
if(mb_strlen($func->delprobel($ya['email']))>3){
if($ya['email_act']=='no'){
echo '<div class="fon">Ваш email <b>'.$ya['email'].'</b> неподтверждён.<br/>
<a href="?mode=act_email">Выполнить процедуру подтверждения</a></div>';
}else{
echo '<div class="fon">Ваш email <b>'.$ya['email'].'</b> подтверждён.</div>';
}
}
//логи авторизации
if($db->settings('aut_logs')==1){
echo '<div class="new">Лог авторизации</div>';
$sql = $db -> query("SELECT * FROM `comes` where `where`='aut_logs_good' and `user`='".$ya['id']."' or `where`='aut_logs_bad' and `user`='".$ya['id']."' ORDER BY `id` desc");
if($sql->num_rows>0){
while ($log = $sql -> fetch_assoc()) {
echo '<div class="fon"><b>';
if($log['where']=='aut_logs_good')echo language('Успешная авторизация'); else echo language('Неуспешная авторизация');
echo '</b><br/>'.$log['text'].'<br/><span class="date">'.$func -> times(date('d m Y H:s',ustime($ya['gmt'],$log['time']))).'</span></div>';
}
}else echo '<div class="fon">'.language('Информации нет').'</div>';
}
} else {
$old = htmlspecialchars($db->real_escape_string($_POST['old']));
if($ya['pass']==md5(md5($old))){
$pass = md5(md5($_POST['pass']));
if(!preg_match("/[^a-z0-9]+/i",$_POST['pass'])){
if(mb_strlen(trim($func->delprobel($_POST['pass']))) >= 4 && mb_strlen(trim($func->delprobel($_POST['pass']))) <= 12){
if(trim($_POST['pass']) == trim($_POST['pass2'])){
$db -> query("UPDATE `users` SET `pass` = '".$pass."' WHERE `id` = '".$ya['id']."'");
header('Location: ?mode=security');
}else{echo '<div class="fon">'.language('Повторение пароля введено не верно').'.</div>';}
}else{echo '<div class="fon">'.language('Пароль не может быть короче 4х и длиннее 12ти символов').'.</div>';}
}else{echo '<div class="fon">'.language('Пароль может содержать только A-z и 0-9').'.</div>';}
}else{echo '<div class="fon">'.language('Текущий пароль был введён неверно').'.</div>';}
echo '<div class="levo"><a href="?mode=security" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Назад').'</a></div>';
}
break;
default:
echo '<div class="but_razdel">
<div class="button_razdel" style="width:50%"><b>'.language('Персонализация').'</b></div>
<a class="button_razdel" style="width:50%" href="?mode=security">'.language('Безопасность').'</a>
</div>';
if (!isset($_POST['submit'])) {
//сортировка
$sort = array('ASC' => language('Новые в конце'), 'DESC' => language('Новые в начале'));
$stat1 = null;
foreach ($sort as $key1 => $value1) {
if ($ya['sort'] == $key1) $stat1 .= '<option selected value="'.$key1.'">'.$value1.'</option>';
else $stat1 .= '<option value="'.$key1.'">'.$value1.'</option>';
}
//кол-во элементов на страницу
$p = array('5' => '5', '10' => '10', '15' => '15');
$p1 = null;
foreach ($p as $k1 => $v1) {
if ($ya['num'] == $k1) $p1 .= '<option selected value="'.$k1.'">'.$v1.'</option>';
else $p1 .= '<option value="'.$k1.'">'.$v1.'</option>';}
//дизайн
$st = $db -> query("SELECT `name` FROM `styles` where `url`='".$ya['style']."'")-> fetch_assoc();
$stat .= '<option value="'.$ya['style'].'">'.$st['name'].'</option>';
$s = $db -> query("SELECT `url`,`name` FROM `styles` where `url`<>'".$ya['style']."'");
while ($assoc = $s -> fetch_assoc()) {
$stat .= '<option value="'.$assoc['url'].'">'.$assoc['name'].'</option>';
}
//почта
if ($ya['mail'] == 0) $mail= true;else $mail = false;
//пояс
if($db->settings('gmt_user')=='yes'){
$time= null;
foreach ($gmt_array as $key5 => $value5) {
if ($ya['gmt'] == $key5) $time .= '<option selected value="'.$key5.'">'.$value5.'</option>';
else $time .= '<option value="'.$key5.'">'.$value5.'</option>';
}
}
echo '<div class="fon"><form action="?" method="POST">
'.language('Сортировка элементов').':<br/><select name="sort">'.$stat1.'</select><br/>';
echo language('Элементов на странице').':<br/><select name="num">'.$p1.'</select><br/>';
if($db->settings('gmt_user')=='yes')echo language('Часовой пояс').':<br/><select name="gmt">'.$time.'</select><br/>';
$st = $db -> query("SELECT `id` FROM `styles`");
if ($st -> num_rows > 1)echo ''.language('Стиль сайта').':<br/><select name="style">'.$stat.'</select><br/>';
echo $diz->checkbox('mail','Личные сообщения',$mail);
echo '<input type="submit" name="submit" value="'.language('Сохранить').'"/></form></div>';
} else {
$style = shit(trim($_POST['style']));
if(isset($style)){
$st = $db -> query("SELECT `url` FROM `styles` WHERE `url` = '".$style."' LIMIT 1");
if ($st -> num_rows > 0){
$s=$st->fetch_assoc();
$style=$s['url'];
}else $style=$ya['style'];
}else $style=$ya['style'];
if(!is_numeric($_POST['gmt']) or !array_key_exists($_POST['gmt'],$gmt_array))$gmt=$db->settings('gmt'); else $gmt=shit($_POST['gmt']);
$mail = $func->checkbox_read($_POST['mail'],0,1);
$num = (!empty($_POST['num']) && ($_POST['num']>=5 or $_POST['num']<=15)) ? abs(intval($_POST['num'])) : 10;
$sort = (!empty($_POST['sort']) && ($_POST['sort'] == 'DESC' or $_POST['sort'] == 'ASC')) ? shit($_POST['sort']) : 'ASC';
$db -> query("UPDATE `users` SET
`sort` = '".$sort."',
`num` = '".$num."',
`gmt` = '".$gmt."',
`style` = '".$style."',
`mail` = '".$mail."'
WHERE `id` = '".$ya['id']."'");
header('Location: ?');
}
}
echo '<div class="levo"><a href="./" class="levo_tuch">'.$diz -> icon('back.png').' '.language('Мой кабинет').'</a></div>';
echo '<div class="levo"><a href="'.ROOT.'" class="levo_tuch">'.$diz -> icon('home.png').' '.language('На главную').'</a></div>';
#####Копирайт#######
$diz -> out($msg);
?>