С наступающим Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP
Войти
Регистрация
Восстановить пароль
 
ulenka
0 / 0 / 0
Регистрация: 05.12.2016
Сообщений: 3
1

Setlocale на новом сервере: не добавляются сообщения на русском

03.10.2018, 22:46. Просмотров 170. Ответов 1
Метки нет (Все метки)

После переноса сайта на новый сервер перестали отправляться в чат (voodoo chat) сообщения на русском. На английской раскладке всё в порядке, сообщения отправляются в общее окно чата.

Выполнили настройку локали на сервере:
# locale -a
C
C.UTF-8
en_US.utf8
POSIX
# less /usr/share/i18n/SUPPORTED | grep ru_RU | grep CP1251
ru_RU.CP1251 CP1251
# locale-gen ru_RU.CP1251
Generating locales (this might take a while)...
en_US.UTF-8... done
Generation complete.
# dpkg-reconfigure locales
Generating locales (this might take a while)...
en_US.UTF-8... done
ru_RU.CP1251... done
ru_RU.UTF-8... done
Generation complete.
# locale -a
C
C.UTF-8
en_US.utf8
POSIX
ru_RU.cp1251
ru_RU.utf8

В файл inc_common.php добавили строку

setlocale('LC_ALL', 'ru_RU.CP1251');

Так тоже пробовали:

setlocale('LC_ALL', 'ru_RU.cp1251');

Не отправляются сообщения на русском в чат. Помогите, пожалуйста, с настройкой.

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
<?php
if (!defined("_COMMON_")):
define("_COMMON_", 1);
 
if (!defined("_TAIL_"))
    ob_start();
//you can also try to use
//ob_start("ob_gzhandler);
//if you have a lot of visitors it can make chat faster,
//because it saves traffic and PHP sends pages faster (doesn't wait for a long output)
 
 
error_reporting(E_ERROR|E_PARSE|E_CORE_ERROR|E_CORE_WARNING|E_COMPILE_ERROR|E_COMPILE_WARNING);
$debug = 0;
 
setlocale('LC_ALL', 'ru_RU.CP1251'); 
 
function my_err_h ($errno, $errstr, $errfile, $errline) {
    global $debug, $data_path,$file_path;
    if (strpos($errstr, "\t") > 0) {
        list($voc_ercode, $errstr) = preg_split("\t", $errstr);
        $voc_ercode = intval($voc_ercode);
    } else 
        $voc_ercode = -1;
    switch($errno) {
        case E_NOTICE:
            if ($debug) echo "<b>NOTICE</b>: ".htmlspecialchars($errstr, NULL, '').",  at line ".$errline." in the file ".str_replace(dirname(dirname($errfile))."/", "", $errfile)."<br>";
            else return 0;
        case E_WARNING:
            if ($debug) echo "<b>WARNING</b>: ".htmlspecialchars($errstr, NULL, '').",  at line ".$errline." in the file ".str_replace(dirname(dirname($errfile))."/", "", $errfile)."<br>";
            else return 0;
        break;
        case E_USER_ERROR:
            echo "<center><table border=\"0\"width=\"80%\" cellpadding=\"6\" cellspacing=\"0\">";
            echo "<tr><td bgcolor=\"red\" ><span style=\"color:white; font-weight: bold; font-size:18px; font-family: Arial, Verdana\">Voodoo chat -- Fatal error</span></td></tr>";
 
            echo "<tr bgcolor=\"#dddddd\"><td><span style=\"color:black; font-size:14px; font-family: Arial, Verdana\">We got the error <br><b>".htmlspecialchars($errstr, NULL, '')."</b><br>at line <b>".$errline."</b>";
            echo " in the file <b>".str_replace(dirname(dirname($errfile)), "", $errfile);
            echo "</span></td></tr>";
            echo "<tr bgcolor=\"#dddddd\"><td><span style=\"color:black; font-size:12px; font-family: Arial, Verdana\">";
            if ($voc_ercode >0) echo "<a href=\"http://errors.vochat.com/?".$voc_ercode."\">More details about the problem</a><br><br><a href=\"http://vochat.com/\">Voodoo chat</a> &copy; 1999-2004 by Vlad Vostrykh";
            else echo "Find help at <a href=\"http://vochat.com/\">Voodoo chat homepage</a>";
            echo "</td></tr>";
            echo "</table></center>";
            exit;
        break;
        case E_USER_WARNING:
            echo "<center><table border=\"0\"width=\"80%\" cellpadding=\"6\" cellspacing=\"0\">";
            echo "<tr><td bgcolor=\"red\" ><span style=\"color:white; font-weight: bold; font-size:18px; font-family: Arial, Verdana\">Voodoo chat -- error</span></td></tr>";
 
            echo "<tr bgcolor=\"#dddddd\"><td><span style=\"color:black; font-size:14px; font-family: Arial, Verdana\">We got the error <br><b>".htmlspecialchars($errstr, NULL, '')."</b><br>at line <b>".$errline."</b>";
            echo " in the file <b>".str_replace(dirname(dirname($errfile)), "", $errfile);
            echo "</span></td></tr>";
            echo "<tr bgcolor=\"#dddddd\"><td><span style=\"color:black; font-size:12px; font-family: Arial, Verdana\">";
            if ($voc_ercode >0) echo "<a href=\"http://errors.vochat.com/?".$voc_ercode."\">More details about the problem</a><br><br><a href=\"http://vochat.com/\">Voodoo chat</a> &copy; 1999-2004 by Vlad Vostrykh";
            else echo "Find help at <a href=\"http://vochat.com/\">Voodoo chat homepage</a>";
            echo "</td></tr>";
            echo "</table></center>";
        break;
    }
    return 0;
}
set_error_handler("my_err_h");
 
