簡體   English   中英

如何在 Codeigniter 4 中建立登錄系統?

[英]How to build login system in Codeigniter 4?

我想使用 Codeigniter 4 構建一個登錄系統。但我遇到了一些錯誤。

我在Users_model中有一些數據;

在此處輸入圖像描述

這是我的一些代碼:

控制器/Signin.php

<?php

namespace App\Controllers;

use App\models\Users_model;

class Signin extends BaseController {

    public function index() {
        return view('signin/index');
    }

    public function authenticate() {
        if ($this->exists($_POST['email'], $_POST['password']) != NULL) {
            $session = session();
            $session->set('email', $_POST['email']);
            return $this->response->redirect(site_url('signin/profile'));
        } else {
            $data['msg'] = 'wrong';
            return view('signin', $data);
        }
    }

    public function profile() {
        return view('signin/profile');
    }

    private function exists($email, $password) {
        $model = new Users_model();
        $account = $model->where('email', $email)->first();
        if ($account != NULL) {
            if (password_verify($password, $account['password'])) {
                return $account;
            }
        }
        return NULL;
    }

}

型號/用戶_model.php

<?php

namespace App\models;

use CodeIgniter\Model;

class Users_model extends Model {

    protected $table = 'users';
    protected $primaryKey = 'id';
    protected $allowedFields = ['first_name', 'last_name', 'email', 'password'];

}

但我面臨這個錯誤:

在此處輸入圖像描述

請幫我。

或者請有人建議我在 Codeigniter 4 中以另一種方式登錄系統?

如果你想制作登錄系統,我建議你使用validation使用戶有效並重定向到另一個 controller 或查看。 然后您可以使用filter檢查用戶是否登錄並添加一些routes過濾器以保護其他 controller。

First read this Codeigniter 4.0.4 documentation https://codeigniter4.github.io/userguide/libraries/validation.html

你可以在那里搜索你需要的任何東西。

返回視圖('登錄',$數據);

為了

return view('signin/index', $data);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM