1: <?php
2:
3:
4:
5:
6: 7: 8:
9: class Protector_postcommon_post_need_multibyte extends ProtectorFilterAbstract
10: {
11: 12: 13:
14: public function execute()
15: {
16: global $xoopsUser;
17:
18: if (!function_exists('mb_strlen')) {
19: return true;
20: }
21:
22:
23: if (is_object($xoopsUser)) {
24: return true;
25: }
26:
27: $lengths = array(
28: 0 => 100,
29: 'message' => 2,
30: 'com_text' => 2,
31: 'excerpt' => 2);
32:
33: foreach ($_POST as $key => $data) {
34:
35: if (!is_string($data)) {
36: continue;
37: }
38:
39: $check_length = isset($lengths[$key]) ? $lengths[$key] : $lengths[0];
40: if (strlen($data) > $check_length) {
41: if (strlen($data) == mb_strlen($data)) {
42: $this->protector->message .= "No multibyte character was found ($data)\n";
43: $this->protector->output_log('Singlebyte SPAM', 0, false, 128);
44: die('Protector rejects your post, because your post looks like SPAM');
45: }
46: }
47: }
48:
49: return true;
50: }
51: }
52: