Поскольку это было слишком долго для комментария, я представляю вам мой квази-ответ, который поможет вам отладить.
echo 'hello world <br><pre>';
print_r($_POST);
if (isset($_POST['register-submit'])) {
$this->load->model('Registermodel');
$this->load->library('form_validation');
$this->form_validation->set_rules('register-username', 'Username', 'required');
$this->form_validation->set_rules('register-password', 'Password', 'required|min_length[6]');
$this->form_validation->set_rules('register-password-repeat', 'confirm passphrase', 'required|min_length[6]|matches[register-password]');
$this->form_validation->set_rules('register-pin', 'pin', 'required|regex_match[/^[0-9]{6}$/]');
//If form validation was successful
if ($this->form_validation->run() == TRUE) {
echo 'successfully registered!';
//Add user to database
$data = array(
'ci_useruniqid' => $_POST['register-uniqid'],
'ci_userdate' => $_POST['register-date'],
'ci_useruid' => $_POST['register-username'],
'ci_userpwd' => password_hash($_POST['register-password'], PASSWORD_DEFAULT),
'ci_usermnemonic' => $_POST['register-mnemonic'],
'ci_usercurrentaddress' => $_POST['register-address'],
'ci_useraccount' => $_POST['register-account'],
'ci_useraccountbalance' => $_POST['register-account-balance'],
'ci_userpin' => $_POST['register-pin'],
'ci_userstatus' => $_POST['register-status'],
'ci_usertype' => $_POST['register-type'],
'ci_userinfo' => $_POST['register-info'],
'ci_userpgp' => $_POST['register-pgp'],
'ci_usercurrency' => $_POST['register-currency']
);
$this->RegisterModel->adduser($data);
echo 'success';
//redirect("AuthController/loginview", "refresh");
} else {
echo validation_errors();
}
} else {
echo 'register-submit... well... does not exist';
}
Обратите внимание, используйте $this->input->post('somename');
для всех ваших $_POST
вещей. например предположим, что register-uniqid
не существует (проверка формы не поймает его, потому что это не требуется), вы получите неопределенную ошибку индекса; таким образом, вам придется сделать isset($_POST['register-uniqid']) ? $_POST['register-uniqid'] : null
, тогда как $this->input->post()
сделает эту логику за вас.
Теперь, даже если вы сделаете это исправление, если register-uniqid
является абсолютно критическим (не может быть нулевым), убедитесь, что проверка формы покрывает его обязательным. Даже если у вас есть некоторые скрытые поля, это не означает, что пользователь не может удалить их, если он хочет, и опубликовать нулевое значение в этом столбце БД. Я бы предложил полностью скрыть скрытые поля и кодировать любой не связанный с пользователем вход в этот контроллер или модель.