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; } }
<?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);
*/ 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 = "";
*/ 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 = "";