标签: codeigniter

基于角色的访问控制

是否有PHP based可用于开源,基于角色的访问控制系统CodeIgniter?

php codeigniter access-control

25
推荐指数
2
解决办法
4万
查看次数

Codeigniter和PHP - 强制404?

在codeigniter中,如您所知,表单的页面:/class/function/ID,其中class是控制器名称,function是控制器中的方法,ID是传递给该方法的参数.

典型的用法是(例如对于书籍网站)将书籍ID传递给函数,该函数然后将查询数据库以获得适当的书籍.我的问题是:我正在乱搞并且随机(在url字符串中)键入数据库中不存在的ID(通常点和点击浏览这种情况永远不会发生)并且由于剩余查询而导致数据库错误我尝试使用不存在的ID执行.

我已经编写了代码来检查在尝试使用ID之前是否有任何行返回,但如果ID不存在,我希望用户获得404错误页面而不是空白页面(因为这看起来像适当的功能).这需要是一个真正的404页面(不只是加载看起来像404页面的视图),以免搞砸搜索引擎.好的 - 所以我的问题是:在正常的程序逻辑流程中(如上所述)如何使用codeigniter强制404错误?谢谢.

更新:代码点火器有一个show_404('page')功能,但我认为这不会产生真正的HTTP 404错误...

php error-handling codeigniter

25
推荐指数
4
解决办法
4万
查看次数

如何在CodeIgniter中包含外部库?

我是codeigniter的新手,我正在尝试将亚马逊的FPS整合到我的页面中.有一堆库和模型与亚马逊FPS一起使用,我需要将其包括在内以进行适当的调用.

如何将它们包含在CodeIgniter中?

我尝试将整个Amazon文件夹放在system/libraries目录中,然后尝试将库包含在$ this-> load-> library('Amazon/FPS/Client')中; 但是,我遇到了相对路径的问题,因为Client.php包含语句require_once('Amazon/FPS/Interface.php'); ...在同一个文件夹中.

必须有一个更好的方法来做这一切 - 任何人都可以帮助吗?

谢谢!!

codeigniter amazon-web-services

25
推荐指数
2
解决办法
3万
查看次数

Codeigniter路由正则表达式 - 在控制器/方法名称中使用短划线

我正在寻找一条单行路由,将虚线控制器和方法名称路由到实际的下划线控制器和方法名称.

例如URL

/controller-name/method-name-which-is-long/
Run Code Online (Sandbox Code Playgroud)

会路由到

/controller_name/method_name_which_is_long/
Run Code Online (Sandbox Code Playgroud)

请参阅:http://codeigniter.com/forums/viewreply/696690/这给了我一个问题:)

php regex routes codeigniter

25
推荐指数
3
解决办法
1万
查看次数

Codeigniter将2个参数传递给回调

发布一个名为'id'和'url'的两个字段的表单后,我有以下代码:

$this->load->library('form_validation');
$this->form_validation->set_rules('id', 'id', 'trim|xss_clean');
$this->form_validation->set_rules('url', 'url|id', 'trim|xss_clean|callback_url_check');
Run Code Online (Sandbox Code Playgroud)

db查询需要两个字段.

函数url_check($ str,$ id)被调用,但在这种情况下,'id'的值始终为0.

如果我这样做:

$this->form_validation->set_rules('url', 'url', 'trim|xss_clean|callback_url_check');
Run Code Online (Sandbox Code Playgroud)

并呼吁url_check($str)一切正常,因为它应该做.

问题是如何将两个值传递给url_check($str, $id)?

parameters codeigniter callback

25
推荐指数
3
解决办法
4万
查看次数

如何为代码点火器设置date.timezone以使用php5.3

当php.ini中的date.timezone被注释掉时,它给了我:

遇到PHP错误

严重性:警告

消息:main():依赖系统的时区设置是不安全的.您需要使用date.timezone设置或date_default_timezone_set()函数.如果您使用了这些方法中的任何一种并且仍然收到此警告,则很可能拼错了时区标识符.我们选择'America/Los_Angeles'作为'-8.0/no DST'

文件名:controllers/helloworld.php

行号:2

当我有

date.timezone = "America/Los_Angeles"
Run Code Online (Sandbox Code Playgroud)

它给了我这个:

