Здравствуйте! Товар не добавляется в корзину. Где ошибка?
config.inc.php<?php
/* Основные настройки */
define(DB_HOST, "localhost");
define(DB_LOGIN, "root");
define(DB_PASSWORD, "12345");
define(DB_NAME, "eshop");
define(ORDERS_LOG, "orders.log");
$basket = []; // создаю пустой массив для хранения корзины пользователя
$count = 0; // для хранения количества товаров в корзине пользователя
$link = mysqli_connect(DB_HOST, DB_LOGIN, DB_PASSWORD, DB_NAME); // соединение с БД и выбор БД
// Отслеживаем ошибки при соединении с БД
if( !$link){
echo 'Ошибка: '
. mysqli_connect_errno()
. ': '
. mysqli_connect_error();
}
/* / Основные настройки */
lib.inc.php<?php
// отфильтровать принятые из формы данные (в аргумент приходит дата/число)
function clearInt($data){
return abs((int)$data);
}
// отфильтровать принятые из формы данные (в аргумент приходит дата/число)
function clearStr($data){
global $link; // соединение с БД установлено в "config.inc.php"
return mysqli_real_escape_string($link, trim(strip_tags($data)));
}
// функция сохраняющая новый товар в таблицу catalog:
function addItemToCatalog ($title, $autor, $bubyear, $price) {
global $link;// соединение с БД установлено в "config.inc.php"
$sql = "INSERT INTO catalog (title, autor, pubyear, price)
VALUES (?, ?, ?, ?)"; // запрос на вставку данных в таблицу каталог (title... - поля табли)
// исполнить запрос на вставку даннных:
if (!$stmt = mysqli_prepare($link, $sql)) {
return false; // если функция addItemToCatalog не отработала
// msqli_prepare() - вот тебе запрос, подготовся, к нему будут идти данные
// в $stmt прийдет объект или false
}
else {
mysqli_stmt_bind_param($stmt, "ssii", $title, $autor, $pubyear, $price); // привязывает переменные к параметрам подготавливаемого запроса ($stmt - кому передать параметры, "ssii" - параметры какого типа: str/int)
mysqli_stmt_execute($stmt); // А теперь, исполни подготовленный запрос с переданными параметрами
mysqli_stmt_close($stmt);
return true;
}
}
save2cat.php<?php
// подключение библиотек
require "secure/session.inc.php";
require "../inc/lib.inc.php";
require "../inc/config.inc.php";
// Получите и отфильтруйте данные из формы:
$title = clearStr($_POST['title']);
$autor = clearStr($_POST['autor']);
$pubyear = clearInt($_POST['pubyear']);
$price = clearInt($_POST['price']);
// Вызовите функцию addItemToCatalogдля сохранения нового товара в базе данных:
if(!addItemToCatalog($title, $author, $pubyear, $price)){
echo 'Произошла ошибка при добавлении товара в каталог';
}
else {
header("Location: add2cat.php"); // редирект (переадресация) на "add2cat.php"
exit;
}