Важное с Sysman.Ru: Поиск юзера с главной страницы Admin CP
Рекомендованные сообщения
Сейчас на странице 0
- Нет пользователей, просматривающих эту страницу.
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Song:
Симтомы: когда мы пытаемся найти участника форума, ник которого состоит из русских букв из Админ-центра, то при поиске через основной поиск (Admin CP -> Users and Groups -> Find/Edit/Suspend User), участник находится без сложностей.
Однако, если мы будем искать того же участника с главной страницы Админ-центра
то поиск не принесёт результатов.
Причины: поиск с главной страницы Админ-центра сделан через ява-скрипт, в котором при нажатии на кнопку "Find member" ник участника посылается в форму для поиска через функцию ява-скрипта escape.
В последних версиях современных браузеров данная функция кодирует не в hex кодирование %hex, а в двойное юникодовое кодирование (%uxxx), которое не воспринимается на стороне сервера за валидную информацию. Применённая для этого на стороне сервера функция urldecode() совершенно безполезна в данном случае.
Соответственно ник, введённый по-русски, в итоге запрашивается СУБД совсем в другом искажённом виде и естественно ничего не находится.
Исправление:
1.x:
Самым простым решением в данном случае будет убрать использование escape.
Удалите выделенные участки кода:
[b]function[/b] edit_member() { [b]if[/b] (document.forms[0].username.value == \"\") { alert(\"You must enter a username!\"); } [b]else[/b] { window.parent.body.location = '{$SKIN->base_url}' + '&act=mem&code=stepone&USER_NAME=' + escape(document.forms[0].username.value); } }В версии 2.1 исправление живёт в файле skin_acp/IPB2_Standard/acp_skin_html/cp_skin_index.php
Song_Bot: К посту прикреплены вложения, но посмотреть Вы их можете, только открыв статью в Форуме.