View Issue Details

IDProjectCategoryView StatusLast Update
13700Bug reportsAuthenticationpublic2018-05-29 20:17
ReporterJohn_K Assigned Toc_schmitz  
Status closedResolutionfixed 
Product Version3.7.x 
Fixed in Version3.7.x 
Summary13700: Attempt to change LS issued password, results in 'Internal Server Error' message "Implicit conversion from data type char to bin

Created a new LS user-But did not receive an email from LS with the password. So I choose the 'Forgot your Password' route-got LS email with the temp password.
Now, I try to change my Password in LS, but keeps throwing this error shown below.

The Full LS Error Msg:
Internal Server Error
CDbCommand failed to execute the SQL statement: SQLSTATE[42000]: [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]
Implicit conversion from data type char to binary is not allowed. Use the CONVERT function to run this query.
An internal error occurred while the Web server was processing your request. Please contact the webmaster to report this problem.
Thank you.
2018-05-17 10:06:16PST

Steps To Reproduce

I reproduced this again today: 2018-05-21 13:15:47
1)Sign on to LS 3.7.2 with LS generated password - Sign in success
2)Go to user's 'My account'
3)Under 'My profile' click on 'Change password'
4)Enter Current password, New password & Repeat new password.
5)Click on Save.

Additional Information

**Verified in phpinfo() that 'mbstring' is enabled
My Environment:
LimeSurvey 3.7.2+180508
Windows Server 2012 r2(64bit)
MS SQL Server 2014 SP1(64bit)
Apache 2.4.33(64bit)
PHP 7.2.5(64bit)
MS SQL Server Drivers 5.2_ForPHP(64bit)
Microsoft ODBC Driver 11 for SQL Server-Windows(64bit)

TagsNo tags attached.
Complete LimeSurvey version number (& build)Version 3.7.2+180508
I will donate to the project if issue is resolvedNo
BrowserMS Edge, Chrome, IE 11
Database & DB-VersionMS SQL Server 2014- 12.0.4522.0 (X64)
Server OS (if known)Windows Server 2012 r2(64bit)
Webserver software & version (if known)Apache 2.4.33(64bit)
PHP VersionPHP 7.2.5(64bit)




2018-05-22 07:24

developer   ~47699

Can you activated debug mode and do same process

With debug mode : you can save page as html and send it here (only the html)



2018-05-22 10:13

administrator   ~47700

As Denis said, please activate debug mode and try again, then give us the full error message.



2018-05-23 01:11

reporter   ~47715

Hi Denis & Olle, Thank U for ur reply.
As suggested, I activated 'debug mode' & ran the change password process again, with same result.
Am attaching the full error msg that was displayed. Saving in html only did not capture the msg, so saved it in docx.



2018-05-23 10:45

administrator   ~47725

Fix committed to master branch:



2018-05-24 01:38

reporter   ~47795

Hi c_Schmitz,
I updated the fix changes to the 3 files (mod - application/config/version.php, mod - application/helpers/update/updatedb_helper.php, mod - installer/create-database.php) in my LS environment. Re-started Apache, singed on to LS 3.72, & tried to change my user password. Got the same error, since the 'one_time_pw' column datatype was still the same. (If this is not what I s/have done, pls advise)

So next to overcome this issue, I decided to do a fresh install of LS 3.7.2 pointing to a newly created SQL database. Modified the 3 files (mod - application/config/version.php, mod - application/helpers/update/updatedb_helper.php, mod - installer/create-database.php) with the fix diff change & started installer ''
BUT, immediately I got this error.- (full error msg attached.)
The table "{{settings_global}}" for active record class "SettingGlobal" cannot be found in the database.

Again if this is not the right method to add the fix, pls advise.



2018-05-25 11:30

administrator   ~47814

Version 3.8.1+180524 released



2018-05-25 22:32

reporter   ~47855

Hi c_Schmitz,
Yes-I did go the route of d/loading & installing LS 3.8.1+180524.
Followed the installation instruction. However I am still getting the same error msg. C attached pic.
The table "{{settings_global}}" for active record class "SettingGlobal" cannot be found in the database.



2018-05-29 20:17

reporter   ~47903

Hi c_Schmitz,
I have now successfully installed LS 3.8.1- I realized the error & corrected.

Related Changesets

LimeSurvey: master 83dd9781

2018-05-23 10:44:16


Details Diff
Fixed issue 13700: SQL error when trying to change changing user password on MSSQL DB Affected Issues
mod - application/config/version.php Diff File
mod - application/helpers/update/updatedb_helper.php Diff File
mod - installer/create-database.php Diff File

Issue History

Date Modified Username Field Change
2018-05-21 22:16 John_K New Issue
2018-05-22 07:24 DenisChenu Note Added: 47699
2018-05-22 10:13 ollehar Status new => feedback
2018-05-22 10:13 ollehar Note Added: 47700
2018-05-23 01:11 John_K File Added: 13700_Attempt to change LS issued password-CDbException.docx
2018-05-23 01:11 John_K Note Added: 47715
2018-05-23 01:11 John_K Status feedback => new
2018-05-23 10:23 LouisGac Assigned To => c_schmitz
2018-05-23 10:23 LouisGac Status new => assigned
2018-05-23 10:45 c_schmitz Changeset attached => LimeSurvey master 83dd9781
2018-05-23 10:45 c_schmitz Note Added: 47725
2018-05-23 10:45 c_schmitz Resolution open => fixed
2018-05-23 10:47 c_schmitz Status assigned => resolved
2018-05-23 10:47 c_schmitz Fixed in Version => 3.7.x
2018-05-24 01:38 John_K File Added: CDbException-SettingGlobal cannot be found in the database.docx
2018-05-24 01:38 John_K Note Added: 47795
2018-05-25 11:30 c_schmitz Note Added: 47814
2018-05-25 11:30 c_schmitz Status resolved => closed
2018-05-25 22:32 John_K File Added: CDbException-The table SettingGlobal cannot be found in the database..PNG
2018-05-25 22:32 John_K Note Added: 47855
2018-05-29 20:17 John_K Note Added: 47903