Skip to content

Ошибка при регистрации (SQL Driver Error): spam_service_log

При регистрации нового пользователя отображается страница SQL Database Error.

Согласно логам, ошибка заключается в том, что IP.Board добавляет запись в таблицу (spam_service_log) так:

mySQL query error: INSERT INTO ..._spam_service_log (`log_date`,`log_code`,`log_msg`,`email_address`,`ip_address`) VALUES(1478525386,'License Key Expired','','...','...')

В ответ mysql ругается:

Error: 1366 - Incorrect integer value: 'License Key Expired' for column 'log_code' at row 1

Ругается потому, что в таблице столбец (log_code) имеет тип smallint(1), а передаётся строка (License Key Expired). При этом все записи (включая и самые древние, когда этой ошибки ещё не возникало) в указанной таблице в этом столбце имеют значение 0.

 

Задача заключается в том, чтобы объяснить этот артефакт. Возможные варианты:

1. Некорректная логика работы форумного скрипта (вместо кода вставляет в запрос строковый идентификатор)

2. В таблице изначально поле (log_code) имело строковый тип, но после обновления mysql до последней версии и последующего апгрейда баз данных (mysql_upgrade, как это обычно рекомендуют делать после обновления mysql) тип поля был изменён на smallint(1), а все имеющиеся значения конвертированы в целое значение 0.

Featured Replies

Если лицензия не активна, спам сервис нужно отключить.

log_code это код статуса подозрительности пользователя, формата tinyint (там четыре статуса). Ваша активная лицензия истекла, поэтому ips возвращает сообщение с ошибкой вместо кода.

  • Author
Ваша активная лицензия истекла, поэтому ips возвращает сообщение с ошибкой вместо кода.

По хорошему этот ответ следовало бы фильтровать на предмет неактивного лицензионного ключа. Всё-таки, из-за истечения срока активности ключа регистрация на форуме падать не должна (да и вообще, все значения, получаемые извне, должны проверяться/приводиться). В 4-ке, может, поправили...

 

P.S. Ну а STRICT_TRANS_TABLES отключать не очень хороший вариант.

Edited by cyrax_02

По хорошему этот ответ следовало бы фильтровать на предмет неактивного лицензионного ключа.

Это естественная защита от тех кто пользуется спам-сервисом без активной лицензии. А если серьезно то в 3.4.9 пофиксили.

 

Ну а STRICT_TRANS_TABLES отключать не очень хороший вариант.

Не знаю какие сейчас требования, но в ранних версиях 3.x отключение STRICT_TRANS_TABLES было условием IPS. Но делать это вовсе не обязательно, достаточно принудительно интвалить ответ от спасм-сервиса в методе querySpamService.

  • 1 month later...

