function __construct() { $this->fPass = new Models_Forgotpass(); if (URL::getQueryParametr('logout')) { User::logout(); } if (User::isAuth()) { MG::redirect('/personal'); } if (isset($_POST['registration'])) { // Если данные введены верно. if (!$this->unValidForm()) { USER::add($this->userData); $message = '<span class="succes-reg">Вы успешно зарегистрировались! Для активации пользователя Вам необходимо перейти по ссылке высланной на Ваш электронный адрес <strong>' . $this->userData['email'] . '</strong></span>'; $form = false; // Рассылаем письма со ссылкой для подтверждения регистрации. $this->_sendActivationMail($this->userData['email']); unset($_POST); } else { $error = $this->error; $form = true; } } else { // Если пользователь не авторизован. if (!User::isAuth() && (isset($_POST['email']) || isset($_POST['pass']))) { if (!User::auth(URL::get('email'), URL::get('pass'))) { $error = '<span class="msgError">' . 'Неправильная пара email-пароль! Авторизоваться не удалось.' . '</span>'; } else { $this->successfulLogon(); } } } $data = array('meta_title' => 'Авторизация', 'msgError' => $error, 'message' => $message, 'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "Авторизация,вход, войти в личный кабинет", 'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "Авторизуйтесь на сайте и вы получите дополнительные возможности, недоступные для обычных пользователей."); $this->data = $data; }
public function testAddUser() { $u = new USER(); $details = array("firstname" => 'Test', "lastname" => 'User', "email" => '*****@*****.**', "emailpublic" => '0', "postcode" => 'EH1 99SP', "mp_alert" => false, "url" => '', "password" => '', "optin" => '0', "status" => 'User'); $u->add($details, false); $id = $u->user_id(); $u->init($id); $this->assertEquals('Test', $u->firstname()); $this->assertEquals('EH1 99SP', $u->postcode()); }
function __construct() { $this->fPass = new Models_Forgotpass(); $form = true; // Отображение формы. // // Оброботка действий пользователя при регистрации. if (isset($_POST['registration'])) { // Если данные введены верно. if (!$this->unValidForm()) { USER::add($this->userData); $message = '<span class="succes-reg">Вы успешно зарегистрировались! Для активации пользователя Вам необходимо перейти по ссылке высланной на Ваш электронный адрес <strong>' . $this->userData['email'] . '</strong></span>'; $form = false; // Рассылаем письма со ссылкой для подтверждения регистрации. $this->_sendActivationMail($this->userData['email']); } else { $error = $this->error; $form = true; } } // Обработка действий перехода по ссылки. if (URL::getQueryParametr('id')) { $userInfo = USER::getUserById(URL::getQueryParametr('id')); $hash = URL::getQueryParametr('sec'); // Если присланный хэш совпадает с хэшом из БД для соответствующего id. if ($userInfo->restore == $hash) { // Меняет в БД случейным образом хэш, делая невозможным повторный переход по ссылки. $this->fPass->sendHashToDB($userInfo->email, $this->fPass->getHash('0')); $message = 'Ваша учетная запись активирована. Теперь Вы можете <a href="' . SITE . '/enter">войти в личный кабинет</a> используя логин и пароль заданный при регистрации.'; $form = false; $this->fPass->activateUser(URL::getQueryParametr('id')); } else { $error = 'Некорректная ссылка. Повторите активацию!'; $form = false; } } // Обработка действий при запросе на повторную активацию. if ($_POST['reActivate']) { $email = URL::getQueryParametr('activateEmail'); if (USER::getUserInfoByEmail($email)) { $this->_sendActivationMail($email); $message = 'Для активации пользователя Вам необходимо перейти по ссылке высланной на Ваш электронный адрес ' . $this->userData['email']; $form = false; } else { $error = 'К сожалению, такой логин не найден. Если вы уверены, что данный логин существует, свяжитесь, пожалуйста, с нами.'; $form = false; } } $this->data = array('error' => $error, 'message' => $message, 'form' => $form, 'meta_title' => 'Регистрация', 'meta_keywords' => !empty($model->currentCategory['meta_keywords']) ? $model->currentCategory['meta_keywords'] : "регистрация, зарегистрироваться", 'meta_desc' => !empty($model->currentCategory['meta_desc']) ? $model->currentCategory['meta_desc'] : "Зарегистрируйтесь в системе, чтобы получить дополнительные возможности, такие как просмотр состояния заказа"); }
/** * Если заказ оформляется впервые на нового покупателя, то создает новую запись в таблице пользователей. */ public function addNewUser() { // Если заказ производит новый пользователь, то регистрируем его if (MG::getSetting('autoRegister') == "true") { if ($this->newUser) { USER::add(array('email' => $this->email, 'role' => 2, 'name' => $this->fio ? $this->fio : 'Пользователь', 'pass' => crypt(time()), 'address' => $this->address, 'phone' => $this->phone, 'ip' => $this->ip, 'nameyur' => $_POST['yur_info']['nameyur'], 'adress' => $_POST['yur_info']['adress'], 'inn' => $_POST['yur_info']['inn'], 'kpp' => $_POST['yur_info']['kpp'], 'bank' => $_POST['yur_info']['bank'], 'bik' => $_POST['yur_info']['bik'], 'ks' => $_POST['yur_info']['ks'], 'rs' => $_POST['yur_info']['rs'])); } } }
/** * Сохраняет и обновляет параметры заказа. * @return type */ public function saveOrder() { $this->messageSucces = $this->lang['ACT_SAVE_ORD']; $this->messageError = $this->lang['ACT_SAVE_ORDER']; if (count($_POST['order_content']) != $_POST['orderPositionCount']) { $this->messageError = 'Невозможно передать столь большой заказ на ваш сервер. Необходимо изменить настройки web-сервера!'; return false; } unset($_POST['orderPositionCount']); // Cобираем воедино все параметры от юр. лица если они были переданы, для записи в информацию о заказе. $_POST['yur_info'] = ''; $informUser = $_POST['inform_user']; unset($_POST['inform_user']); if (!empty($_POST['inn'])) { $_POST['yur_info'] = array('email' => htmlspecialchars($_POST['orderEmail']), 'name' => htmlspecialchars($_POST['orderBuyer']), 'address' => htmlspecialchars($_POST['orderAddress']), 'phone' => htmlspecialchars($_POST['orderPhone']), 'inn' => htmlspecialchars($_POST['inn']), 'kpp' => htmlspecialchars($_POST['kpp']), 'nameyur' => htmlspecialchars($_POST['nameyur']), 'adress' => htmlspecialchars($_POST['adress']), 'bank' => htmlspecialchars($_POST['bank']), 'bik' => htmlspecialchars($_POST['bik']), 'ks' => htmlspecialchars($_POST['ks']), 'rs' => htmlspecialchars($_POST['rs'])); } $model = new Models_Order(); // Обновление. if (!empty($_POST['id'])) { unset($_POST['inn']); unset($_POST['kpp']); unset($_POST['nameyur']); unset($_POST['adress']); unset($_POST['bank']); unset($_POST['bik']); unset($_POST['ks']); unset($_POST['rs']); unset($_POST['ogrn']); if (!empty($_POST['yur_info'])) { $_POST['yur_info'] = addslashes(serialize($_POST['yur_info'])); } foreach ($_POST['order_content'] as &$item) { foreach ($item as &$v) { $v = rawurldecode($v); } } $_POST['delivery_cost'] = MG::numberDeFormat($_POST['delivery_cost']); $_POST['order_content'] = addslashes(serialize($_POST['order_content'])); $model->refreshCountAfterEdit($_POST['id'], $_POST['order_content']); $model->updateOrder($_POST, $informUser); } else { $newUserData = array('email' => htmlspecialchars($_POST['user_email']), 'role' => 2, 'name' => htmlspecialchars($_POST['name_buyer']), 'pass' => crypt(time()), 'address' => htmlspecialchars($_POST['address']), 'phone' => htmlspecialchars($_POST['phone']), 'inn' => htmlspecialchars($_POST['inn']), 'kpp' => htmlspecialchars($_POST['kpp']), 'nameyur' => htmlspecialchars($_POST['nameyur']), 'adress' => htmlspecialchars($_POST['adress']), 'bank' => htmlspecialchars($_POST['bank']), 'bik' => htmlspecialchars($_POST['bik']), 'ks' => htmlspecialchars($_POST['ks']), 'rs' => htmlspecialchars($_POST['rs'])); if ($_POST['user_email'] != '') { USER::add($newUserData); } $orderArray = $model->addOrder($_POST); $id = $orderArray['id']; $orderNumber = $orderArray['orderNumber']; $this->messageSucces = $this->lang['ACT_SAVE_ORD'] . ' № ' . $orderNumber; $_POST['id'] = $id; $_POST['newId'] = $id; $_POST['number'] = $orderNumber; $_POST['date'] = MG::dateConvert(date('d.m.Y H:i')); } $_POST['count'] = $model->getNewOrdersCount(); $_POST['date'] = MG::dateConvert(date('d.m.Y H:i')); $this->data = $_POST; return true; }
/** * Регистрация на сайте и в таблице uLogin * @param Array $u_user - данные о пользователе, полученные от uLogin * @param int $in_db - при значении 1 необходимо переписать данные в таблице uLogin * @return bool|int|Error */ function ulogin_registration_user($u_user, $in_db = 0) { if (!isset($u_user['email'])) { die("Через данную форму выполнить вход/регистрацию невозможно. </br>" . "Сообщиете администратору сайта о следующей ошибке: </br></br>" . "Необходимо указать <b>email</b> в возвращаемых полях <b>uLogin</b>"); } $u_user['network'] = isset($u_user['network']) ? $u_user['network'] : ''; $u_user['phone'] = isset($u_user['phone']) ? $u_user['phone'] : ''; // данные о пользователе есть в ulogin_table, но отсутствуют в Базе if ($in_db == 1) { DB::query("DELETE FROM " . PREFIX . "ulogin WHERE `identity` = " . DB::quote($u_user['identity'])); } $user_id = USER::getUserInfoByEmail($u_user['email']); $user_id = $user_id->id; // $check_m_user == true -> есть пользователь с таким email $check_m_user = $user_id > 0 ? true : false; $current_user = USER::isAuth() ? USER::getThis() : 0; // $isLoggedIn == true -> ползователь онлайн $isLoggedIn = isset($current_user->id) && $current_user->id > 0 ? true : false; if (!$check_m_user && !$isLoggedIn) { // отсутствует пользователь с таким email в базе -> регистрация $date = explode('.', $u_user['bdate']); $insert_user = array('pass' => md5(microtime(true)), 'email' => $u_user['email'], 'role' => 2, 'name' => $u_user['first_name'], 'sname' => $u_user['last_name'], 'address' => '', 'phone' => $u_user['phone'], 'birthday' => $date['2'] . '-' . $date['1'] . '-' . $date['0'], 'activity' => 1); $user_id = USER::add($insert_user); $user_id = DB::insertId(); $userData = USER::getUserById($user_id); $res = DB::query("INSERT INTO " . PREFIX . "ulogin (user_id, identity, network)\n\t\tVALUES (" . DB::quote($user_id) . "," . DB::quote($u_user['identity']) . "," . DB::quote($u_user['network']) . ")"); return $userData->id; } else { // существует пользователь с таким email или это текущий пользователь if (!isset($u_user["verified_email"]) || intval($u_user["verified_email"]) != 1) { die('<head></head><body><script src="//ulogin.ru/js/ulogin.js" type="text/javascript"></script><script type="text/javascript">uLogin.mergeAccounts("' . $_POST['token'] . '")</script>' . "Электронный адрес данного аккаунта совпадает с электронным адресом существующего пользователя. <br>Требуется подтверждение на владение указанным email.</br></br>" . "Подтверждение аккаунта" . "</body>"); } if (intval($u_user["verified_email"]) == 1) { $user_id = $isLoggedIn ? $current_user->id : $user_id; $other_u = DB::query("SELECT identity FROM " . PREFIX . "ulogin where `user_id` = " . DB::quote($user_id)); $other_u = DB::fetchAssoc($other_u); if ($other_u) { if (!$isLoggedIn && !isset($u_user['merge_account'])) { die('<head></head><body><script src="//ulogin.ru/js/ulogin.js" type="text/javascript"></script><script type="text/javascript">uLogin.mergeAccounts("' . $_POST['token'] . '","' . $other_u['identity'] . '")</script>' . "С данным аккаунтом уже связаны данные из другой социальной сети. <br>Требуется привязка новой учётной записи социальной сети к этому аккаунту.<br/>" . "Синхронизация аккаунтов" . "</body>"); } } DB::query("INSERT INTO " . PREFIX . "ulogin (user_id, identity, network)\n\t\t\tVALUES (" . DB::quote($user_id) . "," . DB::quote($u_user['identity']) . "," . DB::quote($u_user['network']) . ")"); return $user_id; } } return false; }