Full Member
Покинул форум
Сообщений всего: 212
Дата рег-ции: Янв. 2005
Карма 0
|
Нашел я тут плагин к WordPress, который добавляет форму "Обратной связи". Плагин западный, поэтому саму форму перевел на русский, больше ничего не переводил - ни админку, ни редкие сообщения об ошибках. Сам сайт тоже русскоязычный, само собой в UTF-8, как это принято у всех WordPress сборок. Но вот проблема возникает такая - если вдруг пользователь напортачил в форме обратной связи, то ему выпадет ошибка на русском или английском - не важно, я часть ошибок перевел, а все введенные русскоязычные данные в форме преобразуется в нечитаемый вид типа такого:
Даже если ничего не трогать, исправить ошибку и отправить так, то мне на почту именно в таком виде и приходит. Это не читабельно. Как можно сделать так, чтобы не менялась кодировка у букв, которые уже введены в textarea, text и т.п. Кодировка в браузере не меняется при этом всем, причем сам сайт корректно работает и в кириллице (авто), и в Unicode UTF-8, а на сайте четко прописана UTF-8.
Кстати, переводил я файл тоже с учетом UTF-8, т.е. в редакторе, который поддерживает эту кодировку. Плагин во вложении, проблемный файл wp-contactform.php
Проблемный кусок кода:
CODE: if(strlen($wpcf_legend)>0) {
$form .= '<legend>'.$wpcf_legend.'</legend>';
}
$form .= '<form action="'.get_permalink().'" name="wpcf_form" method="post">';
$form .= '<input type="hidden" value="process" name="wpcf_stage"/>';
$form .= $wpcf_strings['error'];
$form .= '<p><label for="wpcf_your_name">'. __('Ваше имя:','wpcf').'</label>';
$form .= $wpcf_strings['name'].'</p>';
$form .= '<p><label for="wpcf_email">'. __('Ваш Email:','wpcf').'</label>';
$form .= $wpcf_strings['email'].'</p>';
$form .= '<p><label>'.__('Вопрос:','wpcf').'</label><span class="challenge">'. __($question, 'wpcf').'</span></p>';
$form .= '<p><label for="wpcf_response">'. __('Ответ:','wpcf').'</label>';
$form .= $wpcf_strings['response'].'</p>';
$form .= '<p><label for="wpcf_website">'. __('Ваш сайт:','wpcf').'</label>';
$form .= '<input class="field" type="text" name="wpcf_website" id="wpcf_website" maxlength="100" tabindex="14" value="'.htmlentities($_POST['wpcf_website']).'" /></p>';
$form .= '<p><label for="wpcf_usersubject">'. __('Тема сообщения:','wpcf').'</label>';
if(strpos(get_option('wpcf_subject'),"|")>0) {
$subjectarray = array();
$subjectarray = explode("|",get_option('wpcf_subject'));
$form .= '<select class="field" name="wpcf_usersubject" id="wpcf_usersubject" tabindex="15">';
for ($i=0; $i<count($subjectarray);$i++ ) {
$arrayoption = '';
$arrayoption = trim($subjectarray[$i]);
if ($arrayoption!='') {
$form .= '<option value="'.trim($subjectarray[$i]).'">'.trim($subjectarray[$i]).'</option>';
}
}
$form .= '</select>';
} else {
if (get_option('wpcf_showsubject')=="TRUE") {
$form.= $wpcf_strings['usersubject'];
}
}
$form .= '</p>';
$form .= '<p><label for="wpcf_msg">'. __('Ваше сообщение :','wpcf').'</label>';
$form .= $wpcf_strings['msg'].'</p>';
if (get_option('wpcf_copy')=='TRUE') {
$form .= '<p><label for="wpcf_copy">'. __('Отправить копию мне','wpcf').'</label>';
$form .= '<input id="copy" type="checkbox" tabindex="17" value="true" name="copy" title="'. __('Отправить копию мне','wpcf').'"/></p>';
}
$form .= '<p class="button"><input id="contactsubmit" type="submit" value="'. __('Отправить','wpcf').'" tabindex="18" name="Submit"/></p>';
$form .= '</form></fieldset></div>';
|