<MyRusakov.ru />

Создание крупного проекта на Java с нуля

Создание крупного проекта на Java с нуля

Данный курс научит Вас создавать крупные проекты на Java грамотно и быстро. В курсе Вы увидите создание большой и сложной программы на Java абсолютно с нуля.

В начале курса у нас будет только идея, а в конце готовый продукт, который можно использовать в практических целях.

В рамках упражнений курса Вы параллельно со мной будете создавать свою большую программу на Java, что даст Вам необходимую практику, после которой для Вас уже не будет разницы, какого размера создавать программы.

Подробнее
Подписка

Подписавшись по E-mail, Вы будете получать уведомления о новых статьях.

Подписка Подписаться

Добавляйтесь ко мне в друзья ВКонтакте! Отзывы о сайте и обо мне оставляйте в моей группе.

Мой аккаунт Мой аккаунт Моя группа
Опрос

Каким движком Вы предпочитаете пользоваться?

Форум сайта MyRusakov.ru

Проблема с кодировкой при отправке POST запросов
28.01.2013 21:49:15 Проблема с кодировкой при отправке POST запросов Сообщение #1
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

Отправляю POST запрос в файл. Входящий текст закодирован в windows1251, а после JavaScript абракадабра вылезает. Скрипт JS тоже в windows1251 написан. В чём может быть проблема?

function addToBasket(str) {
var xmlhttp = getXmlHttp();
xmlhttp.open('POST', 'info.php', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('add_to_basket=1&str=' + encodeURIComponent(str));
}


Потом это всё обрабатывается и записывается в сессию

if ($_POST['add_to_basket'] == 1) {
$str = $_POST['str'];
if (!isset($_SESSION['basket'])) $_SESSION['basket'] = $str;
else $_SESSION['basket'] .= ', '.$str;
}


В итоге в сессии получается вот это Пицца - Пепперони, Пицца - Наполи.
Профиль Ответить
29.01.2013 09:38:19 Проблема с кодировкой при отправке POST запросов Сообщение #2
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Переходите на UTF-8, либо перед отправкой меняйте кодировку. Нормально отправляется только UTF-8 через JavaScript.
Профиль Ответить
29.01.2013 15:13:35 Проблема с кодировкой при отправке POST запросов Сообщение #3
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

Отправляю таким образом
<img src = "imgeas/image.jpg" onclick = "addToBasket('Строка')" />
Как перед отправкой перекодировать строку?
Профиль Ответить
29.01.2013 20:28:01 Проблема с кодировкой при отправке POST запросов Сообщение #4
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

Замучаетесь это делать, это в PHP есть функция iconv(), а в JS такой функции нет. Можно искать в Интернете готовые функции, они достаточно большие, но они есть. Берите, проверяйте. Но лучше перекодировать весь сайт в UTF-8.
Профиль Ответить
29.01.2013 23:26:49 Проблема с кодировкой при отправке POST запросов Сообщение #5
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

Уже перекодировал с помощью iconv() в PHP, вроде теперь с кодировкой нет проблем. Теперь другая проблема. Я отправляю через JS POST-запрос в котором передаю только один параметр.

function updateBasket() {
var xmlhttp = getXmlHttp();
xmlhttp.open('POST', 'basket.php', true);
xmlhttp.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xmlhttp.send('update_basket=1');
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4) {
if (xmlhttp.status == 200) {
var response = xmlhttp.responseText;
response = JSON.parse(response);
document.getElementById('basket').innerHTML = response.lenght;
}
else document.getElementById('basket').innerHTML = 'status ' + xmlhttp.status;
}
else document.getElementById('basket').innerHTML = 'readyState ' + xmlhttp.readyState;
}
setTimeout('updateBasket', 1000);
}


PHP всё прекрасно ловит, но ничего после не происходит.

session_start();
if ($_POST['update_basket'] == 1) {
if ($_SESSION['basket']) {
$str = $_SESSION['basket'];
$arr = explode(", ", $str);
echo json_encode($arr);
}
else echo 'В корзине нет покупок';
}
Профиль Ответить
30.01.2013 10:38:23 Проблема с кодировкой при отправке POST запросов Сообщение #6
Admin

Admin

Администратор

Администратор

Дата регистрации:
27.05.2010 21:23:42

Сообщений: 3063

А как Вы определяете, что PHP ловит?
Профиль Ответить
30.01.2013 13:29:50 Проблема с кодировкой при отправке POST запросов Сообщение #7
RussianPro

RussianPro

Эксперт

Эксперт

Дата регистрации:
14.07.2011 01:32:38

Сообщений: 114

Это мои доводы
Профиль Ответить
30.01.2013 14:22:07 Проблема с кодировкой при отправке POST запросов Сообщение #8
Alnik-75

Alnik-75

Продвинутый

Продвинутый

Дата регистрации:
07.02.2012 11:45:49

Сообщений: 48

json'ы не работают с кириллицей, поэтому Вы ничего и не увидите. Сам раньше работал в этой кодировке,тоже все не хотел переходить, но потом все же пришлось. Поэтому совет- уходите в UTF-8. Одна проблема-нудная конвертация и переделка строковых функций
Профиль Ответить