martec / Rin-Editor_for_phpBB

WYSIWYG Editor for phpBB (Powerd by CKEditor)
14 stars 10 forks source link

Emojis #26

Closed renzotom closed 5 years ago

renzotom commented 6 years ago

Hello, when I use emoji in Rian editor and after wanna do poll, it is broken, if there is emoji on source... When in source is ex. : dolpin :, it works, but when there is 🐬 it is broken.... `Hello, on new version 3.2.2 and database importing (from 3.2.1), I can't make polls.....

[code] General error SQL ERROR [ mysqli ]

Incorrect string value: '\xF0\x9F\x90\xB3 \xC2...' for column 'post_text' at row 1 [1366]

SQL

INSERT INTO phpbb_ppr (post_edit_user, post_id, post_edit_time, post_subject, post_text, bbcode_uid, bbcode_bitfield, post_edit_reason) VALUES ('2', 379, 1515609720, 'Delfíni', '[attachment=1]1.14_delfíni.png[/attachment]\n\nUrčitě mnozí z Vás ví, že nová verze [b]1.14 [/b]a pro Bedrock edici [b]1.3 [/b]přinese také [b]delfíny [/b] 🐳 . Pojďme si o nich něco více říci.... Co vše o nich teda víme? Samozřejmě to nebudou žádní zabijáci, ale zcela mírumilovná stvoření, tedy [b]pasivní tvorové[/b]. Tito roztomilí tvorové budou umět [b]skákat z vody a zpátky do vody[/b], budou navíc užívat [b]systém chytřejšího skákání[/b], na kterém pracuje vývojář [url=https://twitter.com/MiaLem_n]MiaLem_n[/url], který pro nás už připravil např. papoušky a recepty. \n\nhttps://twitter.com/MiaLem_n/status/950667415976804352\n\n[i]Co říkáte na tuto schopnost přeskakovat různé věci do vody? Nebudete si je moci chytit někde blízko moře či zastavením protože to přeskočí [/i] 😜 .\n\nKrom toho víme již z Mineconu, že nás budou [b]vodit k vrakům s poklady.[/b]\n\n[attachment=0]1.14_vraky.png[/attachment]\n\nTo už je téměř vše, teď si řekneme, co rozhodně od delfínů nečekat... Náš výše zmíněný vývojář totiž rozhodně řekl, že delfíny [b]nebude možné řídit[/b]. Proč? PROTOŽE TO JE TÝRÁNÍ ZVÍŘAT!!! A ani v MC vývojáři nechtějí podporovat týrání zvířat, což je nejspíš dobře.\n\nhttps://twitter.com/MiaLem_n/status/951003168758001664\n\n[offtopic]A nepřátelští mobové zase nikde :([/offtopic]\n\n[i]Co na delfíny říkáte? Líbí se Vám tito noví tvorové? Co byste jim přidali?[/i]', '22rxmwtk', '', '')

BACKTRACE

FILE: (not given by php) LINE: (not given by php) CALL: msg_handler()

FILE: [ROOT]/phpbb/db/driver/driver.php LINE: 993 CALL: trigger_error()

FILE: [ROOT]/phpbb/db/driver/mysqli.php LINE: 193 CALL: phpbb\db\driver\driver->sql_error()

FILE: [ROOT]/phpbb/db/driver/factory.php LINE: 329 CALL: phpbb\db\driver\mysqli->sql_query()

FILE: [ROOT]/ext/bruninoit/ppr/event/main_listener.php LINE: 177 CALL: phpbb\db\driver\factory->sql_query()

FILE: (not given by php) LINE: (not given by php) CALL: bruninoit\ppr\event\main_listener->edit_action()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php LINE: 184 CALL: call_user_func()

FILE: [ROOT]/vendor/symfony/event-dispatcher/EventDispatcher.php LINE: 46 CALL: Symfony\Component\EventDispatcher\EventDispatcher->doDispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php LINE: 62 CALL: Symfony\Component\EventDispatcher\EventDispatcher->dispatch()

FILE: [ROOT]/phpbb/event/dispatcher.php LINE: 46 CALL: phpbb\event\dispatcher->dispatch()

FILE: [ROOT]/includes/functions_posting.php LINE: 1498 CALL: phpbb\event\dispatcher->trigger_event()

FILE: [ROOT]/posting.php LINE: 1445 CALL: submit_post()[/code]

PS: In next topic, I can make it.... Maybe there is problem with post? Ex. with emotions from Rin editor?`

martec commented 6 years ago

Hi,

you tried to do same thing without my extension?

renzotom commented 6 years ago

Yeah, try it yourself also.

martec commented 6 years ago

? I asked result when you tried without my extension. Same thing happen or not?

Leinad4Mind commented 6 years ago

Your problem is in here: https://github.com/andreaskou/phpbb3.2_post_revisions/blob/master/event/main_listener.php#L167

That happens because an UTF-8 has 4-bytes but in MySQL it has only 3-bytes, but on most recent MySQL I beleive its already fixed. You can read more here: https://tracker.phpbb.com/browse/PHPBB3-11711

One solution is to put this: 'post_text' => preg_replace('/[\x{10000}-\x{10FFFF}]/u', '\xef\xbf\xbd', $event['data']['message']),

And other variables if you think someone will add an emoji on the subject or on the reason field.

Another solution is to put this: https://www.phpbb.com/community/viewtopic.php?f=456&t=2450106&start=15#p14971426

Cheers

martec commented 5 years ago

Thanks @Leinad4Mind . so not related with my extension. so closed.