<MyRusakov.ru />

Создание Интернет-магазина на PHP и MySQL

Создание Интернет-магазина на PHP и MySQL

Видеокурс "Создание Интернет-магазина на PHP и MySQL" - это уникальный курс по созданию Интернет-магазина с нуля. Особенностью данного курса является то, что создание идёт с самого начала, то есть от идеи. Далее создаётся дизайн всех необходимых страниц, после делается их вёрстка. Затем создаётся движок на PHP и MySQL, после делается Admin-панель и, наконец, готовый сайт размещается в Интернете.

Адрес созданного в этом курсе сайта: http://storedvd.ru

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

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

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