加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php – 不允许您请求的操作. Codigniter

发布时间:2020-12-13 18:13:31 所属栏目:PHP教程 来源:网络整理
导读:我正在尝试在codeigniter中创建一个简单的登录系统.当我点击我的按钮登录时,我收到一个错误: The action you have requested is not allowed. 当我打开我的控制台时,我看到了这个: POST http://localhost/PHP/PROJECT/CodeIgniter/ 403 (Forbidden) 这是我
我正在尝试在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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读