[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Проблемы с кириллицей
ekabolotina
Есть форма, .js файл со скриптом и .php файл. Все вместе работают нормально, если значения переменных в форме введены на латинице. Если переменная введена по-русски, то скрипт принимает ее за пустую переменную, а мне это не надо, т.к. стоИт проверка на пустые поля. В чем может быть проблема?



Спустя 9 минут, 21 секунда (14.10.2010 - 13:26) arvitaly написал(а):
Цитата
то скрипт принимает ее за пустую переменную, а мне это не надо, т.к. стоИт проверка на пустые поля.


покажите вот эту часть

Спустя 4 минуты, 18 секунд (14.10.2010 - 13:30) ekabolotina написал(а):
Код JS:
function getXmlHttp(){ 

var xmlhttp;

try {

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

} catch (E) {

xmlhttp = false;

}

}


if (!xmlhttp && typeof XMLHttpRequest!='undefined') {

xmlhttp = new XMLHttpRequest();

}

return xmlhttp;

}

function vote() {

var req = getXmlHttp()

var statusElem = document.getElementById('status')

req.onreadystatechange = function() {

if (req.readyState == 4) {
if(req.status == 200) {

statusElem.innerHTML = req.responseText;

}

}

}


var title = document.add.title.value;

var sel = document.add.sel.value;

var content = document.add.content.value;

var fullcontent = document.add.fullcontent.value;

var who = document.add.who.value;

req.open("GET", "add.php?"+"title="+title+"&sel="+sel+"&content="+content+"&fullcontent="+fullcontent+"&who="+who, true);

req.send(null);

statusElem.innerHTML = 'в процессе.';


}

Код PHP:
<?php 
$title = iconv('UTF-8', 'windows-1251', $_GET['title']); $sel = iconv('UTF-8', 'windows-1251', $_GET['sel']); $content = iconv('UTF-8', 'windows-1251', $_GET['content']); $fullcontent = iconv('UTF-8', 'windows-1251', $_GET['fullcontent']); $who = iconv('UTF-8', 'windows-1251', $_GET['who']);
$login = iconv('UTF-8', 'windows-1251', $_GET['login']);

if (empty($title)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Введите заголовок!').'</div>';}else{
if (empty($sel)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите категорию!').'</div>';}else{
if (empty($content)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Краткое содержание пусто!').'</div>';}else{
if (empty($fullcontent)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Подробное содержание пусто!').'</div>';}else{
if (empty($who)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите вариант отображения Вашей новости!').'</div>';}else{ ..................................

Спустя 11 минут, 8 секунд (14.10.2010 - 13:41) arvitaly написал(а):
С виду все в порядке (ну по сабжу ессно).

Т.е. если передать


'abvcыщхз' в title

$title = iconv('UTF-8', 'windows-1251', $_GET['title']);


после этой строки

echo 'title=«' . $title . '»';


что мы видим?

Спустя 21 минута (14.10.2010 - 14:02) ekabolotina написал(а):
данная проблема обнаружилась в IE и Google Chrome и видим мы
title="abvc", только латиница

Спустя 2 минуты, 49 секунд (14.10.2010 - 14:05) arvitaly написал(а):
Давайте html тоже

Спустя 7 минут, 2 секунды (14.10.2010 - 14:12) arvitaly написал(а):
И кстати, вот это

if (empty($title)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Введите заголовок!').'</div>';}else{ 
if (empty($sel)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите категорию!').'</div>';}else{
if (empty($content)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Краткое содержание пусто!').'</div>';}else{
if (empty($fullcontent)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Подробное содержание пусто!').'</div>';}else{
if (empty($who)){echo '<div style="color:red;">'.iconv('windows-1251', 'UTF-8', 'Выберите вариант отображения Вашей новости!').'</div>';}else{ ..................................


можно заменить на это

<?php

try

{
if ( !$title )
{
throw new Exception( 'Введите заголовок!' ) ;
}

if ( !$sel )
{
throw new Exception( 'Выберите категорию!' ) ;
}

if ( !$content )
{
throw new Exception( 'Краткое содержание пусто!' ) ;
}

if ( !$fullcontent )
{
throw new Exception( 'Подробное содержание пусто!' ) ;
}

if ( !$who )
{
throw new Exception( 'Выберите вариант отображения Вашей новости!' ) ;
}
}

catch ( exception $e )
{
echo '<div style="color:red;">' . iconv( 'windows-1251', 'UTF-8', $e->getMessage ) . '</div>' ;
}

Спустя 4 минуты, 9 секунд (14.10.2010 - 14:16) ekabolotina написал(а):
я ошибся в предыдущем посте и отредактировал, только латиницу отображает, HTML вот:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<script
type="text/javascript" src="script.js"></script>
<meta
http-equiv="content-type" content="text/html; charset=utf-8" />
<title></title>
<link
href="menu.css" rel="stylesheet" type="text/css" media="all" />
<link
href="style.css" rel="stylesheet" type="text/css" media="all" />
<!--[if IE]><link rel="stylesheet" type="text/css" href="styleIE.css" media="all"/><![endif]-->

<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script
type="text/javascript" src="redactor/redactor.js"></script>
<link
rel="stylesheet" href="redactor/css/redactor.css" type="text/css" />
</head>

<!--Start of header-->
<body>
<table
border="0" width="100%" cellspacing="0" cellpadding="0" style="magin:0px; padding:0px;"><tr valign="top">
<td
class="shadow_left"></td>
<td
class="centerblockimg">
<div
class="logo_licey"></div>
<div
class="logo_licey_mini">т</div>
<div
class="block_menu">

</div>
</td>
<td
class="shadow_right"></td>
</tr></table>
<!--End of header-->
<!--Start of body-->

<script type="text/javascript">
$(document).ready(
function()
{
$('#redactor_content').redactor({ focus: true, toolbar: 'classic' });
}
);
</script>
<script
type="text/javascript">
$(document).ready(
function()
{
$('#redactor_content2').redactor({ focus: true, toolbar: 'classic' });
}
);
</script>
<table
border="0" width="100%" cellspacing="0" cellpadding="0"><tr valign="top">
<td
class="shadow_left"></td>
<td
class="centerblock">
<table
border="0" width="100%" cellspacing="0" cellpadding="0" valign="top"><tr>
<td
class="left_column" valign="top">
<table
border="0" width="100%" cellspacing="0" cellpadding="0"><tr><td class="left_corner_prog"></td><td class="center_corner_prog">
<strong><div
class="title">Добавление новости на сайт</div></strong> </td><td class="right_corner_prog"></td></tr><tr valign="top"><td class="right_side_prog"></td><td class="center_content">
<form
method="get" name="add">
<input
type="text" name="title" class="form_text" style="width:250px; border:1px solid #bbbbbb; height:30px;"> Заголовок<br>
<select
name="sel" size="1" class="form_select" style="width:250px; border:1px solid #bbbbbb; height:30px;margin-top:15px;">
<option
value="">
<option
value="news">Новости
<option value="projects">Проекты
<option value="rules">Правила
<option value="contacts">Контакты
</select> Категория<br> <br>
<select
name="who" size="1" class="form_select" style="width:250px; border:1px solid #bbbbbb; height:30px;margin-top:15px;">
<option
value="">
<option
value="all">Все
<option value="my_only">Только участники из моей группы
</select> могут читать эту новость<br> <br>
<div
style="font-size:15px; text-align:left; width:100%; height:20px; border-top:1px dashed #bbbbbb; padding-top:8px; padding-bottom:10px; color:#bbbbbb;">Краткое описание</div>
<textarea
name="content" id="redactor_content" style="width: 100%; height: 320px;">
</textarea><br><br>
<div
style="font-size:15px; text-align:left; width:100%; height:20px; border-top:1px dashed #bbbbbb; padding-top:8px; padding-bottom:10px; color:#bbbbbb;">Полное описание</div>
<textarea
name="fullcontent" id="redactor_content2" style="width: 100%; height: 320px;"></textarea><br>
<br><input
onClick="vote()" type="button" value="Готово" name="sbmt">
</form><br>
<div
id="status"></div>
</td><td
class="left_side_prog"></td></tr>
<tr><td><img
src="img/bottoom_left_corner.png" width="10" height="10"></td><td class="prog_bottom"></td><td><img src="img/bottoom_right_corner.png" width="10" height="10"></td></tr></table>

Спустя 11 минут, 56 секунд (14.10.2010 - 14:28) arvitaly написал(а):
У вас jquery есть а вы самописные используете. Весь Ajax можно заменить на
var title = document.add.title.value; 

var sel = document.add.sel.value;

var content = document.add.content.value;

var fullcontent = document.add.fullcontent.value;

var who = document.add.who.value;

$("#status").load("add.php?"+"title="+title+"&sel="+sel+"&content="+content+"&fullcontent="+fullcontent+"&who="+who);



Спустя 12 минут, 20 секунд (14.10.2010 - 14:41) Michael написал(а):
тут:
req.open("GET", "add.php?"+"title="+title+"&sel="+sel+"&content="+content+"&fullcontent="+fullcontent+"&who="+who, true);

каждую переменную надо закодировать:
req.open("GET", "add.php?"+"title="+encodeURIComponent(title)+"&sel="+encodeURIComponent(sel)+ ...

Спустя 20 часов, 14 минут, 10 секунд (15.10.2010 - 10:55) ekabolotina написал(а):
спасибо огромное за советы. А можете сказать, как реализовать это только при помощи POST запроса?

Спустя 5 минут, 36 секунд (15.10.2010 - 11:00) Michael написал(а):

Спустя 22 часа, 1 минута, 19 секунд (16.10.2010 - 09:02) ekabolotina написал(а):
а есть где по-подронее , прямо с примером как подсоединять и куда jQuery библиотеку. В общем весь код, а то там не понять что вообще и еще на английсуом..

Спустя 6 часов, 11 минут, 10 секунд (16.10.2010 - 15:13) Michael написал(а):
Цитата
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>

у тебя уже подключена jQuery.

Вот на русском, читай - там же примеров хватает - что может быть непонятно? Вот так примерно будет:
 $.post("add.php", { title: title, sel: sel, ... },
function(data){
// обрабатываем ответ - он в data;
});

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.