新しいアカウントを作成し、各ユーザーのサインアップの詳細を暗号化されたものとしてメンバーシップデータベースに入力させようとしています。現時点では、実際のパスワードがデータベースに表示されています。どうしてこれなの?フォーム検証ライブラリを使用していて、パスワードフィールドにmd5ルールを含めましたが、違いはないようです。
コントローラ:
function register()
{
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->form_validation->set_rules('username', 'Username', 'required|callback_usernameTaken|min_length[5]|max_length[12]|trim');
$this->form_validation->set_rules('password', 'Password', 'required|md5|trim');
$username = $this->input->post('username');
$password = $this->input->post('password');
if ( $this->form_validation->run()&& !$this->membership->usernameTaken($username)){
$this->membership->newUser($username, $password);
$this->session->set_userdata('status', 'OK');
$this->session->set_userdata('username', $username);
redirect('home');
}
else
{
$this->session->set_userdata('status', 'NOT_OK');
$this->load->view('shared/header');
$this->load->view('account/signuptitle');
$this->load->view('account/signupview');
$this->load->view('shared/footer');
}
}
助けてくれてありがとう
モデル:
function newUser($username, $password)
{
$newMember = array ('username' => $username,
'password' => $password);
$insert = $this->db->insert('membership', $newMember);
}
function usernameTaken($username)
{
$this->db->select('*')->from ('membership')->where('username', $username);
$query = $this->db->get();
if ($query->num_rows > 0)
{
echo "<p>";
echo 'username taken';
echo "</p>";
return true;
}
else{
return false;
}
}