Codeigniter. Проверить данные PUT - PullRequest
4 голосов
/ 12 августа 2011

Я разрабатываю API с использованием Phils RestServer, и мне нужно проверить входящие данные PUT. Работает нормально с входящие данные POST, но не PUT.

Как я могу проверить данные, которые отправляются через PUT?

Благодарен за все комментарии!

Ответы [ 4 ]

5 голосов
/ 07 сентября 2011

Неа!Не работаетЧто вы МОЖЕТЕ сделать, так это взломать его, поэтому:

$_POST['foo'] = $this->put('foo');

Разрешение классу проверки формы CodeIgniter проверять вещи, отличные от POST, находится в списке задач (именно по этой причине).

1 голос
/ 16 мая 2016

Вот мое решение. Я использую функцию set_data () из библиотеки проверки формы:

$set_data = array(
        'username'  => $this->put('username'),
        'email'     => $this->put('email'),
        'zipcode'   => $this->put('zipcode'),
        'telephone' => $this->put('telephone'),
        'password'  => $this->put('password'),
    );

    $this->form_validation->set_data($set_data);
    $this->form_validation->set_rules($this->Register_model->rules_register);
0 голосов
/ 12 августа 2016

Работает нормально, используя set_data ().Скажем, параметры 'MRP' и 'IsActive' отправляются запросом пут.

$this->form_validation->set_data($this->put());

$this->form_validation->set_rules('MRP', 'MRP', 'numeric|greater_than[0]|less_than[10000]', array());
$this->form_validation->set_rules('IsActive', 'Is Active', 'required|alpha|min_length[2]|max_length[2]', array());

if ($this->form_validation->run() === TRUE) {
    // Do Stuff..
}
0 голосов
/ 28 июля 2015

Я понял, что после моего первого ответа все зависит от того, какую версию CI вы используете, если вы используете последнюю версию 3.0.0 или новее, то вы можете сделать 1 небольшую корректировку в файле проверки формы.

Файл Form_validation.php в верхней части метода set_rules () в строке 176

ОТ:

if ($this->CI->input->method() !== 'post' && empty($this->validation_data)) {
    return $this;
}

TO:

if ($this->CI->input->method() !== 'post' && $this->CI->input->method() !== 'put' && empty($this->validation_data)) {
    return $this;
}

Дайте мне знать, если этопомог.

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