XF 2.1 Changing a name with special characters

Somehow, for some reason, a user was able to register with a name that contains special characters. ⦉Ryบz𝕠⦊. This caused a few server errors in our log and is preventing one of the cron jobs from running. When I attempt to change the name through the normal means it once again throws an error.

I imagine I'm going to have to edit it through mysql, but I am unclear on what exactly my query should be. Any ideas?
 
Which cron job is failing?

Can you post the full error, including the title and stack trace.

I don't see any particular reason why that user name would cause an issue - it doesn't on my localhost installation.
 
Sure, I'm guessing it might have to do with one of our add-ons then with that particular name? If so I can contact the add-on creator of the few add-ons that I just now see mentioned. Here's the error.

Code:
     XF\Db\Exception: MySQL query error [1366]: Incorrect string value: '\xF0\x9D\x95\xA0k\xE0...' for column 'from_username' at row 1 src/XF/Db/AbstractStatement.php:228
Code:
INSERT  INTO `xf_sv_unc` (`user_id`, `from_username`, `status`, `to_username`, `via_acp`, `moderator_id`, `is_private`, `date`, `moderation_date`, `unc_id`, `ip_address`, `user_note`, `moderator_note`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
------------

#0 src/XF/Db/Mysqli/Statement.php(196): XF\Db\AbstractStatement->getException('MySQL query err...', 1366, 'HY000')
#1 src/XF/Db/Mysqli/Statement.php(77): XF\Db\Mysqli\Statement->getException('MySQL query err...', 1366, 'HY000')
#2 src/XF/Db/AbstractAdapter.php(94): XF\Db\Mysqli\Statement->execute()
#3 src/XF/Db/AbstractAdapter.php(218): XF\Db\AbstractAdapter->query('INSERT  INTO `x...', Array)
#4 src/XF/Mvc/Entity/Entity.php(1463): XF\Db\AbstractAdapter->insert('xf_sv_unc', Array, false)
#5 src/XF/Mvc/Entity/Entity.php(1195): XF\Mvc\Entity\Entity->_saveToSource()
#6 src/addons/SV/UserEssentials/Service/UsernameChange/Creator.php(307): XF\Mvc\Entity\Entity->save()
#7 src/XF/Service/ValidateAndSavableTrait.php(40): SV\UserEssentials\Service\UsernameChange\Creator->_save()
#8 src/addons/SV/UserEssentials/XF/Admin/Controller/User.php(283): SV\UserEssentials\Service\UsernameChange\Creator->save()
#9 src/XF/Mvc/FormAction.php(187): SV\UserEssentials\XF\Admin\Controller\User->SV\UserEssentials\XF\Admin\Controller\{closure}(Object(XF\Mvc\FormAction))
#10 src/XF/Admin/Controller/User.php(511): XF\Mvc\FormAction->run()
#11 src/XF/Mvc/Dispatcher.php(350): XF\Admin\Controller\User->actionSave(Object(XF\Mvc\ParameterBag))
#12 src/XF/Mvc/Dispatcher.php(257): XF\Mvc\Dispatcher->dispatchClass('XF:User', 'Save', Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Admin\Controller\User), NULL)
#13 src/XF/Mvc/Dispatcher.php(113): XF\Mvc\Dispatcher->dispatchFromMatch(Object(XF\Mvc\RouteMatch), Object(SV\SignupAbuseBlocking\XF\Admin\Controller\User), NULL)
#14 src/XF/Mvc/Dispatcher.php(55): XF\Mvc\Dispatcher->dispatchLoop(Object(XF\Mvc\RouteMatch))
#15 src/XF/App.php(2190): XF\Mvc\Dispatcher->run()
#16 src/XF.php(391): XF\App->run()
#17 admin.php(13): XF::runApp('XF\\Admin\\App')
#18 {main}

Code:
Request state

array(4) {
  ["url"] => string(70) "/admin.php?users/%E2%A6%89r%F0%9D%95%A0k%E0%B8%9A%E2%A6%8A.210579/save"
  ["referrer"] => string(97) "https://REDACTED SITE NAME/admin.php?users/%E2%A6%89r%F0%9D%95%A0k%E0%B8%9A%E2%A6%8A.210579/edit"
  ["_GET"] => array(1) {
    ["users/⦉Ryบz𝕠⦊_210579/save"] => string(0) ""
  }
  ["_POST"] => array(13) {
    ["user"] => array(13) {
      ["username"] => string(8) "REDACTED NEW USERNAME"
      ["email"] => string(21) "REDACTED EMAIL"
      ["user_group_id"] => string(1) "2"
      ["user_state"] => string(5) "valid"
      ["custom_title"] => string(0) ""
      ["message_count"] => string(1) "0"
      ["reaction_score"] => string(1) "0"
      ["trophy_points"] => string(1) "0"
      ["style_id"] => string(1) "0"
      ["language_id"] => string(1) "1"
      ["timezone"] => string(13) "Europe/Athens"
      ["visible"] => string(1) "1"
      ["activity_visible"] => string(1) "1"
    }
    ["change_password"] => string(8) "********"
    ["dob_month"] => string(1) "2"
    ["dob_day"] => string(2) "17"
    ["dob_year"] => string(4) "2005"
    ["profile"] => array(4) {
      ["location"] => string(0) ""
      ["website"] => string(0) ""
      ["about"] => string(0) ""
      ["signature"] => string(0) ""
    }
    ["custom_fields"] => array(15) {
      ["Games"] => array(1) {
        [0] => string(1) "1"
      }
      ["FavoriteThreads"] => string(0) ""
      ["gender"] => string(0) ""
      ["occupation"] => string(0) ""
      ["contactemail"] => string(0) ""
      ["skype"] => string(0) ""
      ["facebook"] => string(0) ""
      ["twitter"] => string(0) ""
      ["SteamID"] => string(0) ""
      ["MicGameTag"] => string(0) ""
      ["PSN"] => string(0) ""
      ["Nintendo"] => string(0) ""
      ["Discord"] => string(0) ""
      ["Youtube"] => string(0) ""
      ["pageWidthPreference"] => string(0) ""
    }
    ["option"] => array(7) {
      ["content_show_signature"] => string(1) "1"
      ["email_on_conversation"] => string(1) "1"
      ["creation_watch_state"] => string(14) "watch_no_email"
      ["interaction_watch_state"] => string(14) "watch_no_email"
      ["receive_admin_email"] => string(1) "1"
      ["show_dob_date"] => string(1) "1"
      ["show_dob_year"] => string(1) "1"
    }
    ["privacy"] => array(5) {
      ["allow_view_profile"] => string(8) "everyone"
      ["allow_post_profile"] => string(7) "members"
      ["allow_receive_news_feed"] => string(8) "everyone"
      ["allow_send_personal_conversation"] => string(7) "members"
      ["allow_view_identities"] => string(8) "everyone"
    }
    ["_xfToken"] => string(8) "********"
    ["_xfRequestUri"] => string(70) "/admin.php?users/%E2%A6%89r%F0%9D%95%A0k%E0%B8%9A%E2%A6%8A.210579/edit"
    ["_xfWithData"] => string(1) "1"
    ["_xfResponseType"] => string(4) "json"
  }
}
 
Yes and Yes. I am currently also reaching out to Xon since if there isn't anything in the default system that would trigger it as you tested in your setup then that would mean it has to be a conflict between the name and user essentials/signup abuse detection and blocking.
 
Top Bottom