Codeigniter запрещены символы обходной путь

Я уже проверил довольно много других ответов, но безрезультатно.

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

Проблема возникает в части удаления комментариев. Он разработал базу данных таким образом, чтобы все комментарии просто вводились в одну ячейку, разделенную символами канала. Таким образом, при удалении комментария, весь комментарий должен быть помещен в URL как параметр который затем передается модели и удаляется из базы данных.

Я знаю, что это плохо, но я не могу перекодировать всю функциональность.

Теперь, когда пользователь вводит комментарий, такой как «Что случилось?», URL-адрес комментария для удаления выдает «Codeigniter: отправленный вами URI содержит запрещенные символы». ошибка.

Я попытался преобразовать кавычки в символьные объекты HTML, но они снова содержат запрещенные символы.

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

Спасибо.

0

Решение

Я не уверен, если htmlentities поможет.
Вы первый раз позвонили urlencode только по параметрам?

<?php

$query_string = 'foo=' . urlencode("What's Up?");
echo '<a href="mycgi?' . htmlentities($query_string) . '">';

?>

<a href="mycgi?foo=What%27s+Up%3F">

Также проверьте, нужно ли вам добавлять escape-символы к любому из них, если база данных обрабатывает их как специальные символы.

например Если% рассматривается как специальный символ, то вам может потребоваться добавить \ перед этим.

2

Другие решения

Откройте ваш конфигурационный файл и найдите этот параметр:

$ config [‘mitted_uri_chars ‘] =’ a-z 0-9 ~%.: _ () @&знак равно

Вы можете изменить его по своему требованию или оставить пустым.
Прочитайте раздел комментариев в файле конфигурации.

Это говорит о том, что: Leave blank to allow all characters -- but only if you are insane.

3