2
私はCodeIgniterを使い慣れていません。ログインページを作成しようとしています。私は既にデータベースを使って登録ページを作成していますが、仕事。Codeigniterのログインページは機能しません
ログインボタンをクリックすると、ページが更新されます。私は多くの人を殺そうとしました( 'sss');コントローラーで何が間違っているのかを把握するために、「sss」は画面に表示されませんでした。ここに私のコードです。私が間違っていることを教えてもらえますか?
これは私のコントローラである:
public function login() {
$this->load->view('navbar');
$this->load->view('header');
$this->load->view('login');
$this->load->view('footer');
$password = $this->input->post('password');
$email = $this->input->post('email');
$result = $this->signup_model->login($email, $password);
if (isset($_POST['login'])) {
if ($this->form_validation->run() == FALSE) {
$this->session->set_flashdata('message', '<div class="alertmsg">Something is wrong!</div>');
redirect('users');
} else
if ($result) {
$sess_array = array();
foreach ($result as $row) {
$sess_array = array('id' => $row->id, 'email' => $row->email);
$this->session->set_userdata('logged_in', $sess_array);
}
return TRUE;
} else {
$this->form_validation->set_message('login', 'Invalid email or password');
return false;
}
}
}
ビュー:
<div class="loginContainer">
<div class="loginWrapper">
<?php echo validation_errors(); ?>
<?php echo form_open('users/login'); ?>
<label for='email'>Email</label><div class='form_error'><?= form_error('email')?></div>
<input class='form-control1' name='email' placeholder='Email' type='text' value='<?php echo set_value('email'); ?> ' />
<span class='text-danger'><?php echo form_error('email'); ?> </span>
<label for='password'>Password</label><div class='form-error'><?= form_error('password') ?> </div>
<input class='form-control1' name='password' placeholder='Password' type='password' />
<span class='text-danger'><?php echo form_error('password'); ?></span>
<input type="submit" style='margin-left: 40%; margin-right: 40%; margin-top: 9%; text-align: center; width: 20%; ' value="Login"/>
</div>
モデル:
public function login($email, $password) {
$this->db->select('id, email, password');
$this->db->from('register');
$this->db->where('email', $email);
$this->db->where('password', MD5($password));
$this->db->limit(1);
$query = $this->db->get();
if ($query->num_rows() == 1) {
return $query->result();
} else {
return false;
}
}
'login'という名前の要素はありません。私はcodeigniterユーザではありませんが、 'md5'よりも優れたハッシングメソッドを持っていないか、PHP関数http://php.net/manual/en/function.password-hashを使用できませんでした。 php。 – chris85
md5それはちょうど練習のためのものです、私はこの例をオンラインで見つけて、それが私のために働くように修正しました。私は現在、CMSを使用していないが、私はすぐになるだろう。今、私はちょうどローカルホストでテストしています –
注:あなたはコントローラで行う最後のものとしてビューを読み込む必要があります。 – PaulD