Codeigniter 登录操作未加载函数
我创建了一个登录视图,这样当用户提交数据时,它会将数据发送给auth/login 但是,当他们单击Login时,它会将他们带回一个非样式的登录页面 它也会加载仪表板视图 请参阅下面使用的代码: ./application/views/layouts/application.phpCodeigniter 登录操作未加载函数,codeigniter,twitter-bootstrap-3,codeigniter-2,Codeigniter,Twitter Bootstrap 3,Codeigniter 2,我创建了一个登录视图,这样当用户提交数据时,它会将数据发送给auth/login 但是,当他们单击Login时,它会将他们带回一个非样式的登录页面 它也会加载仪表板视图 请参阅下面使用的代码: ./application/views/layouts/application.php 网络工作室! 现在登录 登录 ./application/models/User.php 在您的问题中,您说过url是“auth/logn”,但auth控制器中的方法是“login”。那只是个打字错误吗?因为那是个
网络工作室!
现在登录
登录
./application/models/User.php
在您的问题中,您说过url是“auth/logn”,但auth控制器中的方法是“login”。那只是个打字错误吗?因为那是个打字错误。该url是指身份验证/登录。(我已经纠正了上面的拼写错误。最后一个代码(没有引导)现在还在工作吗?dashboard是您的控制器名称或功能name@MohitJainDashboard是控制器,index是函数。我已经用最近的更改更新了上面的代码示例
<!DOCTYPE html>
<html lang="en">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="">
<link rel="shortcut icon" href="images/favicon.png">
<title>Network Studios!</title>
<!--Core CSS -->
<link href="styles/bootstrap/css/bootstrap.min.css" rel="stylesheet">
<link href="styles/bootstrap/css/bootstrap-reset.css" rel="stylesheet">
<link href="styles/font-awesome/css/font-awesome.css" rel="stylesheet" />
<!-- Custom styles for this template -->
<link href="styles/base/css/style.css" rel="stylesheet">
<link href="styles/base/css/style-responsive.css" rel="stylesheet" />
<!-- HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!--[if lt IE 9]>
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
<script src="https://oss.maxcdn.com/libs/respond.js/1.3.0/respond.min.js"></script>
<![endif]-->
</head>
<body class="login-body">
<div class="container">
<? $form_atr = array('class' => 'form-signin');?>
<?=form_open('auth/login', $form_atr)?>
<?=isset($message) ? $message : ''?>
<h2 class="form-signin-heading">sign in now</h2>
<div class="login-wrap">
<div class="user-login-info">
<?php echo form_input(['name' => 'email', 'id' => 'email', 'class' => 'form-control', 'value' => set_value('email'), 'placeholder' => 'Email']); ?>
<?php echo form_password(['name' => 'password', 'id' => 'password', 'class' => 'form-control', 'placeholder' => 'Password']); ?>
<button class="btn btn-lg btn-primary btn-block" type="submit">Sign in</button>
</div>
<?=form_close()?>
</body>
</html>
<?php
class User extends ActiveRecord\Model
{
/**********************************************
* Before saving we need to secure the password
***********************************************/
function set_password($planetext)
{
$this->hashed_password = $this->hash_password($planetext);
}
/******************************************************************
* First We need to generate a random encryption for the password
***************************************************************/
private function hash_password($password)
{
$salt = bin2hex(mcrypt_create_iv(32, MCRYPT_DEV_URANDOM));
$hash = hash('sha256',$salt . $password);
return $salt . $hash;
}
/********************
* Password Validation
********************/
public function validate_password($password)
{
$salt = substr($this->hashed_password, 0, 64);
$hash = substr($this->hashed_password, 64, 64);
$password_hash = hash('sha256', $salt . $password);
return $password_hash == $hash;
}
public static function validate_login($username, $password)
{
$user = User::find_by_username($username);
if($user && $user->validate_password($password) )
{
User::login($user->id);
return $user;
}
else
return FALSE;
}
public static function login($user_id)
{
$CI = & get_instance();
$CI->session->set_userdata('user_id', $user_id);
}
public static function logout ()
{
$CI =& get_instance();
$CI->session->sess_destroy();
}
}
<?php
class Auth extends CI_Controller
{
function login()
{
// $data = array();
if ($_POST)
{
//User Has Submitied Login Form
$user = User::validate_login($_POST['username'], $_POST['password']);
if ($user)
redirect('dashboard'); // Have also tried redirect('dashboard/index'); but this failed aswell
else
{
$this->view_data['message'] = 'Invalid Login. Please check the username / password.';
}
}
$this->load->view('layouts/application', $data);
}
function logout()
{
User::logout();
redirect('login');
}
}
class Dashboard extends MY_Controller
{
function __construct()
{
parent::__construct();
}
function index()
{
if(!$this->user)
redirect('login');
else
{
echo('This is the Dashboard <br />');
echo($this->user->username);
}
}
}
<?php
class MY_Controller extends CI_Controller
{
var $user = FALSE;
//Layouts / Autoview Functions
protected $layout_view = 'application';
protected $content_view = '';
protected $view_data = array();
// Call Parend Constructor
function __construct()
{
parent::__construct();
$this->user = $this->session->userdata('user_id') ? User::find($this->session->userdata('user_id')) : FALSE;
}
// Set Our Output
public function _output($output)
{
// Set Default Content View
if ($this->content_view !== FALSE && empty($this->content_view)) $this->content_view = $this->router->class . '/' . $this->router->method;
// Render Content View
$yield = file_exists(APPPATH . 'views/' . $this->content_view . EXT) ? $this->load->view($this->content_view, $this->view_data, TRUE) : FALSE;
// Render Layout View
if($this->layout_view)
echo $this->load->view('layouts/' . $this->layout_view, array('yeild' => $yield), TRUE);
else
echo $yield;
}
}