Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2013, 01:50
Интересующийся
Отправить личное сообщение для potomuchto Посмотреть профиль Найти все сообщения от potomuchto
 
Регистрация: 10.11.2013
Сообщений: 12

Смещение по чарам
Здравствуйте. Мне нужно написать простенькое кодирование ссылки, таким образом, что бы сервер ее кодировал, вставлял в страницу, а жс получал и декодировал.

Для этого я смещал через char каждый символ строки на определенную величину, передавал эту величину в жс, и потом смещал в другую сторону, и я заметил, что при определенных величинах смещения ссылка декодируется неверно. Закодированную ссылку я вставлял в див, а потом с помощью innerHTML получал в переменную. Я подозреваю, что при этом действии происходит какое-то изменение строки. У меня появлялись лишниэ элементы массива (рассматривал строку, как массив). И это касалось одинарной кавычки. Она заменялась на: amp;

А если я смещал в другую сторону на сервере, то у меня в некоторых случаях символы обратно неправильно преобразовывались. Подскажите пожалуйста метод решения этой проблемы.
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2013, 09:06
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от potomuchto
Подскажите пожалуйста метод решения этой проблемы.
Как вариант, кодировать не "символами", а "циферками"... Закодированый УРЛ будет выхлядеть как-то так

123;10;230;22;

Где каждая циферка это код символя + некое смещение... Т.о. ты не будешь иметь особых проблем с обработкой строки...
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2013, 09:52
Интересующийся
Отправить личное сообщение для potomuchto Посмотреть профиль Найти все сообщения от potomuchto
 
Регистрация: 10.11.2013
Сообщений: 12

ksa,
А ты не знаешь в чем собственно корень проблемы? За метод спасибо, если с этой проблемой не разберусь, то наверное его использовать буду
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2013, 09:55
Аватар для Skipp
.
Отправить личное сообщение для Skipp Посмотреть профиль Найти все сообщения от Skipp
 
Регистрация: 30.03.2010
Сообщений: 1,813

Код в студию)
__________________
.
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2013, 10:03
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от potomuchto
А ты не знаешь в чем собственно корень проблемы?
При смещении ты попадаешь в "особенные" символы, они-то и парят потом мосх.
Ответить с цитированием
  #6 (permalink)  
Старый 29.11.2013, 13:05
Интересующийся
Отправить личное сообщение для potomuchto Посмотреть профиль Найти все сообщения от potomuchto
 
Регистрация: 10.11.2013
Сообщений: 12

Решил, что буду кодировать простым XOR, нашел функцию на жс, написал аналог на php, но возникла такая проблема. Закодированная строка содержит зарезервированные симовлы жс-а, и когда я делаю вот такое:
var str =  xor_str('`llh2''bYnYk[jahl&jm'^gjme'k`gol`j]Y\&h`h7h5*0+,).hgkl*0+,).', '8');


То соответственно получаю ошибку синтаксиса. Насколько я понимаю, проблемный символ - это ^ . Есть какая-то фича что бы эти символы не выполняли свои функции? Может писать код в куки, а потом брать в переменную из кук?

Последний раз редактировалось potomuchto, 29.11.2013 в 13:10.
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2013, 13:08
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от potomuchto
Может писать код в куки, а потом брать в переменную из кук?
Это та же строка, которую должен прочитать JS-скрипт...

Сообщение от potomuchto
Насколько я понимаю проблемный символ - это ^
Отнють!
var str =  xor_str('`llh2''bYnYk[jahl&jm\'^gjme\'k`gol`j]Y\&h`h7h5*0+,).hgkl*0+,).', '8');

Это не экранированый апостров внутри апострофов...
В твоем случае их аш два!
Ответить с цитированием
  #8 (permalink)  
Старый 29.11.2013, 13:36
Интересующийся
Отправить личное сообщение для potomuchto Посмотреть профиль Найти все сообщения от potomuchto
 
Регистрация: 10.11.2013
Сообщений: 12

ksa,
а если вмочить по слэшу после каждого символа, а потом в жс-е разбивать на пары, забирать слэш и декодировать?
Ответить с цитированием
  #9 (permalink)  
Старый 29.11.2013, 13:48
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,202

Сообщение от potomuchto
а если вмочить по слэшу после каждого символа
Синтаксической ошибки не будет.

Сообщение от potomuchto
а потом в жс-е разбивать на пары, забирать слэш и декодировать?
Видал что получится...

alert('123\'45\'6789\'0'.length);

Т.ч. "забирать" ничего не нужно. Т.к. слэшей, как символов, в той строке нет.

Последний раз редактировалось ksa, 29.11.2013 в 13:51.
Ответить с цитированием
  #10 (permalink)  
Старый 29.11.2013, 13:53
Интересующийся
Отправить личное сообщение для potomuchto Посмотреть профиль Найти все сообщения от potomuchto
 
Регистрация: 10.11.2013
Сообщений: 12

обрамил слэшами с помощью addslashes() и заработало, спасибо большое!

Последний раз редактировалось potomuchto, 29.11.2013 в 13:57.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Смещение полей valyan (X)HTML/CSS 8 29.09.2013 20:43
смещение блоков в ie8 ArmagedDance Internet Explorer 2 19.11.2011 19:12
смещение выбранной даты Ext.form.DateField risfek ExtJS 4 11.04.2011 06:36
Прокрутка и смещение псевдочеловек Общие вопросы Javascript 0 31.03.2011 23:59
Красивое смещение блока AlexMak Общие вопросы Javascript 7 27.12.2008 18:52