代码点火器3,无法登录或注册

时间:2016-09-27 17:31:12

标签: php twitter-bootstrap codeigniter-3

登录提供错误

  

错误的电子邮件ID或密码!

即使给出了正确的凭证 即使两个密码字段都匹配,注册也会出错。

  

“密码”字段与“确认密码”字段不匹配。

这是注册控制器代码。

<?php
class signup extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form','url'));
        $this->load->library(array('session', 'form_validation'));
        $this->load->database();
        $this->load->model('user_model');
    }

    function index()
    {
        // set form validation rules
        $this->form_validation->set_rules('fname', 'First Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
        $this->form_validation->set_rules('lname', 'Last Name', 'trim|required|alpha|min_length[3]|max_length[30]|xss_clean');
        $this->form_validation->set_rules('email', 'Email ID', 'trim|required|valid_email|is_unique[user.email]');
        $this->form_validation->set_rules('password', 'Password', 'trim|required|matches[cpassword]|md5');
        $this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim|required');

        // submit
        if ($this->form_validation->run() == FALSE)
        {
            // fails
        $this->load->view('login/inc/header_view');
        $this->load->view('signup_view');
        $this->load->view('login/inc/footer_view');

        }
        else
        {
            //insert user details into db
            $data = array(
                'fname' => $this->input->post('fname'),
                'lname' => $this->input->post('lname'),
                'email' => $this->input->post('email'),
                'password' => $this->input->post('password')
            );

            if ($this->user_model->insert_user($data))
            {
                $this->session->set_flashdata('msg','<div class="alert alert-success text-center">You are Successfully Registered! Please login to access your Profile!</div>');
                redirect('login/index');
            }
            else
            {
                // error
                $this->session->set_flashdata('msg','<div class="alert alert-danger text-center">Oops! Error.  Please try again later!!!</div>');
                redirect('signup/index');
            }
        }
    }
}
?>

这是登录控制器代码

<?php

class login extends CI_Controller
{
    public function __construct()
    {
        parent::__construct();
        $this->load->helper(array('form','url','html'));
        $this->load->library(array('session', 'form_validation'));
        $this->load->database();
        $this->load->model('user_model');
    }

    function index()
    {
        // get form input
        $email = $this->input->post("email");
        $password = $this->input->post("password");

        // form validation
        $this->form_validation->set_rules("email", "Email-ID", "trim|required|xss_clean");
        $this->form_validation->set_rules("password", "Password", "trim|required|xss_clean");

        if ($this->form_validation->run() == FALSE)
        {
            // validation fail
        $this->load->view('login/inc/header_view');
        $this->load->view('login/login_view');
        $this->load->view('login/inc/footer_view');
        }
        else
        {
            // check for user credentials
            $uresult = $this->user_model->get_user($email, $password);
            if (count($uresult) > 0)
            {
                // set session
                $sess_data = array('login' => TRUE, 'uname' => $uresult[0]->fname, 'uid' => $uresult[0]->id);
                $this->session->set_userdata($sess_data);
                redirect("admin/index");
            }
            else
            {
                $this->session->set_flashdata('msg', '<div class="alert alert-danger text-center">Wrong Email-ID or Password!</div>');
                redirect('login/index');
            }
        }
    }
}
?>

这是注册视图

</br>
</br>
</br>

<div class="container">
    <div class="row">
        <div class="col-md-4 col-md-offset-4 well">
            <?php $attributes = array("name" => "signupform");
            echo form_open("signup/index", $attributes);?>
            <legend>Signup</legend>

            <div class="form-group">
                <label for="name">First Name</label>
                <input class="form-control" name="fname" placeholder="Your First Name" type="text" value="<?php echo set_value('fname'); ?>" />
                <span class="text-danger"><?php echo form_error('fname'); ?></span>
            </div>          

            <div class="form-group">
                <label for="name">Last Name</label>
                <input class="form-control" name="lname" placeholder="Last Name" type="text" value="<?php echo set_value('lname'); ?>" />
                <span class="text-danger"><?php echo form_error('lname'); ?></span>
            </div>

            <div class="form-group">
                <label for="email">Email ID</label>
                <input class="form-control" name="email" placeholder="Email-ID" type="text" value="<?php echo set_value('email'); ?>" />
                <span class="text-danger"><?php echo form_error('email'); ?></span>
            </div>

            <div class="form-group">
                <label for="subject">Password</label>
                <input class="form-control" name="password" placeholder="Password" type="password" />
                <span class="text-danger"><?php echo form_error('password'); ?></span>
            </div>

            <div class="form-group">
                <label for="subject">Confirm Password</label>
                <input class="form-control" name="cpassword" placeholder="Confirm Password" type="password" />
                <span class="text-danger"><?php echo form_error('cpassword'); ?></span>
            </div>

            <div class="form-group">

                <p> <button name="submit" type="submit" class="btn btn-sm btn-primary btn-block btn-signin">Sign Up</button>  </p>
                <p>Already Got Account?<a href="<?php echo base_url(); ?>index.php/login" class="forgot-password">Sign In</a> <a href="#" class="forgot-password pull-right" type="reset">Cancel</a> </p>



            </div>

            <?php echo form_close(); ?>
            <?php echo $this->session->flashdata('msg'); ?>



        </div>

    </div>
    <div class="row">

    </div>
