Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> допустимые символы в base64 
V
    Опции темы
bars80080
Дата 28.2.2008, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



не знаю где задать этот вопрос /гугл чегой-то не помог/ 

base64_encode()

в строке от неё, какие символы встречаются?

[A-z0-9=] ?
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 12:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



странно. не проверял, но неужели по адресу en.wikipedia.com/base64 не написано?

а зачем вообще возник такой вопрос? Мне ни разу в жизни не прихходилось задумываться.
PM MAIL   Вверх
dm9
Дата 28.2.2008, 12:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Дмитрий Копытин
****


Профиль
Группа: Vingrad developer
Сообщений: 3876
Регистрация: 22.7.2002
Где: Москва

Репутация: 2
Всего: 137



Кажется, ещё + и /.
Всего должно 65 символов получится: 64 + знак "равно".
http://ru2.php.net/base64_encode (первый комментарий).

PM MAIL ICQ   Вверх
bars80080
Дата 28.2.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



по принципу запрета всего, что неразрешено

строчки base64 часто летают в урл, или просто передаются в определённых случаях

в моём случае пришлось подправить один htaccess, чтобы он пропускал base64 комбинации, вот и разрешил [A-z0-9=], а вдруг там ещё символы используются какие?

сейчас читаю http://en.wikipedia.org/wiki/Base64 но что-то пока найти не могу
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



странно.
мне всегда казалось, что в урлах летают строчки urlencode, а не Base64
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата
http://ru2.php.net/base64_encode 

интересно, во втором посте таблица с символами, но составлена с ошибкой (S)

если посчитать 26 (английских буквы) *2 = 52 + 10 (цифр) = 62, нужно ещё два символа = и наверно +

никогда не задумывался, видел на некоторых сайтах,
а вообще допустимо ли использовать base64 строчки в качестве url ?
site.ru/base64_combinacia

или хотя бы site.ru?page.php?par=base64_combinacia

Добавлено через 50 секунд
видел-видел, и вроде даже на уважаемых сайтах
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



а почему может быть нельзя?
откуда такой вопрос появился? 
кто мешает передавать в урле любые данные, закодированные хоть base64, хоть md5?

другое дело, что я не вижу в Base64 смысла, поскольку urlencode делает именно то, что надо, и не нужно потом раскодировать
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



да понятное дело, если бы я сам всё это создавал такой хернёй не страдал бы, 
но по наследству передаются такие шедевры, что приходится всячески изголяться

имею возможность передать всего один параметр после ?par=string, а данных много. только get

но если в base64 используется /, то в качестве урл его не засунешь
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



осмелюсь повторить в третий раз.
для передачи данных через адресную строку сушествует специальная кодировка, реализованная в функции rawurlencode
PM MAIL   Вверх
bars80080
Дата 28.2.2008, 13:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



потому, что:
чтобы засунуть несколько параметров в один, их перед этим нужно закодировать некой функцией (своей или стандартной, не важно) получая на выходе строчку (без символов & и /), потом да, засовываем в urlencode, передаём, принимаем и парсим

но зачем эти сложности, если можно изначально кодирнуть стандартной base64 и засунуть без лишних вопросов в url, а на выходе так же просто base64_decode

вот поэтому я и спрашиваю, из каких символов состоит строка base64

если она использует & или /, то понятное дело будем преобразовывать в ручную
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



но зачем эти сложности, если можно изначально кодирнуть стандартной urlencode и засунуть без лишних вопросов в url, а на выходе вообще ничего не будет нужно

PM MAIL   Вверх
GeneralElectric
Дата 28.2.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



я понять не могу. есть функция, специально преднезначенная для кодирования передаваемой через урл информации. в которой гарантированно нет ничего лишнего. но нет - мы почему-то берем другую и подрываемся искать - есть ли в ней неправильные символы или нет.

PM MAIL   Вверх
bars80080
Дата 28.2.2008, 14:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



Цитата
имею возможность передать всего один параметр после ?par=string, а данных много. только get

вот как я смогу запихнуть в значение string несколько переменных без дополнительного кодирования?
PM MAIL WWW   Вверх
GeneralElectric
Дата 28.2.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 797
Регистрация: 11.1.2008

Репутация: 13
Всего: 16



Не понял. А как тебе base64 поможет в запихивании нескольких переменных в стринг?!
PM MAIL   Вверх
mishaSL
Дата 28.2.2008, 14:56 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 19
Всего: 54



bars80080, предлагаю вам хорошенько читать комментарии в документации. Там дано несколько примеров безопасного кодирования base64 для передачи в url:
Код

function urlsafe_b64encode($string) {
    $data = base64_encode($string);
    $data = str_replace(array('+','/','='),array('-','_',''),$data);
    return $data;
}

function urlsafe_b64decode($string) {
    $data = str_replace(array('-','_'),array('+','/'),$string);
    $mod4 = strlen($data) % 4;
    if ($mod4) {
        $data .= substr('====', $mod4);
    }
    return base64_decode($data);
}

http://ru2.php.net/manual/ru/function.base...ncode.php#63543



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
Закрытая темаСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0845 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.