if (!defined("_VOC_CONFIG_")) { 
function log_hack($log_string) { 
global $data_path; 
$f = fopen($data_path.'hacks.log', 'a+'); 
fwrite($f, $log_string); 
fclose($f); 
} 
 
// LOG hacker 
$conf = file($data_path."voc.conf"); 
foreach ($conf as $conf_rec) { 
$conf_rec = trim($conf_rec); 
if ($conf_rec && strpos($conf_rec, '$') === 0) { 
preg_match('/\$([\s\S]+)=/iU', $conf_rec, $varname); 
$varname = trim(preg_replace('/\[[\s\S]+\]/iU', '', $varname[1])); 
if (isset($$varname) || isset($_GET[$varname]) || isset($_POST[$varname]) || isset($_COOKIE[$varname])) { 
$log_string = "Attempt to assign value [".$$varname."] to variable [".$varname."]. IP: [".getenv('REMOTE_ADDR')."]; FIP: [".getenv('HTTP_X_FORWARDED_FOR')."]; USER_AGENT: [".getenv('HTTP_USER_AGENT')."]\n"; 
log_hack($log_string); 
trigger_error("Hacker detected: attempt to assign value [".$$varname."] to CONFIG-variable [".$varname."]. <br>Your IP [".getenv('REMOTE_ADDR')."] <br>and USER-AGENT [".getenv('HTTP_USER_AGENT')."]<br>are logged!", E_USER_ERROR); 
exit(); 
} 
unset($$varname); 
} 
} 
} 
 
#loading parameters from config file
 
if (!($conf_content = implode("",file($data_path."voc.conf")))) {
    echo $data_path;
    trigger_error("1000\tCannot open voc.conf file, please check your DATA PATH parameter",E_USER_ERROR);
}
eval($conf_content);
#time-offset
function my_time() {
    global $time_offset;
    return time()+$time_offset;
}
 
#for Register_gloabls = off
function set_variable($variable_name) { 
        global $HTTP_GET_VARS, $HTTP_POST_VARS, $HTTP_COOKIE_VARS, $$variable_name, $_GET, $_POST, $_COOKIE; 
        $$variable_name = ""; 
        //GPC order :) 
        if (isset($HTTP_GET_VARS[$variable_name])) $$variable_name = $HTTP_GET_VARS[$variable_name]; 
   if (isset($_GET[$variable_name])) $$variable_name = $_GET[$variable_name]; 
        if (isset($HTTP_POST_VARS[$variable_name])) $$variable_name = $HTTP_POST_VARS[$variable_name]; 
        if (isset($_POST[$variable_name])) $$variable_name = $_POST[$variable_name]; 
        if (substr($variable_name,0,2)=="c_" && isset($HTTP_COOKIE_VARS[$variable_name])) $$variable_name = $HTTP_COOKIE_VARS[$variable_name]; 
   if (substr($variable_name,0,2)=="c_" && isset($_COOKIE[$variable_name])) $$variable_name = $_COOKIE[$variable_name]; 
        //i don't use string-arrays in forms, only in the admin-zone, but there it's just design &lang names 
        //which is normally doesn't have ' or " etc 
        if (is_string($$variable_name)) { 
                $$variable_name = str_replace("\0","", $$variable_name); 
                $$variable_name = str_replace("\t"," ", $$variable_name); 
                if (get_magic_quotes_gpc()) $$variable_name = stripslashes($$variable_name); 
        } 
}
set_variable("session");
$session = preg_replace("/[^a-fA-F0-9]/", "", $session);
set_variable("design");
 
