Я создаю токен, который я передаю как часть URL на странице.Я кодирую строку, используя rawurlencode (), и отправляю ее как токен, однако обнаруживаю, что при декодировании полученного токена (переданного в качестве параметра URL) я получаю немного другую строку.
Мой URL выглядит следующим образом: /path/to/file.html?token=abcd123
Вот фрагмент кода, который я использую.Я делаю что-нибудь, что явно не так?В противном случае, есть ли лучший способ создать (зашифрованные) токены и передать их в URL?
<?php
//send
$raw = "some secret string";
$token = rawurlencode($raw);
//recieve
$data = rawurldecode($token);
?>
[Редактировать]
Я удалил энк(расшифровка) функциональность шифрования - они не были причиной проблемы - и были красной сельдью.Я специально сузил проблему до того, что rawurlencode / decode не является симметричным в том, как они работают.
Строка rawurlencoded при декодировании дает другую строку (аналогичная строка, но с отсутствующими частями).Конечно, не может быть ошибки в чем-то фундаментальном для URL-адресов, поэтому я должен делать что-то не так.Проблема в том, что я не могу его заметить, и пока что, похоже, никто больше не может его заметить ...
[Дополнительная информация]
IЯ использую веб-фреймворк Symfony (v1.3.8), который, вероятно, работает с запросами, кодируя и декодируя вещи за кулисами.Я попытаюсь получить параметр токена непосредственно из переменной $ _POST и посмотреть, является ли Symfony виновником всего этого.