Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ot4et.docx
Скачиваний:
5
Добавлен:
01.03.2025
Размер:
269.74 Кб
Скачать

Пользовательская часть включает в себя:

1)Просмотр доступных категорий мебели;

2)Просмотр доступной мебели;

3)Поиск мебели по названию;

4)Добавление мебели в корзину;

5)Регистрация;

6)Авторизация;

7)написание отзывов.

8)оформление заявки на покупку товара.

Код для написания отзыва:

<?php

function prepare_check()

{

if (empty($_POST['message']) || empty($_POST['name'])) {

echo "<script type='text/javascript'>alert('Заполните все поля!');</script>";

populate_shoutbox();

return false;

}

return true;

}

/*** mysql hostname ***/

$hostname = '';

/*** mysql username ***/

$username = 'root';

/*** mysql password ***/

$password = '';

$dbname = 'furniture_sc';

Try { ……….

function populate_shoutbox() {

@$furn_id = $_POST['furn_id'];

global $dbh;

$sql = "select * from shoutbox WHERE `furniture_id` = ".$furn_id."";

echo '<ul>';

foreach ($dbh->query($sql) as $row) {

echo '<div id="ppc><li>';

echo '<span class="date">'.'<b>Дата:</b>'.' '.date("d.m.Y H:i", strtotime($row['date_time'])).'|'.'</span>';

echo '<span class="name">'.'<b>Имя:</b>'.' '.$row['name'].'|'.'</span>';

echo '<span class="message">'.'<b>Сообщение:</b>'.' '.$row['message'].'</span>';

echo '</li></div>';

}

echo '</ul>';

}

?>

При разработке сайта использовались различные методы защиты БД от несанкционированного доступа, например, от SQL-injection attack.

На главной странице сайта имеется форма поиска, код которой имеет вид:

<div id="container">

<h3 style="text-align:left;">Слово для поиска</h3>

<div style=" text-align: left;">

<form method="post" action="do_search.php">

<input type="text" name="search" id="search_box" class='search_box'/>

<input type="submit" value="Поиск" class="search_button" /><br />

</form>

Рис 2. Форма поиска товара по названию

При выводе данных поиска использовалась функция stripslashes(), удаляющая экранирующие символы. Также, использовалась функция htmlspecialchars(), которая преобразует специальные символы в HTML – сущности, например, при вводе <h1>XaxaSQL</h1> получали в выводе - <h1>XaxaSQL</h1>, а в БД записывается в виде – <h1>XaxaSQL</h1>

Как было сказано ранее, сайт состоит из админской и пользовательской частей. Главным компонентом взаимопомощи пользователей, на мой взгляд, является существование отзывов о товарах, что позволяет сформировать более правильную точку зрения при покупке. Но и отзывы имеет уязвимость, так как они оформлены в виде двух форм – имени и сообщения, для экранирования которых использовалась функция, что и при поиске, htmlspecialchars(), пример работы которой можно увидеть на рис 3.

Рис 3. Результат использования встроенной функции htmlspecialchars()

Нужно отметить, что как и на практически любом сайте, реализована регистрация и авторизация пользователей. При регистрации пользователей, а именно в поле логин,пароль использоавалась функция preg_replace()

$login = preg_replace('#[^a-zA-Z0-9_]#', '', $_POST['login']); которая выполняет поиск и замену по регулярному выражению.

Например, мы ввели при регистрации <h1>Zaga13</h1> в базу данных

записалось h1Zaga13h1,как показано на рис 3.

Рис 3. Результат использования встроенной функции preg_replace()

Также на рис 3. видно, что пароль записывается в БД в зашифрованном виде, в данном случае показан результат работы встроенной функции шифрования md5(), свойства которого были описаны выше в теоретической части. В случае администратора применялось sh1() шифрование.

Что касается использования htmlspecialchars(), то практически её аналогом является функция strip_tags(), которая отличается тем, что просто обрезает все теги и оставляет слово, что бывает иногда удобнее, например, strip_tags() использовалась в админской части, но, в принципе в админке её бесполезно использовать.

В заключение хотелось показать, как реализована база данных интернет-магазина. БД состоит из двух баз данных: furniture_sc и registration, в furniture_sc 6 таблиц, которые отвечает практически за вест функционал сайта, по названию второй БД видно, что она используется для регистрации и авторизации пользователей.

Рис 4. Схема данных в БД furniture_sc

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]