/** * Создание нового заказа * Возвращается код добавленного заказа или 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; }
$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, '/');