diff --git a/inc/contrib/Twig/Extensions/Extension/Tinyboard.php b/inc/contrib/Twig/Extensions/Extension/Tinyboard.php
index 49db4046..5748c0d3 100644
--- a/inc/contrib/Twig/Extensions/Extension/Tinyboard.php
+++ b/inc/contrib/Twig/Extensions/Extension/Tinyboard.php
@@ -72,7 +72,7 @@ function twig_sprintf_filter( $value, $var) {
}
function twig_truncate_filter($value, $length = 30, $preserve = false, $separator = '…') {
- if (strlen($value) > $length) {
+ if (mb_strlen($value) > $length) {
if ($preserve) {
if (false !== ($breakpoint = strpos($value, ' ', $length))) {
$length = $breakpoint;
diff --git a/inc/functions.php b/inc/functions.php
index 3a5e0ecf..7dcdc088 100644
--- a/inc/functions.php
+++ b/inc/functions.php
@@ -7,7 +7,8 @@
require 'contrib/gettext/gettext.inc';
- register_shutdown_function('fatal_error_handler');
+ register_shutdown_function('fatal_error_handler');
+ mb_internal_encoding('UTF-8');
loadConfig();
function loadConfig() {
diff --git a/mod.php b/mod.php
index 5822e3b5..970586b0 100644
--- a/mod.php
+++ b/mod.php
@@ -1360,10 +1360,10 @@
// Bug fix for https://github.com/savetheinternet/Tinyboard/issues/21
$po->body = truncate($po->body, $po->link(), $config['body_truncate'] - substr_count($append_html, '
'));
- if(strlen($po->body) + strlen($append_html) > $config['body_truncate_char']) {
+ if(mb_strlen($po->body) + mb_strlen($append_html) > $config['body_truncate_char']) {
// still too long. temporarily increase limit in the config
$__old_body_truncate_char = $config['body_truncate_char'];
- $config['body_truncate_char'] = strlen($po->body) + strlen($append_html);
+ $config['body_truncate_char'] = mb_strlen($po->body) + mb_strlen($append_html);
}
$po->body .= $append_html;
@@ -1731,7 +1731,7 @@
if(empty($value))
$value = 'empty';
else
- $value = '' . utf8tohtml(substr($value, 0, 110) . (strlen($value) > 110 ? '…' : '')) . '';
+ $value = '' . utf8tohtml(substr($value, 0, 110) . (mb_strlen($value) > 110 ? '…' : '')) . '';
} elseif(gettype($value) == 'integer') {
$value = '' . $value . '';
}
@@ -1787,11 +1787,11 @@
error(sprintf($config['error']['required'], 'title'));
// Check string lengths
- if(strlen($b['uri']) > 8)
+ if(mb_strlen($b['uri']) > 8)
error(sprintf($config['error']['toolong'], 'URI'));
- if(strlen($b['title']) > 20)
+ if(mb_strlen($b['title']) > 20)
error(sprintf($config['error']['toolong'], 'title'));
- if(strlen($b['subtitle']) > 40)
+ if(mb_strlen($b['subtitle']) > 40)
error(sprintf($config['error']['toolong'], 'subtitle'));
if(!preg_match('/^\w+$/', $b['uri']))
diff --git a/post.php b/post.php
index 352cbdb8..a91b6530 100644
--- a/post.php
+++ b/post.php
@@ -323,11 +323,16 @@
}
// Check string lengths
- if(strlen($post['name']) > 50) error(sprintf($config['error']['toolong'], 'name'));
- if(strlen($post['email']) > 40) error(sprintf($config['error']['toolong'], 'email'));
- if(strlen($post['subject']) > 100) error(sprintf($config['error']['toolong'], 'subject'));
- if(!$mod && strlen($post['body']) > $config['max_body']) error($config['error']['toolong_body']);
- if(strlen($post['password']) > 20) error(sprintf($config['error']['toolong'], 'password'));
+ if(mb_strlen($post['name']) > 35)
+ error(sprintf($config['error']['toolong'], 'name'));
+ if(mb_strlen($post['email']) > 40)
+ error(sprintf($config['error']['toolong'], 'email'));
+ if(mb_strlen($post['subject']) > 100)
+ error(sprintf($config['error']['toolong'], 'subject'));
+ if(!$mod && mb_strlen($post['body']) > $config['max_body'])
+ error($config['error']['toolong_body']);
+ if(mb_strlen($post['password']) > 20)
+ error(sprintf($config['error']['toolong'], 'password'));
wordfilters($post['body']);
@@ -550,9 +555,9 @@
// Remove DIR_* before inserting them into the database.
if($post['has_file']) {
- $post['file'] = substr_replace($post['file'], '', 0, strlen($board['dir'] . $config['dir']['img']));
+ $post['file'] = substr_replace($post['file'], '', 0, mb_strlen($board['dir'] . $config['dir']['img']));
if($is_an_image && $post['thumb'] != 'spoiler')
- $post['thumb'] = substr_replace($post['thumb'], '', 0, strlen($board['dir'] . $config['dir']['thumb']));
+ $post['thumb'] = substr_replace($post['thumb'], '', 0, mb_strlen($board['dir'] . $config['dir']['thumb']));
}
$id = post($post, $OP);