ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Не работает форма с кирилицей
  #1  
Старый 09.08.2008, 15:47
Аватар для serg-php
serg-php
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме:
205760

Репутация: 28
По умолчанию Не работает форма с кирилицей

Есть проблема в отпрвке юзверями комментов!

Шаблон формы следуюющий:

Код HTML:
<!-- TITLE: Обратная связь -->

<script LANGUAGE="JavaScript">
<!-- 

function validate() {

var error = "";
var f = document.frm;

if (f.name.value == "") {
  error += "Пожалуйста, введите Ваше имя.\n";
}
if(f.email.value.indexOf(".")<1 || f.email.value.indexOf("@") < 1) {
  error += "Пожалуйста, введите email.\n";
  f.email.focus();
}
if (f.comments.value == "") {
  error += "Пожалуйста, введите сообщение до 1000 символов.\n";
}

  if (!error) return true;
  else{
    msg = "Oops! С формой отправки проблемы.\n\n" + error;
    window.alert(msg);
    return false;
  }
}

function CommentsChange(){
  var f = document.frm;
  txtCount(f.comments,f.commentsleft,1000);
}

// -->
</script>

<p>Обратная связь<br><br>

Поля жирным обязательны</p>

<form name=frm method="POST" onSubmit="return validate();">

<input type=hidden name=page value="feedback">

<span class=red>##err_msg##</span>

<p>

<table border=0 cellspacing=0 cellpadding=0 width=415 class=shownot>

<tr><td align="right" valign="top"><b>Имя:</b>&nbsp;&nbsp;</td>

<td><input name=name value="##name##" size="30"></td></tr>


<tr><td>&nbsp;</td><td>&nbsp;Ваше имя полностью.</td></tr>

<tr><td colspan=2>&nbsp;</td></tr>

<tr><td align="right" valign="top"><b>Email:</b>&nbsp;&nbsp;</td>

  <td><input name=email value="##email##" size=30 /></td>
</tr>


<tr><td>&nbsp;</td><td>&nbsp;Email, на который нам прислатьответ</td></tr>

<tr><td colspan=2>&nbsp;</td></tr>

<tr><td align="right" valign="top">Ваш сайт:&nbsp;&nbsp;</td>
<td><input name=url value="##url##" size=30></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;Адрес Вашего сайта (выборочно)</td></tr>

<tr><td colspan=2>&nbsp;</td></tr>


<tr><td align="right" valign="top">Нашли нас:&nbsp;&nbsp;</td>
<td><input name=foundus value="##foundus##" size=30></td></tr>
<tr><td>&nbsp;</td><td>&nbsp;Как Вы нас нашли?  (выборочно)</td></tr>

<tr><td colspan=2>&nbsp;</td></tr>


<tr><td align="right" valign="top"><b>Сообщение:</b>&nbsp;&nbsp;</td>
<td><textarea wrap="virtual" name=comments rows=7 cols=40 onKeyDown="CommentsChange()" onKeyUp="CommentsChange()">##comments##</textarea></td></tr>

<tr><td>&nbsp;</td><td>&nbsp;Ваше сообщение, 
<input readonly type=text name=commentsleft size=3 maxlength=4 value="1000" tabindex=5000>
 символов осталось</td></tr>

<tr><td colspan=2>

<!-- IF ##EN_IMG_VER## -->

<table border=0>
<tr bgcolor="#ffffff">
<td colspan=3 class=blck>
Мера предосторожности: <br>
Введите символы, которые видите на картинке!</td>
</tr>

<tr bgcolor="#ffffff">
<td class=blck>Проверочный код:</td>
<td colspan=2>

<table border=0>
<tr>
<td>
<input name="img_text" size=10></td>
<td>
<img src="index.php?page=feedback&mode=image"></td>
</tr>
</table></td>
</tr>
</table>
<!-- ENDIF -->

</td></tr>

<tr><td colspan=2 align=center><br />


<table width="100%">
<tr><td class=blck>
<center>
<center><input type=submit class=button value="Отправить"></a></center></td></tr></table>

</td></tr>
</table>

</form>

<script>
CommentsChange();
</script>
 
Ответить с цитированием

  #2  
Старый 09.08.2008, 15:50
Аватар для serg-php
serg-php
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме:
205760

Репутация: 28
По умолчанию

Файл обработки формы

PHP код:
<?php



if(!defined('SITE_PATH')) die('Access Denied');

$EN_IMG_VER 1;

// main code

