Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Тематические » Системы управления сайтами » RSform. Доработка скрипта формы

Модерирует : Antuan

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

almengo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Добрый день всем, ищу помощи у специалистов в доработке имеющегося скрипта. Он рабочий. В форму введен календарь с возможностью выбора числа месяца. Скрипт дает ограничение на общее количество отправленных сообщений без привязки к календарю.  
 
ЦЕЛЬ: привязать счетчик к календарю со следующими  ограничениями:
 
а) один IP - одно резервирование;
 
б) не более 30 отправлений в один календарный день.  
 
Вот сам скрипт:
 
// Define the maximum number of submissions. For this example we'll use 30.
$max = 30;
 
// Get a database connection.
$db = JFactory::getDbo();
 
// Setup the query. This query counts the number of submissions for the current form.
// $formId contains the ID of the current form.
$db->setQuery("SELECT COUNT(`SubmissionId`) FROM #__rsform_submissions WHERE `FormId`='".(int) $formId."'");
$submissions = $db->loadResult();
 
if ($submissions >= $max) {
  $formLayout = 'Sorry, no more submissions are accepted.';
}

Всего записей: 29 | Зарегистр. 23-12-2005 | Отправлено: 20:49 29-11-2020 | Исправлено: almengo, 20:50 29-11-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
almengo
смотрим таблицу
Цитата:
#__rsform_submissions
если есть время отправки и сохраняется IP, то добавляем/модифицируем этот запрос чтобы учитывать нужные требования.

Всего записей: 15582 | Зарегистр. 20-09-2014 | Отправлено: 22:45 29-11-2020
almengo

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ограничение количества отправлений с одного IP  
 
// Define the maximum number of submissions.
$max = 1;
 
// Get the current logged in user.
$user = JFactory::getUser();
 
// Get a database connection.
$db   = JFactory::getDbo();
$query   = $db->getQuery(true);
 
// Setup the query.
$query->select('COUNT('.$db->qn('Username').')')
    ->from($db->qn('#__rsform_submissions'))
    ->where($db->qn('FormId').'='.$db->q($formId))
    ->where($db->qn('Username').'='.$db->q($user->get('username')));
    // You can also count by User ID, just replace the above with:
    // ->where($db->qn('UserId').'='.$db->q($user->get('id')));
 
$db->setQuery($query);
$counter = $db->loadResult();
 
if ($counter >= $max){
  $formLayout = 'Sorry, you have reached the maximum number of submissions for this form.';
}
 
 А как привязать этот IP к конкретному дню месяца. Он может каждый день месяца отправлять по одному сообщению.

Всего записей: 29 | Зарегистр. 23-12-2005 | Отправлено: 20:21 30-11-2020
Mavrikii

Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
almengo

Цитата:
А как привязать этот IP к конкретному дню месяца

я же написал - смотреть таблицу, есть ли поля куда записывается IP и время отправки.
если нет - добавить, изменить код который заполняет эти поля при отправке формы.
 
если есть, тогда уже легко просто модифицировать запрос, чтобы учитывал их.

Всего записей: 15582 | Зарегистр. 20-09-2014 | Отправлено: 21:23 30-11-2020
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Тематические » Системы управления сайтами » RSform. Доработка скрипта формы


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru