在我的CI系统\ libraries目录中,我有一个名为DD_Controller.php的新类.这个文件看起来像这样:
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
class DD_Controller extends Controller
{
protected $ddauthentication;
function __construct()
{
parent::Controller();
$this->ddauthentication = "Authenticated";
}
}
?>
Run Code Online (Sandbox Code Playgroud)
我的应用程序控制器定义如下:
class Inquiry extends DD_Controller
{...}
Run Code Online (Sandbox Code Playgroud)
当我扩展Controller时,Inquiry类工作正常,但我得到了一个
致命错误:第4行的C:\ development\localhost\applications\inquiry\controllers\inquiry.php中找不到类'DD_Controller'
当我扩展DD_Controller时.在配置文件中,我的前缀定义如下:
$config['subclass_prefix'] = 'DD_';
Run Code Online (Sandbox Code Playgroud)
知道我错过了什么吗?
TIA
我无法使用hmvc和tank auth(设置为模块)设置正常工作的Codeigniter版本2.0.3.我已正确安装CI,然后按照这些说明安装HMVC https://bitbucket.org/wiredesignz/codeigniter-modular-extensions-hmvc/wiki/Home
我到我的欢迎控制器/视图作为示例就好了,这意味着HMVC正在工作.接下来,我尝试通过将tank auth添加到modules文件夹中的文件夹来将tank auth添加到项目中.它具有适当的控制器/视图/模型等.在坦克auth中设置.我甚至在路线中添加了类似的东西
$路线[ "AUTH"] = "auth /中登录";
我还按照指示将auth模块内的控制器扩展到MX_Controller.同样在我的构造函数中:
$this->load->helper(array('form', 'url'));
$this->load->library('form_validation');
$this->load->library('security'); <--failing to load this
$this->load->library('tank_auth');
$this->lang->load('tank_auth');
$this->form_validation->CI =& $this;
Run Code Online (Sandbox Code Playgroud)
它似乎重定向到模块,但它出现错误说::
遇到了错误
无法加载请求的类:安全性
我究竟做错了什么?是否有人使用HMVC和tank auth作为模块进行CI安装,以便我可以看到它是如何完成的?我是HMVC的新手,谢谢
我现在创建CodeIgniter模型的方式是(即没有构造函数,必须一直传递userID并限制为一个对象):
$this->load->model('User');
$this->user->set_password($userID, $password);
Run Code Online (Sandbox Code Playgroud)
但我想这样做:
$this->load->model('User');
$User = new User($userID);
$User->set_password($password);
Run Code Online (Sandbox Code Playgroud)
更新:也许只是一个用户模型是一个糟糕的例子.
例如,如果我有一个包含各种项目的购物清单,我想以这种方式使用PHP:
$this->load->model('List');
$this->load->model('Item');
$List = new List();
$items[] = new Item($itemName1, $itemPrice1);
$items[] = new Item($itemName2, $itemPrice2);
$List->add_items($items);
Run Code Online (Sandbox Code Playgroud)
CodeIgniter在以这种方式处理PHP OO时感觉从根本上破裂了.有没有人有任何解决方案仍然可以在每个模型中使用superobject?
如果您想开发一个WebApp,您知道它将随着时间的推移而扩展并变得越来越大,您会使用CodeIgniter还是您定制的框架?
您使用开源框架的理由是什么?您反对它的论点是什么?
以下是我的想法: CodeIgniter Pros
CodeIgniter缺点
自定义编码的Framkework Pros
自定义编码框架缺点
你对此有何看法?我的大脑告诉我要使用CodeIgniter,我的心告诉我要构建自己的框架.
我想通过在控制器的构造函数中使用我的库来检查用户是否登录了CodeIgniter.
这是我的图书馆:
class Administrator_libs {
public function validate_authen(){
if( $this->session->userdata('user_authen') ){
redirect(base_url().'admin/login/');
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的控制器:
class Administrator extends CI_Controller {
public function __construct(){
parent::__construct();
$this->load->library('administrator_libs');
$this->administrator_libs->validate_authen();
$this->load->model('mod_menu');
}
}
Run Code Online (Sandbox Code Playgroud)
但我收到此错误消息:
Undefined property: Administrator_libs::$session
Run Code Online (Sandbox Code Playgroud)
如何在CodeIgniter中的库中使用会话?
如何在PHP中检查cookie是否已启用以及用户会话?
我需要这个世界上真正更轻松的代码才能做到这一点,任何人都可以向我展示这些东西吗?
我在Codeigniter上,但我打算使用本机PHP进行此控件.
我的代码:
if(session_start()){ echo 'started'; }
Run Code Online (Sandbox Code Playgroud)
我知道Codeigniter不使用本机PHP会话,怎么做?
我正在尝试选择一个提供非常好的Web应用程序安全性的框架,尽可能地防范OWASP Top-10,例如:
事情是我已经尝试过非常重要的研究:Cakephp,Zend,Yii,Code Igniter,Kohana和一些人有基本身份验证,可能是一点点授权,但对于任何需要可靠代码安全性的应用程序都没有.
上面的大多数漏洞类型目前只通过在这些框架中编写自定义代码来保护吗?
这是我第一次使用框架的经验,到目前为止一切都是自定义的php web应用程序.我对php-frameworks的全部想法是,它很容易防范这些漏洞,因为它不是本机的,为什么要使用它?或者是否有一个框架,我没有看到哪个比上面列出的强大的Web应用程序安全性更好?谢谢
我想在我的模型中使用下面的查询按降序对数据库值进行排序.但是,它并没有完全按降序排列数据库中的所有值,但是当使用升序时,它运行良好.
function sort_all_courses_desc($tennant_id)
{
$this->db->select('*');
$this->db->where('tennant_id',$tennant_id);
$this->db->order_by("course_name","desc");
$this->db->from('courses');
$query=$this->db->get();
return $query->result();
}
Run Code Online (Sandbox Code Playgroud) 我最近更新了CodeIgniter 3,遵循本指南: CI3:从2.2.1升级3.0.
我在application/config/config.php文件中设置了这个配置:
$config['sess_driver'] = 'files';
$config['sess_cookie_name'] = 'ci_session_my_site';
$config['sess_expiration'] = 604800; // 1 week
$config['sess_save_path'] = NULL;
$config['sess_match_ip'] = FALSE;
$config['sess_time_to_update'] = 300;
Run Code Online (Sandbox Code Playgroud)
这里有什么问题吗?我的会话在几个小时后就被销毁了......
我收到这个错误:
Unable to locate the model you have specified: Users_model
Run Code Online (Sandbox Code Playgroud)
CodeIgniter是版本3.文件名是Users_model.php.它位于,application\models它是这样的:
defined('BASEPATH') OR exit('No direct script access allowed');
class Users_model extends CI_Model {
public function __construct()
{
parent::__construct();
}
[...]
}
Run Code Online (Sandbox Code Playgroud)
我是从这样的控制器调用它:
$this->load->model('users_model');
Run Code Online (Sandbox Code Playgroud)
有趣的是,它适用于本地的mongoose服务器,但是当我将它部署到heroku服务器时却没有.
codeigniter ×10
php ×9
session ×2
controller ×1
controls ×1
cookies ×1
frameworks ×1
heroku ×1
hmvc ×1
model ×1
security ×1
tankauth ×1