// is GD library present ?
if(!GD_VER$EN_IMG_VER 0;

if(
$_GET['mode']=='image'){
  if(
$EN_IMG_VER) {
    
$o_iv =& Factory::create('Image_Verify');
    
$o_iv->DisplayImage();
  }
  exit;
}

 
$whitelist = array(
   
'name' => array(
     
'type' => 'string',
     
'maxlength' => 100,
   ),
   
'email' => array(
     
'type' => 'email',
     
'maxlength' => 100,
   ),
   
'url' => array(
     
'type' => 'string',
     
'maxlength' => 100,
   ),
   
'foundus' => array(
     
'type' => 'string',
     
'maxlength' => 100,
   ),
   
'comments' => array(
     
'type' => 'print_ws',
     
'maxlength' => 1000,
   ),
 );

$err_msg '';
$tpl_v = array();
$tpl_v['EN_IMG_VER'] = $EN_IMG_VER;

if(
$_SERVER['REQUEST_METHOD']=='POST') {

  
$clean esFilter($_POST$whitelist);

  if(!
$clean['email']) $err_msg hwLng('req_email');
  elseif(!
$clean['comments']) $err_msg hwLng('req_comments');

  if(!
$err_msg && $EN_IMG_VER){
    
$o_iv =& Factory::create('Image_Verify');
    if(!
$o_iv->IsTextOK($_POST['img_text'])) $err_msg hwLng('err_img_code');
  }

  if(!
$err_msg){

    foreach(
array_keys($whitelist) as $k$tpl_v[$k] = htmlspecialchars($clean[$k], ENT_QUOTES$GLOBALS['CHARSET']);

    
EvalAdvTpl(TPL_PATH.'feedback_ok.htm'$tpl_v1);

    
$tpl_v['HTTP_REFERER'] = htmlspecialchars($_SERVER['HTTP_REFERER'], ENT_QUOTES$GLOBALS['CHARSET']);
    
$email_body EvalAdvTpl(TPL_PATH.'feedback.mail',$tpl_v);
    
hwSendMail(ADMIN_EMAIL$tpl_v['email'], ''$email_body);

    return;
  }
  
//end POST

foreach(array_keys($whitelist) as $k$tpl_v[$k] = isset($_POST[$k]) ? htmlspecialchars($_POST[$k], ENT_QUOTES$GLOBALS['CHARSET']) : '';
$tpl_v['err_msg'] = $err_msg;

EvalAdvTpl(TPL_PATH.'feedback.htm'$tpl_v1);

?>
 
Ответить с цитированием

  #3  
Старый 09.08.2008, 15:52
Аватар для serg-php
serg-php
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме:
205760

Репутация: 28
По умолчанию

Проблема следующая, если ввожу все латиницей - работает!


Пишу по русски - ответ об ошибке - Введите Ваше сообщение

Т.е. он говори, что в поле comments - я ничего не писал!

Как решить данную проблему?
Заранее спасибо!
 
Ответить с цитированием

  #4  
Старый 09.08.2008, 21:34
Аватар для AdReNa1!Ne
AdReNa1!Ne
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме:
2308963

Репутация: 309
Отправить сообщение для AdReNa1!Ne с помощью ICQ
По умолчанию

форма не работает с кириллицей...
Может попробовать в мета-заголовок вбить тип кодировки, и в обработчике iconv() заюзать?
 
Ответить с цитированием

  #5  
Старый 09.08.2008, 23:22
Аватар для serg-php
serg-php
Участник форума
Регистрация: 28.01.2008
Сообщений: 247
Провел на форуме:
205760

Репутация: 28
По умолчанию

Так в форме есть
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
Или это совсем другое?
 
Ответить с цитированием

  #6  
Старый 09.08.2008, 23:45
Аватар для AdReNa1!Ne
AdReNa1!Ne
Участник форума
Регистрация: 24.05.2007
Сообщений: 229
Провел на форуме:
2308963

Репутация: 309
Отправить сообщение для AdReNa1!Ne с помощью ICQ
По умолчанию

Это оно. Короч остается попробовать iconv() в обработчике.
 
Ответить с цитированием

  #7  
Старый 10.08.2008, 17:40
Аватар для Isis
Isis
Флудер
Регистрация: 20.11.2006
Сообщений: 3,316
Провел на форуме:
16641028

Репутация: 2371


По умолчанию

В js загоняй в base64, в php делай iconv
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как настроить adsl для двух машин?, работает только на какой-нибудь одной Дикс *nix 48 03.11.2008 20:45
Mozilla работает над Firefox 4 Phm.phx Мировые новости 6 02.04.2008 01:08
Написал свою первую игру месяца 2 назад. Добавил массивы недавно. Теперь не работает Metall С/С++, C#, Delphi, .NET, Asm 5 17.01.2008 02:26



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