авторизация, выход из профиля, регистрация


Создание страниц авторизация, выход из профиля, регистрация (частный случай)

Параметры:

авторизация

код шаблона

<form action="" id="sign-form" onsubmit=" var parstr = jQuery('#sign-form').serialize(); doAjRouteJSON('personal-area/do/do_login.php','login_res','&'+parstr,'','',''); return false;">
<div class="input-group">
<input type="text" class="form-control" placeholder="Login" name="LOGIN">
<span class="input-group-addon ico-sign"> <i class="fa fa-user"></i>
</span>
</div>
<div class="input-group">
<input type="text" class="form-control" placeholder="Пароль" name="PASS">
<span class="input-group-addon ico-sign"> <i class="fa fa-lock"></i>
</span>
</div>
<div class="checkbox">
<label for="remember-me">
<input type="checkbox" name="remember-me">Запомнить меня</label>
</div>
<div class="sign-button">
<button type="submit" class="btn btn-success">Войти</button>
</div>
</form>

код файла do

<?php
$json_array = array('html'=>'','html2'=>'','js'=>''); // то что вернется
$LOGIN = ''; if (isset($_GET['LOGIN'])); @$LOGIN = $_GET['LOGIN']; // Получаем параметры
$PASS = ''; if (isset($_GET['PASS'])); @$PASS = $_GET['PASS'];
$sql="SELECT ID, NAZ, ENAB FROM PERSONA WHERE (ULGN=".sqlSTR($LOGIN).") AND ((UPAS=".sqlSTR(md5($PASS)).") OR (UPASTMP=".sqlSTR(date('Ymd').md5($PASS))."))";
sleep(1);
$uida = GetFieldsFromSQL($this->conn,$sql,array(0,0,0,0));
$error = '';
$mess2='';
if(!$uida[0]) {
$error = "Вы ввели неверный логин или пароль";
}
elseif (!$uida[2])
{
$error = "У Вас отключена возможность регистрации";
}
else{
$mess2="Добро пожаловать ".hsc($uida[1]);
global $_SESSION;
$_SESSION['w_karloid'] = $uida[0];
$this->RecalcAccDenNodes();
}
global $m_conf;
if ($error)
$json_array['html'] = "<div class="c-red">".hsc($error)."</div>"; // Возврат в блок в шаблоне
elseif ($mess2)
$json_array['html'] = "<div class="c-green">".hsc($mess2)."</div>";
if (!$error)
{
$loc = $m_conf['host'].'';
$json_array['js'] = "window.location='$loc';";
}
die(json_encode($json_array));
?>

выход из профиля

код шаблона

<section class="user-box"> <a href="pa-personal-profile" class="btn btn-primary btn-sm btn-block">Мой профиль</a> <a href="pa-main?CMD=personal-area/do/logout" class="btn btn-primary btn-sm btn-block">Выход</a> </section>

код файла do

<?php global $m_conf; $_SESSION['w_karloid']=0; unset($_SESSION['w_karloid']); $this->RecalcAccDenNodes (); header('Location: '. $m_conf['host']); exit; ?>

регистрация

код шаблона

<form action="" method="post" class="col-md-6 reg-form" id="form-registration" onsubmit="
var parstr = jQuery('#form-registration').serialize();
doAjRouteJSON('personal-area/do/do_reg_persona.php','registration_res','&'+parstr,'','','');return false;">
<div class="form-group clearfix">
<label for="NAME" class="col-md-3 control-label">Iм'я:<span class="red">*</span></label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="NAME">
</div>
</div>
<div class="form-group clearfix">
<label for="LNAME" class="col-md-3 control-label">Прізвище:<span class="red">*</span></label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="LNAME">
</div>
</div>
<div class="form-group clearfix">
<label for="NAME" class="col-md-3 control-label">Побатькові:</label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="SNAME">
</div>
</div>
<div class="form-group clearfix">
<label for="NAME" class="col-md-3 control-label">Email:<span class="red">*</span></label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="EMAIL">
</div>
</div>
<div class="form-group clearfix">
<label for="NAME" class="col-md-3 control-label">Телефон:</label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="PHONE">
</div>
</div>
<div class="form-group clearfix">
<label for="LOGIN" class="col-md-3 control-label">Логiн:<span class="red">*</span></label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="LOGIN">
</div>
</div>
<div class="form-group clearfix">
<label for="PASS" class="col-md-3 control-label">Пароль:<span class="red">*</span></label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="PASS">
</div>
</div>
<div class="form-group clearfix">
<label for="PASS_CHECK" class="col-md-3 control-label ps">Пiдтвердження пароля:<span class="red">*</span></label>
<div class="input-group clearfix">
<input type="text" class="form-control" name="PASS_CHECK">
</div>
</div>
<button type="submit" class="btn btn-block btn-lg">Зареєструватися</button>
</form>
<div class="col-md-12" id="registration_res"></div>

