Как перенаправить и установить 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? Я думаю, что мне трудно понять, что это связано с базой данных; я должен выполнять запросы, чтобы проверить данные. (Я должен сделать это и для регистрационной формы.)
Что я уже пробовал:
Искал несколько примеров, но они делают только то, что не обновляют. Что мне нужно, так это то, что страница должна перенаправляться на другую