I was wondering if anyone knows how to fix the error:
[22-Jan-2018 05:26:14 UTC] PHP Fatal error: Uncaught Fuel\Core\Database_Exception: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\xF1a;FBI...' for column 'user_agent' at row 1 with query: "INSERT INTO session (session_id, previous_id, ip_hash, user_agent, created, updated, payload) VALUES ('[cutout]', '[cutout]', '[cutout]', 'Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13B143 [FBAN/FBIOS;FBAV/60.0.0.37.141;FBBV/34183777;FBRV/0;FBDV/iPhone6,2;FBMD/iPhone;FBSN/iPhone OS;FBSV/9.1;FBSS/2;FBCR/OrangeEspańa;FBID/phone;FBLC/es_ES;FBOP/5]', 1516598774, 1516598774, 'a:3:{i:0;a:7:{s:10:\"session_id\";s:32:\"[cutout]\";s:11:\"previous_id\";s:32:\"[cutout]\";s:7:\"ip_hash\";s:32:\"[cutout]\";s:10:\"user_agent\";s:266:\"Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Mobile/13B143 [FBAN/FBIOS;FBAV/60.0.0. in /var/www/xxx/platform/fuel/core/classes/session/db.php on line 238
It seems that Fuel is unable to handle User-Agent strings with characters outside UTF-8 (with the proposed table structure from the documentation), so the session will not work for OrangeEspana mobile users. I think there should be some kind of character mapping to their flat equivalent or stripping the characters that are out of range. What do you think? In my tables I use utf8_mb4, but it seems not enough for this character.
Seems in general sessions are working this way, but this doesn't fix the original issue.
I know this is not the problem of the framework as the client uses non-standard characters, so I do not propose changing anything in framework code.
However, I can write the code by myself to strip the User_Agent from non-standard characters. I was wondering if editing $_SERVER['HTTP_USER_AGENT'] is enough. Can you suggest what place would be good to do not edit the framework base code itself but still do it before framework loads the USER_AGENT into their internals?