繁体   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