PHP функция filter_input () не работает с контроллером CI - PullRequest
0 голосов
/ 30 марта 2020

PHPs filter_input() функция не работает в контроллере CI. Однако это работает внутри представления. Код контроллера приведен ниже.

class member extends CI_Controller {

    public function __construct() {
        parent::__construct();

        $obj =& get_instance();
        $obj->load->helper('url');
        $this->load->library('session');

        $this->load->library('form_validation');

        $this->load->library('pagination');     

    }

    public function editMember() {
        $mem_id = filter_input(INPUT_GET, 'id', FILTER_SANITIZE_STRING);
        echo $mem_id;
    }
}

URL-адрес, используемый для вызова функции editMember, аналогичен приведенному ниже.

https://mypage.com/member/editMember?id=mem001

В выражении echo ничего не отображается.

Когда я пытаюсь получить входной параметр, используя $_GET['id'], он работает, и оператор echo показывает mem001, как в приведенном выше примере ссылки. Если я использую класс ввода CodeIgniter, как показано ниже, он будет работать.

$mem_id = $this->input->get('id');
echo $mem_id;

Не могли бы вы помочь, что идет не так и как это исправить? Спасибо.

Вот var_dump($_SERVER['QUERY_STRING']) результат.

string(9) "id=mem001"

1 Ответ

0 голосов
/ 30 марта 2020
public function editMember() {
if (isset($_GET["id"])) { 
if (!filter_input(INPUT_GET,'id', FILTER_SANITIZE_SPECIAL_CHARS) { 
    $mem_id = filter_input(INPUT_GET,'id', FILTER_SANITIZE_SPECIAL_CHARS);
    echo $mem_id;
} else { 
    $mem_id = filter_input(INPUT_GET,'id', FILTER_SANITIZE_SPECIAL_CHARS);
    echo $mem_id; 
} 
} 
}
...