код файла do

<?php
$json_array = array('html'=>'','html2'=>'','js'=>''); // то что вернется
global $_SESSION;
$error='';
$mess2='';
$NAME = ''; if (isset($_GET['NAME'])); @$NAME = $_GET['NAME'];
$LNAME = ''; if (isset($_GET['LNAME'])); @$LNAME = $_GET['LNAME'];
$SNAME = ''; if (isset($_GET['SNAME'])); @$SNAME = $_GET['SNAME'];
$EMAIL = ''; if (isset($_GET['EMAIL'])); @$EMAIL = $_GET['EMAIL'];
$PHONE = ''; if (isset($_GET['PHONE'])); @$PHONE = $_GET['PHONE'];
$LOGIN = ''; if (isset($_GET['LOGIN'])); @$LOGIN = $_GET['LOGIN'];
$PASS = ''; if (isset($_GET['PASS'])); @$PASS = $_GET['PASS'];
$PASS_CHECK = ''; if (isset($_GET['PASS_CHECK'])); @$PASS_CHECK = $_GET['PASS_CHECK'];
if (!$NAME) $error .=(($error)?', ':'').'Не вказано ім'я';
if (!$LOGIN) $error .=(($error)?', ':'').'Не вказан логін';
if (!$LNAME) $error .=(($error)?', ':'').'Не вказано прізвище';
if (!$EMAIL) $error .=(($error)?', ':'').'Не вказаний Email';
if (!$PASS) $error .=(($error)?', ':'').'Не вказаний пароль';
if (!$PASS_CHECK) $error .=(($error)?', ':'').'Підтвердіть пароль';
if($PASS!=$PASS_CHECK) $error .=(($error)?', ':'').'Паролі не співпадають';
if (!$error)
{
$n=GetFieldFromSQL($this->conn, "SELECT ID FROM PERSONA WHERE (ULGN=".sqlSTR($LOGIN).") AND ID>0", '');
if($n) $error.='Користувач з таким логiн'ом вже існує!'; // Проверка на дубль акаунта
}
if(!$error)
{
$pers = NewObject($this->conn,'TPersona',0);
$pers->check_rights = false;
$pers->sf('ULGN',$LOGIN);
$pers->sf('NEWPAS',$PASS);
$pers->sf('IMIA',$NAME);
$pers->sf('TEL',$PHONE);
$pers->sf('EMAIL',$EMAIL);
$pers->sf('FAMILIA',$LNAME);
$pers->sf('OTCHEST',$SNAME);
$pers->sf('ENAB',1);
$s = $pers->BaseInsert();
if($s)
{
$error.=$s;
}
else
{
global $_SESSION;
$_SESSION['w_karloid'] = $pers->id;
$this->RecalcAccDenNodes();
//Отправка писем
$mess_templ = NewObject($this->conn,'TCms_mess_template');
$s = $mess_templ->FindByCode("registration_to_user");
if ($s) die($s); //Ошибка
$ar = array('EMAIL'=>$EMAIL,'NAME'=>$NAME,'LNAME'=>$LNAME);
$to = $EMAIL;
$mess_templ->Send($to,$ar);
# сообщение админу
$s = $mess_templ->FindByCode("registration_to_admin");
if ($s) die($s); //Ошибка
$ar = array('EMAIL'=>$EMAIL,'NAME'=>$NAME,'LNAME'=>$LNAME);
$mess_templ->Send('',$ar);
}
}
global $m_conf;
if(!$error) $mess2="Ви успішно зареєстровані";
if ($error)
$json_array['html'] = "<div class="c-red bg-danger">".hsc($error)."</div>"; // Возврат в блок в шаблоне
elseif ($mess2)
$json_array['html'] = "<div class="c-green bg-success">".hsc($mess2)."</div>";
if (!$error)
{
$loc = $m_conf['host'].'';
$json_array['js'] = "window.location='$loc';";
}
die(json_encode($json_array));
?>