set_variable("c_hash");
if ($c_hash == "")
    $c_hash = md5(uniqid(rand()));
//will set it in the file which doesn't output anything before inc_common.php
//setCookie("c_hash", $c_hash, time() + 2678400);
 
$browser_t = ""; 
if (isset($HTTP_SERVER_VARS['HTTP_USER_AGENT'])) $browser_t .= $HTTP_SERVER_VARS['HTTP_USER_AGENT']; 
if (isset($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'])) $browser_t .= $HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE']; 
if (isset($HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING'])) $browser_t .= $HTTP_SERVER_VARS['HTTP_ACCEPT_ENCODING']; 
if (isset($_SERVER['HTTP_USER_AGENT'])) $browser_t .= $_SERVER['HTTP_USER_AGENT']; 
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) $browser_t .= $_SERVER['HTTP_ACCEPT_LANGUAGE']; 
if (isset($_SERVER['HTTP_ACCEPT_ENCODING'])) $browser_t .= $_SERVER['HTTP_ACCEPT_ENCODING'];
$browser_hash = 0;
for ($i=0;$i<strlen($browser_t);$i++) $browser_hash+=ord($browser_t[$i]);
 
#determening the current design
if ($design == "") $design = $default_design;
else if (!in_array($design, $designes)) $design = $default_design;
$current_design = $chat_url."designes/".$design."/";
 
 
#setting necessary variables
$daemon_url = $daemon_host;
if ($daemon_type!=2) $daemon_url = $daemon_url.":".$daemon_port."/";
$engine_path = $data_path."engine/".$engine."/";
$ld_engine_path = $data_path."engine/".$long_life_data_engine."/";
 
$user_data_file = $data_path."users.dat";
$who_in_chat_file = $data_path."who.dat";
$messages_file = $data_path."messages.dat";
$converts_file = $data_path."converts.dat";
$robotspeak_file = $data_path."robotspeak.dat";
$banlist_file = $data_path."banlist.dat";
$rooms_list_file = $data_path."rooms.dat";
 
#options
define('REITING_TIME_LIMIT', 3);
 
#user statuses
define('ONLINE',0);
define('DISCONNECTED',1);
define('AWAY',2);
define('NA',4);
define('DND',8);
define('SEE',16); 
define('MEET',32); 
define('ZANYAT',64); 
define('PRIVAT',128); 
define('EAT',256);
define('SMOK',512);
define('WORK',1024);
define('WANT',2048);
define('SLEEP',4096);
define('PLAY',8192);
define('MUSIK',16384);
define('MISS',32768);
define('LOVE',65536);
define('BAD',131072);
define('BATH',262144);
define('PIVO',524288);
define('KOFE',1048576);
define('STUD',2097152);
 
#admin rights
define('ADM_BAN',1);
define('ADM_IP_BAN',2);
define('ADM_VIEW_IP',4);
define('ADM_UN_BAN',8);
define('ADM_BAN_MODERATORS',16);
define('ADM_CHANGE_TOPIC',32);
define('ADM_CREATE_ROOMS',64);
define('ADM_EDIT_USERS',128);
define('ADM_BAN_BY_BROWSERHASH',256);
//define('ADM_BAN_BY_SUBNET',256);
define('ADM_LOG',1024); 
define('ADM_PRIVATE_LOG',4096); 
$total_admin_levels = 13;
define('ADM_MARRY',2048);
define("_VIP_", -84);
 
//constans for users and messages lists
define("USER_NICKNAME",0);
define("USER_SESSION",1);
define("USER_TIME",2);
define("USER_GENDER",3);
define("USER_AVATAR",4);
define("USER_REGID",5);
define("USER_TAILID",6);
define("USER_IP",7);
define("USER_STATUS",8);
define("USER_LASTSAYTIME",9);
define("USER_ROOM",10);
define("USER_IGNORLIST",11);
define("USER_CANONNICK",12);
define("USER_CHATTYPE",13);
define("USER_LANG",14);
//new
define("USER_HTMLNICK",15);
define("USER_PRIVTAILID",16);
define("USER_COOKIE",17);
define("USER_BROWSERHASH",18);
define("USER_CLASS",19);
//old again :)
define("USER_SKIN",20);
define("USER_TOTALFIELDS",21);
 
 
define("MESG_ID",0);
define("MESG_ROOM",1);
define("MESG_TIME",2);
define("MESG_FROM",3);
define("MESG_FROMWOTAGS",4);
define("MESG_FROMSESSION",5);
define("MESG_FROMID",6);
define("MESG_FROMAVATAR", 7);
define("MESG_TO",8);
define("MESG_TOSESSION",9);
define("MESG_TOID",10);
define("MESG_BODY",11);
define("MESG_TOTALFIELDS",12);
 
define("ROOM_ID",0);
define("ROOM_TITLE",1);
define("ROOM_TOPIC",2);
define("ROOM_DESIGN",3);
define("ROOM_BOT",4);
define("ROOM_CREATOR",5);//for private rooms
define("ROOM_ALLOWEDUSERS",6);//for private rooms
define("ROOM_ALLOWPICS",7);//to send pics.
define("ROOM_PREMODER",8);//message must be approved by moderator
define("ROOM_LASTACTION", 9);
define("ROOM_TOTALFIELDS",10);
 
 
#loading language pack
//require beacuse I need 'fatal error' if i cannot find the file
if(!defined("_VOC_CONFIG_")) {
    require_once($file_path."languages/".$language.".php");
 
    //System messages -- for case user selected not default language
    //?$w_whisper_to
    //the same name, but with 's' before
    $sw_rob_login = $w_rob_login;
    $sw_rob_hb = $w_rob_hb;
    $sw_rob_logout = $w_rob_logout;
    $sw_rob_idle = $w_rob_idle;
    $sw_goes_to_room = $w_goes_to_room;
    $sw_came_from_room = $w_came_from_room;
    $sw_set_topic_text = $w_set_topic_text;
    $sw_alert_text = $w_alert_text;
    $sw_kill_text = $w_kill_text;
    $sw_times = $w_times;
    $s_registered_colors = $registered_colors;
    $s_default_color = $default_color;
    $s_highlighted_color = $highlighted_color;
    $sw_just_married    = $w_just_married; 
$sw_no_married      = $w_no_married; 
$sw_just_married_adm= $w_just_married_adm; 
$sw_no_married_adm  = $w_no_married_adm;
}
//check for current language and call w_people_* from corresponding lang-file
function w_people($num) {
    global $language, $user_lang;
    $call_lang = $language;
    if (isset($user_lang) && $user_lang != "")
        $call_lang = $user_lang;
    return call_user_func("w_people_".$call_lang, $num);
}
endif;
?>
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.10.2018, 22:46
Ответы с готовыми решениями:

Как в русском IE 5.0 читать сообщения об ошибках?
Как в русском IE 5.0 читать сообщения об ошибках, а то пишет всякую чушь. (Если нет выхода, то как...

IncreditMail все сообщения, присланные на русском языке не читаются
Поставил себе IncreditMail (Это вместо Outlook Express. Теперь все сообщения, присланные на русском...

Как вывести на экран в виде одного сообщения сведения о новом автомобиле
Как вывести на экран в виде одного сообщения сведения о новом автомобиле, если его номер начинается...

DELL Power Edge 810/910. Как разобраться с дисками на новом сервере
Здравствуйте... Приобрели сервер DELL Power Edge 810/910. Уже 2-ой день мучаюсь. Дело в том что...

indy 10 как слушать сообщения на сервере ?
нужно сделать такую прогу: запускается сервер и слушает входящие сообщения от клиентов.....

1
ytf
Нарушитель
233 / 254 / 184
Регистрация: 15.08.2017
Сообщений: 1,483
11.10.2018, 12:24 2
проще в utf весь сайт переделать
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.10.2018, 12:24

Чем отличается вызов функции setlocale(0, "") от setlocale(LC_ALL,"")?
Например printf(setlocale(0, &quot;&quot;)); cout &lt;&lt; endl; printf(setlocale(LC_ALL, &quot;&quot;)); выдают...

Мануал на PG100 GSM Alarm System на русском (маны вообще на русском)
может кто знает где взять мануали на русском к сигнализациям

Setlocale
#include &lt;iostream&gt; #include &lt;string.h&gt; #include &lt;conio.h&gt; #include &lt;stdio.h&gt; #include...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru