/**
 * Создание нового заказа
 * Возвращается код добавленного заказа или false в случае ошибки.
 */
function NewOrder($arParams)
{
    if (is_array($arParams) && UserGetType() == 'C') {
        $name = ClearValueString($arParams['order_name'], 120);
        $text = ClearValueString($arParams['order_text']);
        $price = ClearValueIntval($arParams['order_price'], array('min' => 500, 'max' => 999999));
        if (strlen($name) > 0 && strlen($text) > 0 && !is_null($price)) {
            $tax_value = GetTaxValue();
            $tax_price = GetTaxPrice($price);
            $conn = dbconn('b_orders');
            // Подключаемся к шарду, на котором находиться таблица
            if ($conn) {
                $query = 'INSERT INTO `b_orders`
                    (`ID`, `DATE_INSERT`, `NAME`, `DESCRIPTION`, `PRICE`, `TAX_VALUE`, `TAX_PRICE`, `CUSTOMER_ID`)
                    VALUES
                    (NULL, NOW(), "' . _in_base($name) . '", "' . _in_base($text) . '", ' . $price . ', ' . $tax_value . ',
                    ' . $tax_price . ', ' . UserGetID() . ')';
                if ($conn->query($query)) {
                    return $conn->insert_id;
                } else {
                    return $conn->erorr;
                }
            } else {
                return 'DB_CONNECT_ERROR';
            }
        }
    }
    return false;
}
/**
 * Авторизация пользователя и формирование http://bx.ecklos.ru/данных в массив
 */
function UserAuthorize()
{
    if (isset($_COOKIE['user_id']) && isset($_COOKIE['user_hash'])) {
        $auth_err = 0;
        $user_id = ClearValueIntval($_COOKIE['user_id']);
        $user_hash = ClearValueString($_COOKIE['user_hash'], 32, true);
        if ($user_id >= 1) {
            $auth_err++;
        } elseif (strlen($user_hash) != 32 || !ctype_alnum($user_hash)) {
            // Хеш строго из 32х знаков и только латиница-цифры
            $auth_err++;
        }
        if ($auth_err > 0) {
            $conn = dbconn('b_users');
            // Подключаемся к шарду, на котором находиться таблица
            if ($conn) {
                $query = 'SELECT `LOGIN`, `TYPE` FROM `b_users` WHERE `ID` = ' . $user_id . ' AND `HASH` = "' . _in_base($user_hash) . '"';
                if ($result = $conn->query($query)) {
                    if ($result->num_rows == 1) {
                        if ($arUser = $result->fetch_array(MYSQLI_ASSOC)) {
                            $_SESSION["SESS_AUTH"]["AUTHORIZED"] = "Y";
                            $_SESSION["SESS_AUTH"]["USER_ID"] = $user_id;
                            $_SESSION["SESS_AUTH"]["USER_LOGIN"] = $arUser['LOGIN'];
                            $_SESSION["SESS_AUTH"]["USER_TYPE"] = $arUser['TYPE'];
                            return true;
                        }
                    }
                }
            } else {
                header('Location: /update/');
            }
        }
        UserLogout();
    }
    return false;
}
Example #3
0
 $user_remember = filter_var($arFields['remember'], FILTER_VALIDATE_BOOLEAN);
 if (!ctype_alnum($arFields['login'])) {
     $arRequest['MESSAGE'] = 'Логин должен состоять только из латинских букв и цифр';
 } elseif (strlen($user_login) < 3) {
     $arRequest['MESSAGE'] = 'Длина логина от 3х до 20 символов';
 } elseif (strlen($user_password) < 3) {
     $arRequest['MESSAGE'] = 'Длина пароля от 3х до 20 символов';
 }
 /**
  * Если ошибок не найдено, авторизуем пользователя
  */
 if (empty($arRequest['MESSAGE'])) {
     $conn = dbconn('b_users');
     // Подключаемся к шарду, на котором находиться таблица
     if ($conn) {
         $query = 'SELECT COUNT(`ID`), `ID` FROM `b_users` WHERE `LOGIN` = "' . _in_base($user_login) . '" AND `PASSWORD` = "' . md5($user_password) . '"';
         if ($result = $conn->query($query)) {
             $result_row = $result->fetch_row();
             $count_row = $result_row[0];
             // Значение поля COUNT(`ID`)
             $user_id = $result_row[1];
             // Значение поля ID
             if ($count_row == 1) {
                 /**
                  * Формируем хеш авторизации и добавляем его в БД
                  */
                 $user_hash = md5(uniqid(rand()));
                 $conn->query('UPDATE `b_users` SET `HASH` = "' . $user_hash . '" WHERE `ID` = ' . $user_id);
                 if ($user_remember) {
                     setcookie("user_id", $user_id, time() + AUTH_COOKIE_REMEMBER, '/');
                     setcookie("user_hash", $user_hash, time() + AUTH_COOKIE_REMEMBER, '/');