уведомление приходит - а сообщение не записывается

#
уведомление приходит - а сообщение не записывается
пришло уведомление на мыло что добавлено новое сообщение такое то в Гостевую книгу
но в админке оно не записалось
я выяснила, что не записалось оно потому как поле Тема было не заполнено
как решить данную проблему?
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: уведомление приходит - а сообщение не записывается
Для решения проблемы внесите изменения в код тип. дин. страницы "Информационная система для Вопросы-ответы, Гостевая книга и т.п.". Перед методом InsertInformationItems добавьте код:
$subj = to_str($_POST['subject']);
if(strlen($subj) == 0)
{
$subj = '<Без темы>';
}
// Вставляем запись
$question_id = $GLOBALS['LA_InformationSystem']->InsertInformationItems(0,
0, $InformationSystem_id, $group_id,$date,          $subj,'', $item_status, $text, '',0,to_str($_SERVER['REMOTE_ADDR']));
#
Re: уведомление приходит - а сообщение не записывается
что то не помогло (уведомление пришло -  сообщение не записалось):

вставила вот тут:

   $param = array();
                  $param['site_users_id'] = $site_user_id;
         

$subj = to_str($_POST['subject']);
if(strlen($subj) == 0)
{
$subj = '<Без темы>';
}

                  // Вставляем запись
                  $question_id = $GLOBALS['LA_InformationSystem']->InsertInformationItems(0,   0,
                  $InformationSystem_id, $group_id, $date,   htmlspecialchars(strip_tags(to_str($_POST['subject']))), '',
                  $item_status, $text, '', 0, to_str($_SERVER['REMOTE_ADDR']), '', 1, '', '', '', '', $param);
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: уведомление приходит - а сообщение не записывается
Сомниваюсь но попробуйте.
У вас есть отличие от предложеного.
// Вставляем запись
$question_id = $GLOBALS['LA_InformationSystem']->InsertInformationItems(0,
0, $InformationSystem_id, $group_id,$date,          $subj,'', $item_status, $text, '',0,to_str($_SERVER['REMOTE_ADDR']));
#
Re: уведомление приходит - а сообщение не записывается
TDE,
спасибо еще раз
, теперь все работает

просто не заметила данных отличий
тк не написали что именно поменять, я думала только тот код
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
#
Re: уведомление приходит - а сообщение не записывается
а подскажите: в версии 4.4.4 пытаюсь тоже сделать чтоб, если Тема не заполнена вставлялось бы "без темы"
но не получается почему то
скажите что не так:
<?php

$InformationSystem_id = to_int($GLOBALS['LA']['InformationSystemID']);

