<MyRusakov.ru />

Создание и продвижение лендинга под ключ

Создание и продвижение лендинга под ключ

Данный курс научит Вас создавать профессиональные лендинги на любую тематику с нуля и под ключ. Помимо теории Вы так же своими глазами будете видеть, как создаётся лендинг: заказывается дизайн, верстаются страницы, программируется клиентская часть и Admin-панель, а после лендинг размещается в Интернете. Так же Вы узнаете, как продвигаются лендинги и, самое главное, Вы увидите, как это делается на примере созданного лендинга до первых клиентов.

И, наконец, к курсу идут 4 очень полезных и актуальных Бонуса для лендингов: "Подключение онлайн-консультанта", "Система уведомлений по SMS", "Автоматизация управления Яндекс.Директом" и "Продажа товаров с AliExpress.com".

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

Подписавшись по 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. Одна проблема-нудная конвертация и переделка строковых функций
Профиль Ответить