Beispiel #1
0
    require_once INC_TR_FUNC_CACHE;
    $tr_cfg = get_config_ary(BT_CONFIG_TABLE);
    if (TR_USE_CACHE && check_cache_dir(CACHE_DIR)) {
        $cfg_cached = write_cfg_to_cache(CACHE_TR_CFG, $tr_cfg, '$tr_cfg');
    }
}
$u_stat_upd_intrv = $tr_cfg['user_statistic_upd_interval'] * 60;
// Output mode
init_output();
// Exit if tracker is disabled
if ($tr_cfg['off']) {
    error_exit($tr_cfg['off_reason'], '', '', 'off');
}
// Browser redirect
if ($tr_cfg['browser_redirect_url']) {
    browser_redirect();
}
// Clean peers table
if ($tr_cfg['autoclean'] && $tr_cfg['last_clean_time'] + $tr_cfg['autoclean_interval'] * 60 < $current_time) {
    $peer_dead_time = $current_time - $tr_cfg['autoclean_interval'] * 60;
    $sql = 'DELETE FROM ' . BT_TRACKER_TABLE . "\r\n\t\tWHERE expire_time < {$peer_dead_time}";
    if (!$db->sql_query($sql)) {
        error_exit('DB error', __FILE__, __LINE__, 'db');
    }
    $sql = 'UPDATE ' . BT_CONFIG_TABLE . " SET\r\n\t\t\tconfig_value = {$current_time}\r\n\t\tWHERE config_name = 'last_clean_time'";
    if (!$db->sql_query($sql)) {
        error_exit('DB error', __FILE__, __LINE__, 'db');
    }
    $delete_cache = TR_USE_CACHE ? @unlink(CACHE_TR_CFG) : '';
}
// Recover info_hash if we use passkey
Beispiel #2
0
        return '"' . $product_title . '"';
    }, $overhead_quantity_products);
    add_notification('Для товаров ' . implode(', ', $overhead_quantity_products) . ' недостаточен остаток.');
    browser_redirect('cart');
    exit;
}
$order = array(':user_id' => $_SESSION['user_id']);
db_query('INSERT INTO `orders` (`user_id`) VALUES (:user_id);', $order);
$order_id = db_select('SELECT LAST_INSERT_ID();');
$order_id = reset($order_id);
$order_id = reset($order_id);
$order_id = (int) $order_id;
$sql_add_product_to_order = <<<SQL
INSERT INTO `products_at_orders`
  (`product_id`, `order_id`, `quantity`)
  VALUES
  (:product_id, :order_id, :quantity)
SQL;
$sql_decrease_product_quantity = <<<SQL
UPDATE `products`
SET `quantity` = :new_quantity
WHERE `id` = :product_id
SQL;
foreach ($products as $product) {
    db_query($sql_add_product_to_order, array(':product_id' => $product['id'], ':order_id' => $order_id, ':quantity' => $product['quantity_at_cart']));
    db_query($sql_decrease_product_quantity, array(':product_id' => $product['id'], ':new_quantity' => $product['quantity'] - $product['quantity_at_cart']));
}
$_SESSION['cart'] = array();
add_notification('Заказ успешно создан!');
browser_redirect('order', array('order_id' => $order_id));
exit;
Beispiel #3
0
    }
    // Проверим длину пароля
    if (mb_strlen($password) < 6) {
        $errors[] = 'Пароль не может быть менее 6 символов.';
    }
    // Найдём пользователя с таким же email в БД
    $user_with_same_email = db_select('SELECT * FROM `users` WHERE `email` = :email LIMIT 1;', array(':email' => $email));
    // Если нашли - добавляем ошибку
    if (!empty($user_with_same_email)) {
        $errors[] = 'Этот e-mail уже занят.';
    }
    // Если ошибок нет - добавим новую запись в таблицу users
    if (empty($errors)) {
        // Мы храним только хэш пароля
        $password_hash = password_hash($password, PASSWORD_DEFAULT);
        $sql = 'INSERT INTO `users` (`email`, `password_hash`) VALUES (:email, :password_hash)';
        // Выполним SQL-запрос вставки записи, используя именованные параметры
        $affected_rows = db_query($sql, array(':email' => $email, ':password_hash' => $password_hash));
        // Вызов db_query должен вернуть 1, потому что мы вставляем 1 запись
        if ($affected_rows < 1) {
            $errors[] = 'Не удалось завершить регистрацию.';
        }
    }
    // Ошибок не произошло - отправляем пользователя на главную страницу
    if (empty($errors)) {
        browser_redirect('homepage');
    }
}
// Отображаем шаблон в случае если нам не пришли никакие данные из формы,
// либо при обработке данных формы возникли ошибки.
display_template('signup', array('errors' => $errors));