我想用codeigniter制作更安全的登录系统。我可以用这个例子做一个简单的。
http://www.codefactorycr.com/login-with-codeigniter-php.html
但问题在于,通过示例,我可以直接从url地址访问“check_database”方法。但我想阻止它。因此,如果用户试图访问该方法,他将被重定向到登录或欢迎页面。请注意,我可能有超过10种方法。我不想一个接一个地配置它们。你有什么解决方案吗?
答案 0 :(得分:2)
使用私人功能将无效。
如果您阅读本手册,您可以看到需要在函数名之前用_编写函数。
因此function check_database()
变为function _check_database()
在这里阅读 http://ellislab.com/codeigniter/user-guide/general/controllers.html#private
答案 1 :(得分:1)
在方法开放后包括:
if (!$this->input->post())
redirect('somewherelse!');
因此,如果没有任何POST请求,则有人试图直接从URL访问它。
如果可能有超过10种方法......
如果所有方法都应该只接收POST请求,那么将它放在__construct()上,例如:
function __construct(){
parent::__construct();
if (!$this->input->post())
redirect('somewherelse!');
}
或者你可以创建一个自定义库,它可以有一个CodeIgniter引用来使用数据库,然后创建所有登录业务,仅返回true
或false
记录状态。
答案 2 :(得分:0)
使用私人功能。这些不能通过URL& amp;将被公开访问隐藏