function replaceBook(Book $newBook)
{
    $db = new ServerDatabase();
    $db->newQuery("UPDATE book SET author='%2', title='%3', image='%4', category=%5 WHERE id=%1");
    $db->addParameter($newBook->id);
    $db->addParameter($newBook->author);
    $db->addParameter($newBook->title);
    $db->addParameter($newBook->image);
    $db->addParameter($newBook->category);
    $db->execute();
    return $db->getRowsAffected() > 0;
}
function emptyBasket($sessionId, $db = null)
{
    if (!$db) {
        $db = new ServerDatabase();
    }
    try {
        $db->newQuery("DELETE FROM basket WHERE session = '%1'");
        $db->addParameter($sessionId);
        $db->execute();
        return true;
    } catch (Exception $e) {
        return false;
    }
}
Ejemplo n.º 3
0
<?php

/*
** Создание БД
*/
require "server.classes.php";
define("USER_DB", "users.db");
if (file_exists(USER_DB)) {
    unlink(USER_DB);
}
$db = new ServerDatabase(USER_DB);
$db->newQuery("CREATE TABLE user\n\t\t(\n\t\t\tname \t\t\tTEXT,\t\t-- Имя пользователя\n\t\t\temail \t\t\tTEXT,\t\t-- E-mail/логин пользователя\n\t\t\tpassword \t\tTEXT, \t\t-- Хеш пароля пользователя\n\t\t\tsalt \t\t\tTEXT,\t\t-- Соль (энтропия) хеширования пароля\n\t\t\titerationCount\tNUMERIC, \t-- Число итераций засоливания\n\t\t\tPRIMARY KEY (email)\t\t\t-- Первичный ключ - это E-mail пользователя\n\t\t)");
$db->execute();
$db->newQuery("CREATE INDEX ixUserName ON user (name)");
$db->execute();
// Создание пользователей
createUser(new User("Вася Пупкин", "*****@*****.**", "password"));
createUser(new User("Федя Сумкин", "*****@*****.**", "password"));
createUser(new User("Маша Морковкина", "*****@*****.**", "password"));
echo "<h2>База данных создана!</h2>";
// Функция добавления пользователя в БД
function createUser($user)
{
    global $db;
    $user->setPassword($user->password);
    $db->newQuery("INSERT INTO user (name, email, password, salt, iterationCount) VALUES ('%1', '%2', '%3', '%4', %5)");
    $db->addParameter($user->name);
    $db->addParameter($user->email);
    $db->addParameter($user->password);
    $db->addParameter($user->dbEntropy->salt);
    $db->addParameter($user->dbEntropy->iterationCount);
Ejemplo n.º 4
0
*/
require 'server.classes.php';
// Объект пользователя
$user = new User();
// Читаем данные, переданные в POST
$rawPost = file_get_contents('php://input');
// Если данные были переданы...
if ($rawPost) {
    // Десериализация пакета JSON
    $userInfo = json_decode($rawPost);
    // Если email указан - находим пользователя в БД
    if ($userInfo->email) {
        $db = new ServerDatabase();
        $db->newQuery("SELECT name, email, password, salt, iterationCount FROM user WHERE email = '%1'");
        $db->addParameter($userInfo->email);
        $result = $db->execute(true);
        // Если пользователь найден - заполним его данные...
        if (count($result) > 0) {
            $user->fillFromArray($result[0]);
        }
        // Если пароль указан - проверяем его
        if ($userInfo->password) {
            // Восстанавливаем энтропию, которая использовалась при передаче
            $user->transferEntropy = new Entropy($userInfo->transferEntropy->salt, $userInfo->transferEntropy->iterationCount);
            // Если пароль указан неверно - стираем данные
            if (!$user->isValidPassword($userInfo->password)) {
                $user->name = "";
            }
        } else {
            // Стираем данные о имени
            $user->name = "";
Ejemplo n.º 5
0
*/
require 'server.classes.php';
// Объект пользователя
$user = new User();
// Читаем данные, переданные в POST
$rawPost = file_get_contents('php://input');
// Если данные были переданы...
if ($rawPost) {
    // Десериализация пакета JSON
    $userInfo = json_decode($rawPost);
    // Если email указан - находим пользователя в БД
    if ($userInfo->email) {
        $db = new ServerDatabase();
        $db->newQuery("SELECT name, email, password, salt, iterationCount FROM user WHERE email = '%1'");
        $db->addParameter($userInfo->email);
        $result = $db->execute();
        // Если пользователь найден - заполним его данные...
        if (count($result) > 0) {
            $user->fillFromArray($result[0]);
        }
        // Если пароль указан - проверяем его
        if ($userInfo->password) {
            // Восстанавливаем энтропию, которая использовалась при передаче
            $user->transferEntropy = new Entropy($userInfo->transferEntropy->salt, $userInfo->transferEntropy->iterationCount);
            // Если пароль указан неверно - стираем данные
            if (!$user->isValidPassword($userInfo->password)) {
                $user->name = "";
            }
        } else {
            // Стираем данные о имени
            $user->name = "";