我正在尝试在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如果,
原文链接:https://www.f2er.com/php/135020.html$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