if (strtolower(end($GLOBALS['URL_ARRAY'])) != 'add')
{
   /* Добавление комментария */
   if(isset($_POST['add_comment']))
   {
      $param['information_items_id'] = to_int($GLOBALS['InformationResult']['item_id']);

      /* XSL шаблон для отправки уведомления администратору о добавлении комментария */
      $param['admin_email_xsl'] = to_str($GLOBALS['LA']['xsl_admin_email']);

      $xsl_add_comment = to_str($GLOBALS['LA']['xsl_add_comment']);

      // Текст комментария
      $_POST['comment_text'] = nl2br(to_str($_POST['comment_text']));

      // Типографируем текст, если доступен модуль типографирования
      if(class_exists('typograph'))
      {
         $typograph = new typograph();
         $_POST['comment_text'] = $typograph->ProcessTypographic($_POST['comment_text']);
      }

      $result_add_comment = $GLOBALS['LA_InformationSystem']->ShowAddComment('УведомлениеДобавленияОтвета', $param);
   }

   /* Отображаем элемент если не было добавления комментария, или результат добавления комментария отрицательный */
   if (!isset($_POST['add_comment']) || isset($result_add_comment) && !$result_add_comment)
   {

      /* XSL шаблон для отображения списка элементов информационной системы */
      $xsl_list = to_str($GLOBALS['LA']['xsl_information_system_list']);

      /* XSL шаблон для отображения элемента информационной системы */
      $xsl_item = to_str($GLOBALS['LA']['xsl_information_item']);

      $InformationResult = $GLOBALS['InformationResult'];
      
      /* Массив внешних параметров, передаваемых в XML */
      $external_propertys = array();
      $external_propertys['ОтображатьСсылкуНаАрхив'] = 0;
      $external_propertys['ОтображатьСсылкиНаСледующиеСтраницы'] = 1;

      /* Массив дополнительных параметров */
      $property = array();

      /* Число элементов на страницу */
      if (isset($InformationResult['items_on_page']))
      {
         if($InformationResult['items_on_page'] !== true)
         {
            $InformationResult['items_on_page'] = to_int($InformationResult['items_on_page']);
         }
      }
      else
      {
         $InformationResult['items_on_page'] = 10;
      }

      /* Номер, с которого начинается показ */
      if (isset($InformationResult['items_begin']))
      {
         $InformationResult['items_begin'] = to_int($InformationResult['items_begin']);
      }
      else
      {
         $InformationResult['items_begin'] = 0;
      }
      
      if(isset($_REQUEST['page']) and $_REQUEST['page']) {
         $InformationResult['items_begin'] = intval($_REQUEST['page'])*$InformationResult['items_on_page'];
      }

      /* Метод определения идентификатора информационной группы и идентификатора информационного элемента по значению URI */
      $result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);

      if($result != false)
      {
         /* Вывод списка */
         if($result['item'] == false)
         {
            /* Отображаем информационную систему */
            $GLOBALS['LA_InformationSystem']->ShowInformationSystem($InformationSystem_id, $result['group'], $xsl_list, $InformationResult['items_on_page'], $InformationResult['items_begin'], $external_propertys, $property);
         }
         else
         {
            /* Определяем идентификатор информационного элемента */
            $item_id = $GLOBALS['LA_InformationSystem']->GetIdInformationItem($result['item'], $result['group']);

            /* Выводим элемент информационной системы */
            $GLOBALS['LA_InformationSystem']->ShowInformationSystemItem($item_id, $xsl_item, $external_propertys);
         }
      }
   }
}
else
{
   # Иначе выводим форму добавления элемента
   $Captcha = new Captcha();
   $forms_captcha_key = $Captcha->GetCaptchaID();

   if (isset($_POST['captcha_key']) && isset($_POST['captcha_keystring']))
   {
      $cpt = $Captcha->ValidCaptcha($_POST['captcha_key'], $_POST['captcha_keystring']);
   }
   else
   {
      $cpt = false;
   }

   /* Обработка вставки информационного элемента */
   if ($cpt && isset($_POST['submit_question']))
   {
      ?>
      <h1>Добавление вопроса</h1>
      <?

      if($GLOBALS['LA_InformationSystem']->confirm_information_item(date('U'), $_SERVER['REMOTE_ADDR'])==1)
      {
         $date= date('Y-m-d H:i:s');

         /* Определяем группу (если задана)
         Принимает в качестве параметра ID информационного блока*/
         $result = $GLOBALS['LA_InformationSystem']->GetInformationFromPath($InformationSystem_id);

         $group_id = to_int($result['group']);

         # Статус вновь добавленного элемента
         # 0 - не активен (необходимо вручную проверить и включить)
         # 1 - активен, виден сразу после публикации
         $item_status = 0;

         // Текст сообщения
         $text = nl2br(to_str($_POST['text_item']));

         // Типографируем текст, если доступен модуль типографирования
         if(class_exists('typograph'))
         {
            $typograph = new typograph();
            $text = $typograph->ProcessTypographic($text);
         }
$subj = to_str ($_POST['subject']) ;
if (strlen ($subj) == 0)
{
$subj = '<Без темы>';
}
         # Вставляем запись
         $question_id = $GLOBALS['LA_InformationSystem']->InsertInformationItems(0, 0, $InformationSystem_id, $group_id, $date,  $subj,'', $item_status, $text, '',0,to_str($_SERVER['REMOTE_ADDR']));

         $row = $GLOBALS['LA_InformationSystem']->GetInformationSystemItems($question_id);

         # Вставляем в дополнительные свойства автора и его email
         $GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems(0, 0, to_int($GLOBALS['LA']['autor_property_id']), $question_id, to_str($_POST['fio']));
         $GLOBALS['LA_InformationSystem']->InsertInformationPropertysItems(0, 0, to_int($GLOBALS['LA']['email_property_id']), $question_id, to_str($_POST['email']));

         ?>
         <p>Благодарим Вас, <?=htmlspecialchars(to_str($_POST['fio']))?>!
         <br>Ваша запись принята. После проверки Администратором она станет доступной!
         </p>
         <?

         # Отправка письма администратору
         $message = "Доброе время суток, уважаемый Администратор!\n\nНа сайт, поддерживаемый системой управления сайтом HostCMS, была добавлена запись:   \n";
         $message .= "Автор: ".to_str($_POST['fio'])."\n";
         $message .= "E-mail: ".to_str($_POST['email'])."\n";
         $message .= "Тема: ".to_str($_POST['subject'])."\n";
         $message .=   "Информационная система: ".$row['information_blocks_name']."\n";
         $message .= "Информационный элемент: ".$row['information_items_name']."\n";
         $message .=   "Редактировать - http://".to_str($_SERVER['HTTP_HOST'])."/admin/InformationSystems/InformationSystems.php?information_systems_id={$InformationSystem_id}&information_groups_parent_id={$group_id}&edit_information_items_id={$question_id}\n";
         $DateClass = new DateClass();
         $message .= "Дата: ".$DateClass->datetime_format($date)."\n";
         $message .= "IP-адрес: ".to_str($_SERVER['REMOTE_ADDR'])."\n";
         $message .= "Вопрос: ".to_str($_POST['text_item']);

         mail('juoll@mail.ru', 'Добавление вопроса', $message, "From: ".EMAIL_TO."\r\nContent-Type: text/plain; charset=Windows-1251\n");
      }
      else # нельзя добавлить объявление - прошло мало времени
      {
         ?>
         <p>Ошибка!
         Запись не может быть добавлена, т.к. прошло мало времени с момента Вашего последнего добавления вопроса!
         </p>
         <?
      }
   }

   if(!$cpt || !isset($_POST['submit_question']))
   {
   ?>
   <h1>Добавление вопроса</h1>
   <?
   # Если неправильная CAPTCHA и была заполнена форма
   if (!$cpt && isset($_POST['submit_question']))
   {
      ?>
      <p style="color:#ff0000;"><b>Вы неверно ввели число подтверждения отправки формы!</b></p>
      <?
   }
   ?>
   <form action='./' method="POST">
   <table border="0" cellspacing="2" cellpadding="0">
   <tr>
   <td>ФИО:</td>
   <td><input type="text" name="fio" size="50" value="<?=htmlspecialchars(to_str($_POST["fio"]))?>"></td>
   </tr>
   <tr>
   <td>E-mail:</td>
   <td><input type="text" name="email" size="50" value="<?=htmlspecialchars(to_str($_POST["email"]))?>"></td>
   </tr>
   <tr>
   <td>Тема:</td>
   <td><input type="text" name="subject" size="50" value="<?=htmlspecialchars(to_str($_POST["subject"]))?>"></td>
   </tr>
   <tr>
   <td>Объявление:</td>
   <td><textarea type="text" name="text_item" cols="50" rows="10"><?=htmlspecialchars(to_str($_POST["text_item"]))?></textarea></td>
   </tr>
   <tr>
    <td colspan="2" align="center">Для отправки формы введите число, изображенное на картинке</td>
   </tr>
   <tr>
   <td>
      <img style="border: 1px solid #000000" src="/captcha.php?get_captcha=<?=$forms_captcha_key?>" title="Введите число изображенное на картинке"/>
   </td>
   <td>
      <input type="hidden" name="captcha_key" value="<?=$forms_captcha_key?>"/>
      <input type="text" name="captcha_keystring" style="width:100%" />
   </td>
    </tr>   
   <tr>
   <td></td>
   <td align="center">
   <input type="submit" name="submit_question" value="Добавить запись">    
   </td>
   </tr>    
   </table>
   </form>
   <?
   }
}

?>


а также подскажите почему капчта не выводится для защиты???
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Модератор
#
Re: уведомление приходит - а сообщение не записывается
Puma,
Что именно не получается?

Puma писал(а):
а также подскажите почему капчта не выводится для защиты???

Нужно смотреть на месте, по описанию угадать, почему не выводится, очень сложно.
#
Re: уведомление приходит - а сообщение не записывается
тема в админке остается пустой, т.е. не вставляется "Без темы"
с каптчей разобралась...
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Модератор
#
Re: уведомление приходит - а сообщение не записывается
Вместо
$subj = to_str ($_POST['subject']) ;
if (strlen ($subj) == 0)
{
$subj = '<Без темы>';
}


укажите:
$subj = htmlspecialchars (strip_tags (to_str($_POST['subject']))) ;
if (strlen (trim($subj)) == 0)
{
$subj = '<Без темы>';
}
#
Re: уведомление приходит - а сообщение не записывается
спасибо
теперь все получилось
Email: golden-puma@yandex.ru; Telegram: @GoldenPuma; Сайт: https://goldenpuma.ru
Авторизация