服务器错误网站在检索http://localhost/ci/index.php/helloworld时遇到错误 .它可能已关闭以进行维护或配置不正确.以下是一些建议:稍后重新加载此网页.HTTP错误500(内部服务器错误):服务器尝试完成请求时遇到意外情况.

我使用的是php5.3,代码点火器2.0.0和Apache2.2.任何人都有这个问题吗?

更新1:我尝试加载没有代码点火器的test.php,其中test.php的前3行是

date_default_timezone_set('America/Los_Angeles');
echo date("l j \of F Y h:i:s A");
Run Code Online (Sandbox Code Playgroud)

它工作正常,不同的时区也可以正常工作.所以我怀疑问题来自代码点火器......任何人在这里使用代码点火器?

php datetime codeigniter

25
推荐指数
3
解决办法
9万
查看次数

CodeIgniter身份验证+用户权限

我正在尝试在我的应用程序中构建一个身份验证系统,但我在决定哪些是我能在CodeIgniter中实现我想要的最佳方式时遇到了一些问题.

该网站允许公司管理他们的建筑物.公司可以拥有许多建筑物和许多用户(当我说用户时我指的是该公司的员工).

在这个网站上我想要两个(基本上)四种普通用户.

  • 超级管理员:这将能够将新的管理员和新公司添加到数据库,并为其他管理员授予权限.
  • 管理员:根据分配的权限,这将能够执行不同的操作.
  • 公司超级用户:当管理员创建新公司时,将直接创建此用户.该用户可以为该公司创建新用户,并且由于他/她将具有完全权限,因此他将能够执行其他用户可以执行的所有操作.
  • 公司用户:根据超级用户分配的权限,该用户可以查看和查看不同的数据(例如,简单的用户只能查看来自众多公司大楼之一的信息).

所以,尽管我已经在CodeIgniter上看到了很多认证库,但是听到有关如何设计这个"基于身份验证角色"系统的任何建议会很高兴,如果你特别推荐一个可以帮助实现这个目标的库.

欣赏!

php authentication codeigniter

25
推荐指数
2
解决办法
4万
查看次数

使用Codeigniter插入IGNORE

我试图使用Codeigniter和Active Records在MySQL表中插入几行.

PHP代码

$data = array('......');  // some rows of data to insert
$this->db->insert_batch('my_table', $data);
Run Code Online (Sandbox Code Playgroud)

但是,这可能会导致重复的行插入表中.为了处理重复数据的插入,我打算使用该INSERT IGNORE命令在行重复时不插入行.

问题:我找不到INSERT IGNOREActive Records中的等效项,也不想编辑Active Record类.还有其他选择吗?

以下看起来很有趣,但是如果我执行以下操作,那么查询不会运行两次吗?

$insert_query = $this->db->insert_batch('my_table', $data);  // QUERY RUNS ONCE
$insert_query = str_replace('INSERT INTO','INSERT IGNORE INTO',$insert_query);
$this->db->query($insert_query); // QUERY RUNS A SECOND TIME
Run Code Online (Sandbox Code Playgroud)

php activerecord codeigniter

25
推荐指数
4
解决办法
3万
查看次数

codeigniter活动记录左连接

我有3个mysql表.

Table 1 user  
id | name  

Table 2 emails  
id | email  

Table 3 user_email  
user_id | email_id  
Run Code Online (Sandbox Code Playgroud)

我没有查询多表的经验.
使用codeigniter活动记录,我想根据用户ID找出用户的电子邮件地址,请告知以下代码是否正确?

$CI->db->select('email');
$CI->db->from('emails');
$CI->db->where('id', $userid);
$CI->db->join('user_email', 'user_email.user_id = emails.id', 'left');
$query = $CI->db->get();  
Run Code Online (Sandbox Code Playgroud)

php activerecord codeigniter left-join

25
推荐指数
1
解决办法
8万
查看次数

CodeIgniter-活动记录插入如果是新的或更新重复

是否可以在CodeIgniter中执行活动记录查询,如果现有记录已经存在,则更新现有记录,如果不存在则为给定密钥插入?

我知道这可以通过首先查询找到现有记录来完成,但我正在寻求最有效的方法.

mysql codeigniter

25
推荐指数
4
解决办法
3万
查看次数