На днях сайт переехал на новый хостинг и сразу столкнулся с проблемой - система для голосования PollXT перестала работать.

Копания в коде дали свои результаты. Проблема заключалась в том, что на старом сервере все спецсимволы автоматом экранировались и данные переданные через JSON экранировались, а затем эти символы убирались с помощью следующего кода

Файл: \administrator\components\com_pollxt\admin.pollxt.php

$ajaxQuestions = json_decode(stripslashes(xtCompat::getVar('ajaxQuestions', 0, true )));
$ajaxOptions = json_decode(stripslashes(xtCompat::getVar('ajaxOptions', 0, true )));

Как видим, тут данные "очищались" от автоматического экранирования с помощью функции stripslashes. На новом сервере функция автоматического экранирования отключена, поэтому все что нам нужно сделать, это убрать "очистку" и заменить этот код на

$ajaxQuestions = json_decode(xtCompat::getVar('ajaxQuestions', 0, true ));
$ajaxOptions = json_decode(xtCompat::getVar('ajaxOptions', 0, true ));

Ну вот и все. Теперь наше голосование снова в строю и вы можете проголосовать за (или против) проведения курса по PHP

 

Комментарии  

 
0 # Sokolova Evgeniya 05.05.2012 12:02
на сайте установлен компонент PollXT. все работает замечательно. но есть одна проблемка. дошло дело до Произвольного ответа. вместо русских слов идут какие-то символы. даже если писать ответь на английском языке, вместо пробела указывается «%20». скачивала русифицированны й компонент. что делать?
Ответить | Ответить с цитатой | Цитировать
 
 
0 # Administrator 06.05.2012 13:48
Не сталкивался с таким, но судя по тому, что вы указали что у Вас %20 вместо пробела, то вероятно где-то происходит преобразование на подобии urlencode. Тут нужно смотреть по коду и искать место перекодировки.
Ответить | Ответить с цитатой | Цитировать
 

Добавить комментарий

Перед публикацией ваш комментарий должен пройти проверку Администратором.


Защитный код
Обновить