Jump to content
Дизайн и модификация IPS Community IPBSkinsBETA
Search In
  • More options...
Find results that contain...
Find results in...
Sign in to follow this  
cyrax_02

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

Recommended Posts

При регистрации нового пользователя отображается страница 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.

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites
Ваша активная лицензия истекла, поэтому ips возвращает сообщение с ошибкой вместо кода.

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

 

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

Edited by cyrax_02

Share this post


Link to post
Share on other sites

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

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

 

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

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

Share this post


Link to post
Share on other sites

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

 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               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

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

Share this post


Link to post
Share on other sites

Отключить спамсервис от 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;

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

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

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

дубль два

 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               |
'----------------------------------------------------------------------------+-------------------------------------------------------------------------------+-------------------'

Share this post


Link to post
Share on other sites

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

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

 

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...