Когда администратору требуется добавить новую категорию или книгу, вызывается сценарий insert_category_form.php, либо сценарий insert_book_form.php. Каждый сценарий предоставляет администратору форму для заполнения.
Форма добавления новой категории
Сценарий insert_category_form.php выводящий форму добавления новой категории
<?php
// Включить библиотеки функций для этого приложения
require_once('book_sc_fns.php');
session_start();
$pagename = "Добавление новой категории";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Меню администратора</h5>";
echo "</header>";
echo "<nav>";
if (check_admin_user())
display_admin_menu();
else
echo 'У вас нет прав для доступа на страницу администрирования.';
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<div class=login>";
if (check_admin_user())
{
display_category_form
();}
else
echo 'Вам не разрешен доступ в область администратора.';
echo "</div>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
В сценарии используется функция display_category_form() из библиотеки admin_fns.php, отображающая форму для ввода новой категории.
<?php
function display_category_form
($category = '')// Отображает форму для ввода категории.
// Эта форма используется для добавления и редактирования категорий.
// Для добавления новой категории вызывайте функцию без параметров. В результате
// $edit примет значение false и форма обратится к insert_category.php.
// Для обновления информации о категории передайте в качестве параметра массив,
// содержащий категорию. Форма заполнится существующими данными и обратится к
// update_category.php. В этом случае также добавится кнопка удаления категории.
{
// Если передается существующая категория, продолжить в "режиме редактирования"
$edit = is_array($category);
// Большинство формы представляет собой простой HTML-код с несколькими
// дополнительными PHP-операторами
?>
<form method='post'
action="<?php echo $edit?'edit_category.php':'insert_category.php'; ?>">
<table>
<tr>
<td>Наименование категории:</td>
<td><input type='text' name='catname' size=40 maxlength=40
value="<?php echo $edit?$category['catname']:''; ?>"></td>
</tr>
<tr>
<td> </td>
<td <?php if (!$edit) echo 'colspan=2'; ?> >
<?php if ($edit)
echo '<input type="hidden" name="catid"
value="'.$category['catid'].'">';
?>
<input type='submit'
value="<?php echo $edit?'Обновить':'Добавить'; ?> категорию"></form>
</td>
<?php if ($edit)
// Разрешить удаление существующих категорий
{
echo '<td>';
echo '<form method="post" action="delete_category.php">';
echo '<input type="hidden" name="catid" value="'.$category['catid'].'">';
echo '<input type="submit" value="Удалить категорию">';
echo '</form></td>';
}
?>
</tr>
</table>
<?php
}
?>
Форма добавления новой книги
Сценарий insert_book_form.php выводящий форму добавления новой книги
<?php
// Включить библиотеки функций для этого приложения
require_once('book_sc_fns.php');
session_start();
$pagename = "Добавление новой книги";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Меню администратора</h5>";
echo "</header>";
echo "<nav>";
if (check_admin_user())
display_admin_menu();
else
echo 'У вас нет прав для доступа на страницу администрирования.';
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<div class=login>";
if (check_admin_user())
{
display_book_form
();}
else
echo 'Вам не разрешен доступ в область администратора.';
echo "</div>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
В сценарии используется функция display_book_form() из библиотеки admin_fns.php, отображающая форму для ввода новой книги. Ее мы рассмотрим дале, когда приступим к разбору сценария редактирования книг.
Формы обрабатываются соответствующими сценариями insert_category.php и insert_book.php, которые проверяют форму на предмет заполнения и сохраняют информацию в базе данных.
insert_category.php — сценарий проверяет допустимость данных, введенных для новой категории, и помещает их в базу данных
<?php
// Включить библиотеки функций для этого приложения
require_once('book_sc_fns.php');
session_start();
$pagename = "Добавление новой категории";
$keywords= "";
$description="Интернет-магазин ABC-Book. Книги традиционные и на электронных носителях";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Категория книг</h5>";
echo "</header>";
echo "<nav>";
// Извлечь категории из базы данных
$cat_array = get_categories();
display_categories($cat_array);
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<article>";
if (check_admin_user())
{
if (filled_out($_POST))
{
$catname = $_POST['catname'];
// Проверить, не существует ли уже такая категория
$query = "select*from categories
where catname='$catname'";
$result = mysqli_query($db, $query);
if ($result->num_rows == 0)
{
// Добавить новую категорию
$query = "insert into categories values(NULL, '$catname')";
$result = mysqli_query($db, $query);
echo "Категория '$catname' добавлена в базу данных.<br />";
} else
echo "Категория '".stripslashes($catname).
"' уже существует и не может быть добавлена в базу данных.<br />";
}
else
echo 'Вы ввели не все данные. Пожалуйста, повторите попытку.<br>';
do_html_url('admin.php', 'Назад в меню администрирования');
}
else
echo 'Вам не разрешен доступ в область администратора.';
echo "<article>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
Мы рассмотрим только сценарий, связанный с добавлением книги, поскольку обе пары сценариев отличаются друг от друга лишь незначительно.
Вы наверняка заметили, что поле Категория представляет собой HTML-элемент SELECT. Опции для этого элемента получаются в результате вызова ранее рассмотренной функции get_categories().
В результате щелчка на кнопке Добавить книгу запускается сценарий insert_book.php.
insert_book.php — сценарий проверяет допустимость данных, введенных для новой книги, и помещает их в базу данных
<?php
// Включить библиотеки функций для этого приложения
require_once('book_sc_fns.php');
session_start();
$pagename = "Добавление книги";
$keywords= "";
$description="Добавление книги";
do_html_header($pagename, $keywords, $description);
echo "<section class=blok>";
echo "<div class=col1>";
echo "<header>";
echo "<h5>Категория книг</h5>";
echo "</header>";
echo "<nav>";
// Извлечь категории из базы данных
$cat_array = get_categories();
display_categories($cat_array);
echo "</nav>";
echo "</div>";
echo "<div class=col2>";
echo "<header>";
echo "<h2>$pagename</h2>";
echo "</header>";
echo "<article>";
if (check_admin_user())
{
if (filled_out($_POST))
{
$isbn = $_POST['isbn'];
$title = $_POST['title'];
$author = $_POST['author'];
$catid = $_POST['catid'];
$price = $_POST['price'];
$description = $_POST['description'];
// Проверить, не существует ли уже такая книга
$query = "select*from books
where isbn='$isbn'";
$result = mysqli_query($db, $query);
if ($result->num_rows == 0)
{
$conn = db_connect();
if(!$conn->query("INSERT INTO books VALUES('$isbn', '$author', '$title', '$catid', '$price', '$description')"))
echo "Не удалось внести данные: (" . $conn->errno . ") " . $conn->error;
$result = mysqli_query($db, $query);
if ($result)
echo "Книга '".stripslashes($title)."' добавлена в базу данных.<br />";
} else
echo "Книга '".stripslashes($catname).
"' уже существует и не может быть добавлена в базу данных.<br />";
}
else
echo 'Вы заполнили не все поля формы. Пожалуйста, повторите попытку.';
}
else
echo 'У вас нет прав для доступа на страницу администрирования.';
echo "<article>";
echo "</div>";
echo"</section>";
do_html_footer();
?>
Комментарии(0)
Для добавления комментариев надо войти в систему и авторизоватьсяКомментирование статей доступно только для зарегистрированных пользователей:Зарегистрироваться