столкнулся с практически той же самой проблемой после переустановки винды! форум восстановить смог, но теперь после регистрации вылетает ошибка БД(((

 Error: 1366 - Incorrect integer value: 'Email address invalid' for column 'log_code' at row 1
IP Address: 127.0.0.1 - /index.php?app=core&module=global&section=register
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: INSERT INTO spam_service_log (`log_date`,`log_code`,`log_msg`,`email_address`,`ip_address`) VALUES(1483783305,'Email address invalid','','....@mail.ru','127.0.0.1')
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| G:\WebDesign\wamp64\www\portal2\admin\sources\base\ipsMember.php           | [db_main_mysql].insert                                                        | 4122              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| G:\WebDesign\wamp64\www\portal2\admin\applications\core\modules_public\global\register.php| [iPSMember].querySpamService                                                  | 1905              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| G:\WebDesign\wamp64\www\portal2\admin\applications\core\modules_public\global\register.php| [public_core_global_register].registerProcessForm                             | 65                |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| G:\WebDesign\wamp64\www\portal2\admin\sources\base\ipsController.php       | [public_core_global_register].doExecute                                       | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

помогите пожалуйста исправить(

Отключить спамсервис от IPS. Настройки -> Пользователи -> Защита от Спама -> Включить сервис? - Нет

 

Если все же у вас каким-то образом оказалась лицензия от IPS, и вы не обновились до последней версии но хотите использовать их спамсервис.

Открыть admin\sources\base\ipsMember.php

Найти

 

	$responseCode	= $response[0];
	$responseMsg	= $response[1];

Заменить на

 

	$responseCode = $query->http_status_code == 200 ? (int) $response : 0;
	$responseMsg = $query->http_status_code == 200 ? '' : $response;

отключил защиту от спама, а так же на всякий случай хук капчи, при этом ошибка БД как вылетала так и вылетает и окно капчи на форуме при регистрации также осталось, хоть я хук отключил (хэш обновлял)!!! не знаю уже как эту беду решить(((

хоть я хук отключил

Какой хук?.. Эта системная настройка. Еще раз проверьте внимательно.

Приведите лог, может быть там уже другая ошибка.

я в курсе что эта системная настройка! ранее я капчу ставил поэтому и отключил ее вместе с защитой от спама

@corazon, какого хера вы отредактировали предыдущие сообщение когда на него уже был дан ответ?

потому что забыл вставить ошибку из лога, епт и не видел после свое поста никакого ответа

дубль два

 Date: Sat, 07 Jan 2017 12:05:29 +0000
Error: 1364 - Field 'arcade_lastplay' doesn't have a default value
IP Address: 127.0.0.1 - /index.php?app=core&module=global&section=register
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
mySQL query error: INSERT INTO members (`name`,`members_display_name`,`email`,`member_group_id`,`joined`,`ip_address`,`time_offset`,`coppa_user`,`members_auto_dst`,`allow_admin_mails`,`language`,`members_l_username`,`members_created_remote`,`member_login_key`,`member_login_key_expire`,`view_sigs`,`bday_day`,`bday_month`,`bday_year`,`restrict_post`,`auto_track`,`msg_count_total`,`msg_count_new`,`msg_show_notification`,`last_visit`,`last_activity`,`member_uploader`,`members_pass_salt`,`members_pass_hash`,`members_l_display_name`,`fb_uid`,`vk_uid`,`fb_emailhash`,`members_seo_name`,`members_bitoptions`) VALUES('test','test','thor1985@mail.ru',1,1483790729,'127.0.0.1',4,0,1,1,1,'test',0,'73d3ade2aa5efdf88614144a26e78276',0,1,0,0,0,0,0,0,0,1,1483790729,1483790729,'flash','?=P!Q','87b6bde5446a341fa3a93ef95d1e6831','test',0,0,'','test',0)
.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.
| File                                                                       | Function                                                                      | Line No.          |
|----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------|
| G:\WebDesign\wamp64\www\portal2\admin\sources\base\ipsMember.php           | [db_main_mysql].insert                                                        | 662               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| G:\WebDesign\wamp64\www\portal2\admin\applications\core\modules_public\global\register.php| [iPSMember].create                                                            | 1942              |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| G:\WebDesign\wamp64\www\portal2\admin\applications\core\modules_public\global\register.php| [public_core_global_register].registerProcessForm                             | 65                |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'
| G:\WebDesign\wamp64\www\portal2\admin\sources\base\ipsController.php       | [public_core_global_register].doExecute                                       | 306               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Это ошибка не имеет отношения к предыдущей spam_service_log.

Удалить приложение с "arcade" или выполнить sql запрос

 

ALTER TABLE members CHANGE COLUMN arcade_lastplay arcade_lastplay int(11) NOT NULL DEFAULT '0';

заработало)) большущее спасибо за помощь, дай бог вам здоровья! с Рождеством))

попробовал щас вернуть все обратно, капчу и защиту, регаюсь вылетает ошибка которую я скидывал выше! возвращаю все на исходную регистрация проходит без проблем! буду рыть дальше как можно вернуть капчу в рабочее состояние без ошибки бд

При чем тут капча? В первом случае нужно отключить спам сервис ips или сделать правку в файле (если у вас активная лицензия и вы хотите им пользоваться), он не имеет отношения к капчи, во втором удалить приложение или выполнить sql запрос.

Create an account or sign in to comment

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.