kmllev Ответов: 0

Как перенаправить и установить URL-адрес на домашнюю страницу?


У меня есть это:

getlogin.php
<?php

class getlogin extends CI_Model {
    
    public function login($username, $password)
    {
        $sql = "SELECT * FROM tblaccounts WHERE user_name='$username'";
        
        $query = $this->db->query($sql);
        $count = $query->num_rows();
        
        if ($count == 1)
        {
            $row = $query->row();
            $hash = $row->user_password;
            $firstname = $query->result_array();
           
            if (password_verify($password, $hash)) {
                //If valid username/password combination
                return $firstname[0]['user_fname'];
            }

            else
            {
                return null;
            }
                    
            
        }
        
        else {
            return null;    
        }
    }
    
    public function register($data) {
        //Check if username is already in use
        $condition = "user_name ='{$data['user_name']}'";
        $this->db->select('*');
        $this->db->from('tblaccounts');
        $this->db->where($condition);
        $this->db->limit(1);
        $query = $this->db->get();
        
        if ($query->num_rows() == 0)
        {
            //Check if email address is already in use
            $condition2 = "user_email = '{$data['user_email']}'";
            $this->db->select('*');
            $this->db->from('tblaccounts');
            $this->db->where($condition2);
            $this->db->limit(1);
            $query2 = $this->db->get();
            
            //Check if passwords match
            if ($data['user_password'] != $data['confirmpass'])
            {
                return "mismatch";
            }
            
            //Check if email is already in use
            if ($query2->num_rows() == 0)
            {
                //encrypt: $data['user_password']
                $password = $data['user_password'];
                $hash = password_hash($password, PASSWORD_DEFAULT);
                $data['user_password'] = $hash;
                
                $this->db->set('user_name', $data['user_name']);
                $this->db->set('user_password', $data['user_password']);
                $this->db->set('user_email', $data['user_email']);
                $this->db->set('user_fname', $data['user_fname']);
                $this->db->set('user_lname', $data['user_lname']);
                $this->db->insert('tblaccounts');                    
                if ($this->db->affected_rows() > 0)
                {
                    return 'success';
                } 
            }
            
            else
            {
                return "email";
            }
        }
        
        else
        {
           return "user";
        }
    }
    
    public function checkforgotpassword($data)
    {
        $user_email;
        
        //Check if username is already in use
        $condition1 = "user_name ='{$data['user_name']}'";
        $this->db->select('*');
        $this->db->from('tblaccounts');
        $this->db->where($condition1);
        $this->db->limit(1);
        $query = $this->db->get();
        
        if ($query->num_rows() == 0)
        {
            return false;
        }
        
        //Check if username matches first name and last name
        $condition = "user_fname = '{$data['firstname']}' AND user_lname = '{$data['lastname']}'";
        $this->db->select('*');
        $this->db->from('tblaccounts');
        $this->db->where($condition);
        $this->db->limit(1);
        $query = $this->db->get();
        
        if ($query->num_rows() == 1)
        {
            $row = $query->first_row()->user_email;
            return $row;
        }
        else {
            return false;
        }
    }
}
?>


Контроллер:

authenticate.php
<?php

class authenticate extends CI_Controller {
    
    public function callForgotPassword()
    {
        $this->load->view('forgotpw_view');
    }
    
    public function callSignUp()
    {
        $this->load->view('signup_view');
    }
    
    public function checklogin()
    {
        $data = array(
        'user_name' => $this->input->post('username'),
        'user_password' => $this->input->post('password')
        );
        
        $this->load->model('getlogin');
        $result['name'] = $this->getlogin->login($data['user_name'], $data['user_password']);
        
        if ($result['name'] != null)
        {
            $this->load->view('welcome_view', $result);
        }
        else
        {
            $data = array ('error' => 'Invalid username and password combination.');
            $this->load->view('login_view', $data);
        }
    }
    
    public function checkforgotpassword()
    {
        $data = array(
            'user_name' => $this->input->post('username'),
            'firstname' => $this->input->post('firstname'),
            'lastname' => $this->input->post('lastname')
        );
        
        $this->load->model('getlogin');
        $result['res'] = $this->getlogin->checkforgotpassword($data);
        
        if ($result['res'] =! false)
        {
         //do something
        }
        
        else
        {       
            $data = array ('error' => 'The information you entered mismatched. Try again.');
            $this->load->view('forgotpw_view', $data);
        }
    }
    
