我正在尝试在codeigniter中创建一个简单的登录系统.当我点击我的按钮登录时,我收到一个错误:
The action you have requested is not allowed.
当我打开我的控制台时,我看到了这个:
POST
http://localhost/PHP/PROJECT/CodeIgniter/
403 (Forbidden)
这是我的看法:
- <body>
- <h1>LOG IN!</h1>
- <form action="" method="post">
- <label for="username">Username:</label>
- <input type="text" id="username" name="username" >
- <label for="password">Password</label>
- <input type="password" id="password" name="password" >
- <br>
- <button id="btn_login" name="btn_login" >LOG IN!</button>
- </form>
- <div class="errors" ><?PHP echo validation_errors(); ?></div>
- </body>
这是我的模特:
- <?PHP
- class User_model extends CI_Model {
- public $m_sUsername;
- public $m_sPassword;
- public $m_sEmail;
- public $m_sPicture;
- function __construct()
- {
- parent::__construct();
- }
- function get_user($username,$password)
- {
- $this->db->select("username","password");
- $this->db->from(user);
- $this->db->where('username',$username);
- $this->db->where('password',$password);
- $this->db->limit(1);
- $query = $this->db->get();
- return $query->num_rows();
- }
- }
这是我的控制者:
- <?PHP
- class Login extends CI_Controller {
- function __construct()
- {
- parent::__construct();
- $this->load->library('session');
- $this->load->helper('form');
- $this->load->helper('url');
- $this->load->helper('html');
- $this->load->database();
- $this->load->library('form_validation');
- $this->load->model("User_model","",true);
- }
- public function index()
- {
- if ($this->input->server('REQUEST_METHOD') == 'POST') {
- $username = $this->input->post("username");
- $password = $this->input->post("password");
- $this->form_validation->set_rules("username","Username","trim|required");
- $this->form_validation->set_rules("password","Password","trim|required");
- if ($this->form_validation->run() == FALSE) {
- //validation fails
- echo "Vul alle velden in";
- } else {
- //validation succeeds
- if ($this->input->post('btn_login') == "Login") {
- //check if username and password is correct
- $usr_result = $this->User_model->get_user($username,$password);
- if ($usr_result > 0) { //active user record is present
- echo 'Ingelogd!';
- } else {
- echo "Wrong!";
- }
- }
- }
- }
- $this->load->view("admin/login_view.PHP");
- }
- }
有谁知道如何解决这个问题?
谢谢!
检查你的config.PHP如果,
- $config['csrf_protection'] = TRUE;
如果设置为true,则需要使用form_open(),这将自动附加ci_csrf_token.否则你可以设置为FALSE.
但建议将其设置为TRUE.但是您需要确保所有请求都包含ci_csrf_token,包括AJAX请求.
https://ellislab.com/codeigniter/user-guide/helpers/form_helper.html