コード例 #1
0
/**
 * Авторизация пользователя и формирование 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;
}
コード例 #2
0
ファイル: index.php プロジェクト: bossit/thefullstack.ru
<?php

require_once $_SERVER['DOCUMENT_ROOT'] . '/local/header.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/vendor/autoload.php';
$loader = new Twig_Loader_Filesystem($_SERVER['DOCUMENT_ROOT'] . '/admin/templates/');
$twig = new Twig_Environment($loader, $arTwigConfig);
$twig->addExtension(new Twig_Extension_Debug());
/** @var CDataBase Объект подключения к базе данных */
$db = new CDataBase($arConnect);
/** @var string Тип материала */
$type = ClearValueString($_GET['type'], 50, true);
/** @var string Числовой идентификатор материала */
$id_item = ClearValueIntval($_GET['id']);
if (!empty($type)) {
    switch ($type) {
        case 'article':
            /** @var string Название шаблона */
            $tpl = 'edit-article.html';
            if ($id_item > 0) {
                if (isset($_POST)) {
                    $isUpdate = $db->Update('articles', $_POST, array('ID' => $id_item));
                }
                $query = $db->Query('SELECT * FROM `articles` WHERE `ID` = ' . $id_item);
                if ($query->num_rows == 1) {
                    if ($result = $query->fetch_assoc()) {
                        $content['article']['detail'] = $result;
                    }
                }
            } else {
                if (isset($_POST)) {
                    $db->Insert('articles', $_POST);
コード例 #3
0
/**
 * Создание нового заказа
 * Возвращается код добавленного заказа или 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;
}