У меня есть проблема для шифрования / расшифровки электронной почты, я просто отправлю ссылку по почте, как это
http://www.domain.com/mycontroller/myfunction/McvBsce........etc
Последний сегмент на самом деле является зашифрованным идентификатором электронной почты, я расшифровываю это письмо и обновляю stus в своем db, когда пользователь нажимает на эту ссылку. Все сделано правильно.
Проблема: когда URL-адрес подобен этому
http://www.domain.com/mycontroller/myfunction/McvB/sce
Он показывает ошибку 404, потому что косая черта включена в сгенерированный ключ шифрования. Как я могу игнорировать косую черту, когда он генерирует шифрование, это моя основная проблема, остальные работают нормально.
Вам нужно использовать этот класс, включить этот файл в папку applicatio/libraries
, у меня была такая же проблема:
class MY_Encrypt extends CI_Encrypt { /** * Encodes a string. * * @param string $string The string to encrypt. * @param string $key[optional] The key to encrypt with. * @param bool $url_safe[optional] Specifies whether or not the * returned string should be url-safe. * @return string */ function encode($string, $key="", $url_safe=TRUE) { $ret = parent::encode($string, $key); if ($url_safe) { $ret = strtr( $ret, array( '+' => '.', '=' => '-', '/' => '~' ) ); } return $ret; } /** * Decodes the given string. * * @access public * @param string $string The encrypted string to decrypt. * @param string $key[optional] The key to use for decryption. * @return string */ function decode($string, $key="") { $string = strtr( $string, array( '.' => '+', '-' => '=', '~' => '/' ) ); return parent::decode($string, $key); } }
Кредит отправляется на форум codeigniter, откуда я получил это.