Есть ли способ кодировать URL-адрес CodeIgniter? - PullRequest
0 голосов
/ 10 июня 2019

Таким образом, в настоящее время моя система отправит URL-адрес, подобный этому http://127.0.0.1:8000/search?keyword=34, после того как я отправлю форму.

Моя цель - закодировать часть URL-адреса в keyword=34.Таким образом, это стало примерно таким: http://127.0.0.1:8000/search?1safsd21 (или каким-либо другим словом, которое было закодировано).

Я провел небольшое исследование по этой проблеме.До сих пор он говорит мне, используя urlencode или rawurlencode, но проблема в том, что я не знаю, где его разместить или как его использовать.

Форма

<form action="http://127.0.0.1:8000/search" autocomplete="off" method="get" role="form" accept-charset="utf-8">
    <input type="text" name="keyword" value="" placeholder="Search...">
    <input type="submit" />
</form>

Ответы [ 2 ]

1 голос
/ 10 июня 2019

На самом деле это не проблема PHP, потому что отправка форм обрабатывается браузером. PHP только интерпретирует запрос и обрабатывает его. Вы можете закодировать данные вашей формы с помощью хака, например:

<form id="realformdata" action="http://127.0.0.1:8000/search" autocomplete="off" 
        method="get" role="form" accept-charset="utf-8" 
        onsubmit="sendEncodedForm(); return false;" >
    <input type="text" name="keyword" value="" placeholder="Search...">
    <input type="submit" />
</form>

<script>
var sendEncodedForm = function(){
   var formdata = $("#realformdata").serialize();
   var encoded = base64_encode(formdata);
   document.location.href = $("#realformdata").attr("action") + "?" + encoded;
}
</script>

Примечание: base64_encode - это просто заполнитель для вашего метода кодирования. Не реально существующий метод.

А на стороне сервера (PHP):

<?php 

$query = base64_decode($_SERVER["QUERY_STRING"]);
parse_str($query);
// check $query for decoded variables
0 голосов
/ 10 июня 2019

Я считаю, вы спрашиваете о шифровании.Мы не можем зашифровать всю keyword=34 часть, потому что нам нужно key name, чтобы получить параметры в контроллере.

Однако вы можете зашифровать значение параметра.

Вы можете использовать любой из алгоритмов шифрования, например mcrypt.Или codeigniter, встроенный в библиотеку шифрования , как описано здесь .

Когда вы закончите с шифрованием, URL будет выглядеть следующим образом.http://127.0.0.1:8000/search?keyword=ENCRYPTED_TEXT

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...