Как добавить функцию в один из массивов в PHP - PullRequest
2 голосов
/ 28 мая 2011

У меня есть массив $ field.

Примечание. Кто-то добавляет в тег codeigniter, но сам вопрос касается PHP.

Обычно сохраняйте содержимое таким способом.

// SAVE FORM CONTENTS
foreach ($fields_to_show as $key=>$value) {
   $this->CI->preference->set_item($key,$this->CI->input->post($key));
}

А это метод set_item ()

    function set_item($name, $value)
    {
        if (is_null($name)) {
           return false;
        }

        $this->preferenceCache[$name] = $value;

        if (is_array($value)) {
               $value = $this->object_keyword . serialize($value);
        }

        $this->db->where('name', $name);
        return $this->db->update(PREFERENCES, array('value'=>$value)); 
}

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

Метод encode_password () работает нормально (я использую его в другом классе), но когда я попробовал следующее, он не кодирует 'ga_password'

// set ga_password
if ($this->CI->input->post('ga_password') != '') {
   // Load userlib language
   $this->CI->load->module_library('auth','userlib');
   $fields_to_show['ga_password'] =   
       $this->CI->userlib->encode_password($this->CI->input->post('ga_password'));
}

// SAVE FORM CONTENTS
foreach ($fields_to_show as $key=>$value) {
   $this->CI->preference->set_item($key,$this->CI->input->post($key));
}

1 Ответ

0 голосов
/ 29 мая 2011

поэтому вы используете метод, который возвращает пароль в качестве ввода для вашего метода кодирования.

Итак, если метод кодирования использует проход по ссылке для кодирования ввода, я думаю, вы получите ошибку, если вместо этого он предназначен для возврата закодированного значения, тогда вам нужно сделать что-то более похожее на это:

$encoded_password = $this->CI->userlib->encode_password($this->CI->input->post('ga_password'));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...