</div>

这是登录视图

<div class="container">
    <div class="card card-container">
        <!-- <img class="profile-img-card" src="//lh3.googleusercontent.com/-6V8xOA6M7BA/AAAAAAAAAAI/AAAAAAAAAAA/rzlHcD0KYwo/photo.jpg?sz=120" alt="" /> -->
        <img id="profile-img" class="profile-img-card" src="//ssl.gstatic.com/accounts/ui/avatar_2x.png" />
        <p id="profile-name" class="profile-name-card"></p>
        <?php $attributes = array("name" => "loginform");
        echo form_open("login/index", $attributes);?>
        <form class="form-signin" method="post" value="?">
            <div class="form-group">
            <span id="reauth-email" class="reauth-email"></span>
            <input class="form-control" name="email" placeholder="Enter Email-ID" type="text" value="<?php echo set_value('email'); ?>" />
            <span class="text-danger"><?php echo form_error('email'); ?></span>
            </div>

            <div class="form-group">

            <input class="form-control" name="password" placeholder="Password" type="password" value="<?php echo set_value('password'); ?>" />
            <span class="text-danger"><?php echo form_error('password'); ?></span>
            </div>

            <div id="remember" class="checkbox">
                <label>
                    <input type="checkbox" value="remember-me"/> Remember me
                </label>
            </div>

            <div class="form-group">
            <p> <button name="submit" type="submit" class="btn btn-sm btn-primary btn-block btn-signin">Sign In</button>  </p>
            <p> <a href="#" class="forgot-password">Forgot Password</a> <a href="#" class="forgot-password pull-right" type="reset">Cancel</a> </p>
            </div>
            <?php echo form_close(); ?>
           <?php echo $this->session->flashdata('msg'); ?>
          <p class="text-muted text-center"><small>New System User?</small></p>

            <a href="<?php echo base_url(); ?>index.php/signup"><button class="btn btn-lg btn-primary btn-block btn-signin">Create Account</button></a>
        </form><!-- /form -->

    </div><!-- /card-container -->
</div><!-- /container -->

这个模型

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class user_model extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }

    function get_user($email, $pwd)
    {
        $this->db->where('email', $email);
        $this->db->where('password', md5($pwd));
        $query = $this->db->get('user');
        return $query->result();
    }

    // get user
    function get_user_by_id($id)
    {
        $this->db->where('id', $id);
        $query = $this->db->get('user');
        return $query->result();
    }

    // insert
    function insert_user($data)
    {
        return $this->db->insert('user', $data);
    }
}?>

请咨询,我在Windows 10中运行.XAMPP

我从中获取了代码 http://www.kodingmadesimple.com/2016/06/codeigniter-login-and-registration-tutorial-source-code.html

2 个答案:

答案 0 :(得分:0)

更改密码匹配的位置,然后将md5准备添加到cpassword

$this->form_validation->set_rules('password', 'Password', 'trim|required|md5');
$this->form_validation->set_rules('cpassword', 'Confirm Password', 'trim|required|md5|matches[password]');

答案 1 :(得分:0)

创建帐户时,将普通密码与md5(密码)进行比较

$this->form_validation->set_rules('password', 'Password', 'trim|required|matches[cpassword]');

因此,你可以看到我们抛弃了md5的比较。 我们将其添加到向数据库发送数据

'password' => md5($this->input->post('password'))

这将有助于解决这两个问题。