    public function checkregister()
    {
        $data = array(
            'user_name' => $this->input->post('newusername'),
            'user_password' => $this->input->post('password'),
            'confirmpass' => $this->input->post('confirmpass'),
            'user_email' => $this->input->post('newemail'),
            'user_fname' => $this->input->post('newfname'),
            'user_lname' => $this->input->post('newlname')
        );
        
        $this->load->model('getlogin');
        $result['res'] = $this->getlogin->register($data);
        
        if ($result['res'] == 'success')
        {
            //echo "Registration successful!";
            $this->load->view('senttoemail');
        }
        else if ($result['res'] == 'user')
        {
            $data = array ('error' => 'Username is already in use. Please try again.');
            $this->load->view('signup_view', $data);
        }
        else if ($result['res'] == 'email')
        {   
            $data = array ('error' => 'E-mail address is already in use. Please try again.');
            $this->load->view('signup_view', $data);
        }
        else if ($result['res'] == 'mismatch')
        {
            $data = array ('error' => 'Passwords did not match. Please try again.');
            $this->load->view('signup_view', $data);
        }
        else
        {
    
        }
    }    
}
?>


Смотреть:
login_view.php
<!DOCTYPE html>
<html>
    <head>
        <script src="jquery-3.1.1.min.js"></script>
        <script src="<?php echo base_url(). "js/submit.js" ?>"></script>
        <title>Log In</title>
        
        <style>
            
            #container {
                background-color:           transparent;
                border:                     3px dotted #1B7F4C;
                border-radius:              30px 0px;
                box-shadow:                 5px 5px 10px #D3CBC6;
                
                font-family:                Segoe UI Light, sans-serif;
                font-size:                  15pt;
                
                margin-left:                auto;
                margin-right:               auto;
                margin-top:                 15%;
                padding:                    30px;
                width:                      200px;
                
                padding:                    30px;
            }
            
            .custom-text{
                display:                    inline-block;
                font-family:                Segoe UI Light, sans-serif;
                font-size:                  10pt;
                width:                      200px;
            }
            #container label {
                text-align:                 center;
            }
            
            .custom-submit {
                background-color:           #1B7F4C;
                border:                     0px;
                border-radius:              3px 3px;
                color:                      white;
                cursor:                     pointer;
                font-family:                Corbel;
                font-size:                  13pt;
                font-weight:                bold;
                margin-bottom:              10px;
                outline:                    none;
                padding:                    5px 40px;
                -webkit-transition:         all .3s linear;
                transition:                 all .3s linear;
                text-align:                 center;
            }
            
            .custom-submit:hover{
                box-shadow:                 1px 1px 5px grey;
            }
        </style>
    </head>
    <body>
        <?php echo validation_errors(); ?>
        <?php echo form_open('authenticate/checklogin', array('id' => 'form')); ?>
            <div id="container">
                
                <label>Username: </label> 
                <br/>
                <input type="text" name="username" maxlength="20" class="custom-text" required="" />                
                <br/>
                <label>Password: </label> 
                <br>
                <input type="password" name="password" maxlength="50" class="custom-text" required="" />
                <br/>
                <span style="color: red; font-weight: bold; font-size: 10pt"><?php if (isset($error)){echo $error;}?></span>
                <br/>
                <div style="text-align: center">
                    <input type="submit" value="Log In" class="custom-submit" id="submitform"/>
                
                <a href="<?php echo site_url('authenticate/callSignUp') ?>"><input type="button" class="custom-submit" value="Sign Up"></a>
                <br/>
                <a href="<?php echo site_url('authenticate/callForgotPassword') ?>"><span style="font-size: 10pt; ">Forgot your password?</span></a>
                </div>
               
                
            </div>
    </form>
        
    
    </body>
</html>


и
submit.js
/* 
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


$(document).ready(function(){
    $("#submitform").click(function(){
        alert("Got in");
        $("#form").submit();  // jQuey's submit function applied on form.
    });
});


В основном результат, который я ожидаю, заключается в том, что когда вход в систему успешен, он перенаправляется на "домашнюю страницу", и URL-адрес не должен включать "аутентификацию/контрольный список", поскольку я считаю, что это было бы небезопасно. Я не уверен, как я могу сделать это через ajax? Я думаю, что мне трудно понять, что это связано с базой данных; я должен выполнять запросы, чтобы проверить данные. (Я должен сделать это и для регистрационной формы.)

Что я уже пробовал:

Искал несколько примеров, но они делают только то, что не обновляют. Что мне нужно, так это то, что страница должна перенаправляться на другую

0 Ответов