<MyRusakov.ru />

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Фреймворк Yii 2.0 с нуля. Пример создания сайта

Видеокурс "Фреймворк Yii 2.0 с нуля. Пример создания сайта" обучит Вас созданию профессиональных сайтов с использованием фреймворка Yii. В курсе есть 2 раздела: теоретический и практический. В теоретическом разделе будут разобраны возможности фреймворка Yii с примерами их использования, а в практической части будет создан сайт Blog.MyRusakov.ru с помощью полученных знаний из теоретического раздела.

Так же почти ко всем урокам идут упражнения для закрепления материала из урока на практике.

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

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

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