![]() |
|
Модераторы: Sardar, Aliance |
![]()
|
|
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
Есть чат я на яваскрипте там я не могу поставит знак +;
Хотя люди его как то там ставят, просто мой знак + заменяется пробелом. на сколько я понимаю стоят фильтры Может в коде что изменить?
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
попробуйте добавить сущность &# 43;
Это сообщение отредактировал(а) bars80080 - 26.1.2009, 01:08 |
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
куда добавить в отправляемое сообщение что ли?
Могу с уверенностью на 95% сказать что не получиться. Добавлено @ 07:37
Знатоки посмотрите этот код мне кажется тут нужно что то поменять?? Это сообщение отредактировал(а) 12345c - 26.1.2009, 16:05 |
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
||||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
само собой пробовал и не только это! смотрел какие теги и символы пропускает и не пропускает фильтр.
например я ставлю '' и в чате когда отправляю показывает \'\' то есть они все экранируют! помоги лучше я ва скрипт поменять я в нем мало понимаю Добавлено через 1 минуту и 52 секунды видишь эту строчку: end_of_value = get_string.indexOf('&'); на сколько я понимаю она обрабатывает этот символ а ты мне предлогаешь &# 43; |
|||
|
||||
| 12345c |
|
|||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
DeMONiZ, да, в строчке 30 сообщ. 3 меняются плюсы на пробелы. Но код написан таким древним языком, что нет желания разбираться, что он делает. По идее, это нужно, чтобы сделать "безопасным" сообщение в урле, передаваемом методом GET (но есть просто функция escape). Так как этот запрос ловит сервер и перекодирует, однозначно ответить нелья на вопрос, что получится, если в JS что-то изменить. Попробуйте отменить это кодирование плюсов на пробелы. (хотя бы заменить " " на "+" в этой строчке) .
Это сообщение отредактировал(а) 12345c - 26.1.2009, 16:17 -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
Ну то что это сделано для безопасности я понимаю.
Добавлено через 8 минут и 22 секунды что именно заменить в каких строчках? я меняю в нескольких строчках и чат просто отказывается работать после этого Добавлено через 9 минут и 56 секунд на сколько я понимаю нужно попытаться менять в этих строчках _________________________________________ function getVar(name) { get_string = document.location.search; return_value = ''; do { //This loop is made to catch all instances of any get variable. name_index = get_string.indexOf(name + '='); if(name_index != -1) { get_string = get_string.substr(name_index + name.length + 1, get_string.length - name_index); end_of_value = get_string.indexOf('&'); if(end_of_value != -1) value = get_string.substr(0, end_of_value); else value = get_string; if(return_value == '' || value == '') return_value += value; else return_value += ', ' + value; } } while(name_index != -1) //Restores all the blank spaces. space = return_value.indexOf('+'); while(space != -1) { return_value = return_value.substr(0, space) + ' ' + return_value.substr(space + 1, return_value.length); space = return_value.indexOf('+'); } return(return_value); } Добавлено через 11 минут и 23 секунды Блин знал бы я JS как VB |
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
Кстати админы системы пишут что это несложно впринципе сделть (отправить знак +). Может и менять ни чего не надо........но все что я не пробовал не работает
|
|||
|
||||
| bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
фиг его знает, разбираться в коде тоже желания нет
можно ли в него засунуть url-кодированное обозначение символа? попробуй, может если внести %2B , то оно превратится на выходе в + |
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
Пробовал уже все не хочет ни как
|
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
Короче код тут не при чем........он протсо тупо его как то ставит видать экранирует какими либо символами
|
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
и как он сказал использует этот код INSERT INTRO table (chat,1,6) VALUES («message»,«+»,1); на сколько я понимаю это связано MSSQL
и как мне это искользовать? |
|||
|
||||
| 12345c |
|
||||||
![]() Круглый ![]() ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 2018 Регистрация: 26.12.2005 Где: наша не пропадала ? Репутация: 57 Всего: 101 |
DeMONiZ, я же дал совершенно чёткую инструкцию, что сделать, чтобы проходил знак "+".
(Ну или закомментировать вообще этот цикл в 27-34 строчках.) Затем посмотрите, что станет, не сломается ли чего от этих плюсов. (Если сломается, их надо кодировать во что-то другое, а при чтении в чате декодировать.) Добавлено через 3 минуты и 42 секунды
Тогда надо кодировать плюсы в другую последовательность при отправке, а при приёме возвращать обратно. Но лень в таком коде что-то копать, да ещё без серверной части. Отдайте эту задачу ответственным за это дело специалистам, если это возможно. -------------------- Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go |
||||||
|
|||||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
//Restores all the blank spaces.
// space = return_value.indexOf('+'); // while(space != -1) // { // return_value = return_value.substr(0, space) + ' ' + // return_value.substr(space + 1, return_value.length); // space = return_value.indexOf('+'); // } Коментирую эти строки отправляю плюс он по прежнему заменется пробелом. заменяю + и ни какого результата |
|||
|
||||
| An6rey |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 13.10.2008 Репутация: 1 Всего: 5 |
Топикстартеру. Эта проблема известна и она исходит из наличия двух стандартов - одному из них + перекодируется в пробелы, а по другому нет.
Исходя их этого и в JavaScript и в PHP есть парные функции. Конкретно для тебя измени в коде escape(), которая в данном контексте ни делает аж ничего на функцию encodeURIComponent(), которую при работе с запросами Ajax следует применять всегда. |
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
Изменяю:
// Сохраняем стандартную функцию escape() var escapeOrig = window.escape; // Переопределяем функцию escape() window.escape = function(str) { var ret = []; // Составляем массив кодов символов, попутно переводим кириллицу for (var i = 0; i < str.length; i++) { var n = str.charCodeAt(i); if (typeof trans[n] != 'undefined') n = trans[n]; if (n <= 0xFF) ret.push(n); } return escapeOrig(String.fromCharCode.apply(null, ret)); } } --------------------------------------- на: // Сохраняем стандартную функцию escape() var encodeURIComponent = window.encodeURIComponent; // Переопределяем функцию escape() window.encodeURIComponent = function(str) { var ret = []; // Составляем массив кодов символов, попутно переводим кириллицу for (var i = 0; i < str.length; i++) { var n = str.charCodeAt(i); if (typeof trans[n] != 'undefined') n = trans[n]; if (n <= 0xFF) ret.push(n); } return encodeURIComponent(String.fromCharCode.apply(null, ret)); } } и ни чего все по старому как были пробелы вместо + там и есть! |
|||
|
||||
| An6rey |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 36 Регистрация: 13.10.2008 Репутация: 1 Всего: 5 |
Это обязательно должно работать. Твой код приводит к реккурсии так как window.bb === bb и функция encodeURICOmponent просто теряется,
а код приводит к бескнечной реккурсии. Пробуй так:
|
|||
|
||||
| DeMONiZ |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 92 Регистрация: 2.1.2009 Где: Первоуральск Репутация: нет Всего: нет |
всЕ РАВНО НЕ РАБОТАЕТ сообщения я отсылаю на русском они приходят каракулями в другой кодировке если пишк английскими то все ок! а плюс все равно заменяется пробелом!
Добавлено через 1 минуту и 10 секунд Может кинешь мне в личку свою аську? |
|||
|
||||
![]()
|
| Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |