Получение номера строки (обращения)
Итак, файл обработчика создан, в него уже внесены первые строки с информацией и защитой от несанкционированного доступа. Теперь можно перейти непосредственно к обработке полученного запроса.
Проверка получения данных
Прежде всего нужно убедиться, получены ли данные; это выполняет код в строке 13:
11 // ПРОВЕРКА ПОЛУЧЕНИЯ ДАННЫХ
12 // Если данные не были переданы, то выдача сообщения и выход
13 if (empty($_POST['mess_text'])) {
14 include(JPATH_COMPONENT .'/err/err_text.php');
15 exit;
16 }
17 else // если данные получены, то:
18 {
Смысл проверки прост: выбирается одна из ключевых переменных и проверяется наличие в ней значения. В указанном случае (строка 13) проверяется наличие текста в текстовом поле при помощи функции empty. Эта функция возвращает FALSE
, если указанная в скобках переменная существует и содержит какое-либо значение; если значения нет - возвращается TRUE
.
Соответственно, если в переменной $_POST['mess_text'] ничего нет или такой переменной вообще не существует в массиве, то будет выдано предупреждение (строка 14), а выполнение скрипта закончено (строка 15). Если же в переменной содержится какой-либо текст, продолжается выполнение программы (строка 17).
Любую информацию об ошибках лучше выводить не при помощи функции echo, а запуском файла, как это сделано в строке 14. Дело в том, что в первом случае текст будет выведен на пустом чистом экране, а во втором - на странице сайта. Файл вывода ошибки может выводить не только текст, а любое изображение, это уже дело фантазии разработчика$ как образец можете посмотреть файл по адресу:
OSPanel\OpenServer\domains\WDS\templates\wds_template_v1/error.php
Подключение к базе данных
19 // ПОДКЛЮЧЕНИЕ К БАЗЕ ДАННЫХ И ПРОВЕРКА СОЕДИНЕНИЯ
20 $db = JFactory::getDBO();21 if (!$db->connected()) {
22 include(JPATH_COMPONENT .'/err/err_db.php');
23 exit;
24 }
Строка 20 выполняет соединение с базой данных. Эта тема будет подробно рассмотрена позже, в главе 18.
Строка 21 проверяет, установлено ли соединение. Если $db->connected() вернёт TRUE
(соединение есть), то благодаря ! значение будет изменено на противоположное и условие if выполнено не будет; если же $db->connected() вернёт FALSE
(соединения нет), то при изменении значения на противоположное условие if будет выполнено, на экран будет выведено сообщение (строка 22), а выполнение кода прекращено (строка 23).
Получение номера строки (обращения)
25 // ПОЛУЧЕНИЕ НОМЕРА СТРОКИ (ОБРАЩЕНИЯ)
26 $db->setQuery("SELECT MAX(id) FROM #__feedback_form");
27 $message_number = $db->LoadRow();
28 if ($message_number == NULL) {
29 $message_number = 1;
30 }
31 else {
32 ++$message_number;
33 }
34 $num_rec_control = $message_number;
Строка 26 создаёт запрос к базе данных (работе с базами данных будет подробно рассмотрена позже, в главе 18).
В строке 27 переменной $message_number присваивается полученное в запросе значение.
Если полученное значение NULL (строка 28), то переменной присваивается значение 1 (строка 29); если значение не NULL, то значение переменной $message_number увеличивается на единицу (строка 32).
В строке 34 переменной $num_rec_control присваивается значение переменной $message_number.
-------
В следующей главе будет рассмотрено каким образом происходит обработка и проверка на безопасность полученных в запросе данных.