CodeIgnitor urlencode / decode

контроллер

function delete_payment($payment_id) { $this->sale_lib->delete_payment($payment_id); $this->_reload(); } 

Посмотреть

  <?php echo anchor("sales/delete_payment/$payment_id",'['.$this->lang->line('common_delete').']');?> 

$ Payment_id можно использовать как «Подарочная карта: 1» или «Подарочная карта: 12345983984334»,

Когда это подарочная карта: 1 url автоматически декодируется и функция удаления работает, когда она является более длинной строкой, например, подарочной картой: 12345983984334 «URL НЕ декодируется.

URL-адреса:

Http: //localhost/index.php/sales/delete_payment/Gift%20Card: 1

Http: //localhost/index.php/sales/delete_payment/Gift%20Card: 12345983984334

Первый работает, второй – нет

Solutions Collecting From Web of "CodeIgnitor urlencode / decode"

Фактически, я просто попытался воспроизвести вашу ситуацию на своей локальной машине (WAMP в Windows 7), и вы правы. Я пробовал все основные браузеры (FF4, IE9, Chrome) и не видел различий.

Хотя это на самом деле не отвечает на ваш вопрос, вы всегда можете прибегнуть к обходному пути, подобному этому с помощью php function rawurldecode :

 function delete_payment($payment_id) { $decoded_id = rawurldecode($payment_id); $this->sale_lib->delete_payment($decoded_id); $this->_reload(); } 

Таким образом, у вас будет ваш «идентификатор» в форме « Gift Card:123456789 (я пробовал с разными длинами и работал), готовый для вашей модели.

используйте% 3A вместо: Это закодированный «:»

… следующее из моего комментария …

Если бы вы продолжили путь использования строки URI для выполнения удаления, то почему бы просто не указать идентификационный номер в качестве другого сегмента URI? – Удаляет : – Удаляет проблему кодирования URI!

Предполагая, что вы уже используете какой-либо URI-повторный набор или URI для сопоставления приложений, тогда это должно быть легко реализовать поверх того, что у вас уже есть. Кроме того, он должен упростить способ получения и использования этого значения и, возможно, обработать любые ошибки!

Мой подход к программированию и разработке приложений:
– «Если вы найдете что-то трудное, тогда вы делаете это неправильно!»

Извините, если это не поможет.

fyi – Я поддержал ответ @ ankur.singh

Изменить: нашел это здесь, в StackOverflow, который может быть полезен!