В целях изучения php пишу что-то вроде Интернет-магазина (этот «портал» всего лишь учебный проект и не будет никуда внедрён). Возникла проблема при добавлении отзыва к товару, а точнее при обработке ошибок (выводе сообщений о них), которые могут возникнуть при добавлении отзыва (это пустой текст отзыва и неверно введённая капча). Поскольку ошибки обрабатываются аналогично друг другу, я решил остановиться на пустом отзыве. Если пользователь пытается добавить пустой отзыв, то ему просто должно показаться сообщение, о том, что отзыв не может быть пустым.
Кстати, структура сайта такая. Он разбит на несколько php-страниц, но только одна (index.php) является самостоятельной, все остальные подключаются с помощью include при выборе соответствующего раздела.
Я решил осуществить то, что задумал следующим образом. Когда у меня нажата кнопка «отправить отзыв», у меня проверяется textarea на пустоту и, если оно пусто, то в сессионный параметр запомнить код ошибки, после чего с помощью функции header перейти на ту же страницу, откуда мы пытались добавить пустой отзыв. В коде это выглядит так. Когда у меня нажата кнопка «отправить отзыв», исполняется такой код (находится на странице index.php)
PHP:
скопировать код в буфер обмена
скопировать код в буфер обмена
- <?PHP
- // Обработка добавления отзыва для товара
- {
- //$Author = trim();
- if ($Author == '')
- $Author = 'Анонимный автор';
- if ($Text == '')
- {
- //$AddReviewErrorMessage = 'Текст отзыва не может быть пустым!';
- $_SESSION['ReviewErrorCode'] = 1; // (1)
- // die($_SESSION['ReviewErrorCode']);
- }
- else
- {// добавляем отзыв в БД, но только если правильно ввели капчу и текст не пустой
- if ($_SESSION['kod'] == $_POST['Captcha'])
- {
- $QueryString = "insert into GoodsReviews
- (
- Id_Good,
- Author,
- Text
- )
- values
- (
- ".$_SESSION['ReviewedGoodId'].",
- '".$Author."',
- '".$Text."'
- )";
- {
- $_SESSION['ReviewErrorCode'] = 0;
- }
- }
- else
- {
- $_SESSION['ReviewErrorCode'] = 2;
- };
- };
- };
- ?>