标签: codeigniter

如何将参数传递给Codeigniter中URL帮助器中的重定向方法?

我是Codeigniter的新手,我希望在验证失败后重定向到控制器:

if(!validate)
{
  redirect('/poll/list');
}
Run Code Online (Sandbox Code Playgroud)

但我需要传递一个变量,$error以显示一些错误指示,但我不知道如何将参数传递给redirect方法中URL helper,并且想法?

codeigniter

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

Codeigniter DB Query与where,or,和..等

我有一个查询下面的条件(减去选择,从等)

$this->db->where('show_year', $yyyy);
$this->db->or_where('idn', $idn);
$this->db->or_like('post_slug', $idn);
Run Code Online (Sandbox Code Playgroud)

哪种形式

SELECT * FROM (`nyb_articles`) 
WHERE `show_year` = '2009' 
OR `idn` = 'the' 
AND `post_slug` LIKE '%the%'
Run Code Online (Sandbox Code Playgroud)

但是我希望它更像是

SELECT * FROM (`nyb_articles`) 
WHERE `show_year` = '2009' 
AND (`idn` = 'the' OR `post_slug` LIKE '%the%')
Run Code Online (Sandbox Code Playgroud)

我的问题是我不确定CI的活动记录是否支持这一概念,如果确实如此,我将如何处理它,因为我无法在文档中的任何地方找到它的概念.不管我怎么变了like,or_like,where,or_where我甚至不能钉类似的东西.所以任何人都有任何想法?如果可能的话,我宁愿远离原始查询,但如果我必须准备一个并按这样做,我会,只是不愿意.

php mysql activerecord codeigniter

6
推荐指数
1
解决办法
2万
查看次数

Arrowchat和亚马逊实例

我有一个codeigniter,mysql的网站,其中有arrowchat安装.该网站(比如xyz.com)托管在亚马逊环境中.它具有用于图像上传的S3实现,用于静态文件服务的CDN实现, 用于db的RDS实现,用于邮件发送的SES.有一个计划为网站集成自动缩放.我已经研究过如何在这种情况下实现arrowchat,因为arrowchat已经缓存了模板和配置文件,不得不对这个实例中的缓存共享进行一些研究.我试过了

一个).创建了一个S3存储桶并将其映射到arrowchat缓存文件夹 - 但它没有顺利进入缓存目录中的arrowchat库代码包含文件,因此在s3中我们无法直接在arrowchat代码中包含文件.

B).创建了一个子域chat.xyz.com并在该子域中安装了arrowchat并在实例中使用了它. - 除了一些代码修复解决了一些跨域代码问题,它很好地解决了.问题是,我们必须在域和子域中管理相同的代码.

请告诉我我列出的方法是否正确.如果不是,如果有任何其他建议,请告诉我.

amazon chat codeigniter amazon-web-services

6
推荐指数
1
解决办法
680
查看次数

Googlebot无法解释的32个字符的十六进制附加字符串,每天导致超过20,000个404错误

我有一个非常有趣的问题,我没有解释.

每隔2到6秒googlebot(我查了googlebots IP,它真实的东西[使用主机IP ])请求我们网站上的页面(运行:php,apache,mongodb)不存在(404s).没有其他机器人或人类曾经请求过这样的页面!只是googlebot.

请求每个看起来像这样:

/ 2de4f853c2853807b2e72387aa8928a4

/ ea5700c343d1a9798bc554af7c1a330e

/ e5aafa102d54ba7517703336846cc019

我们的代码不使用任何32个char字符串,也没有类似我们网站内部或外部的链接.我们使用codeigniter,所以起初我以为它是默认的session_id,我已经检查过,但事实并非如此.

有没有人见过这样的东西?我们的网站在某些页面上使用history.push,这可能导致它吗?只是一个想法.

示例请求的原始数据:

array (
  'date' => '2012-12-01',
  'time' => '10:01:33 PM',
  'additional_data' => 
    array (
      'server_vars' => 
        array (
          'REDIRECT_STATUS' => '200',
          'HTTP_HOST' => 'www.xxxxxxx.com',
          'HTTP_ACCEPT' => '*/*',
          'HTTP_ACCEPT_ENCODING' => 'gzip,deflate',
          'HTTP_FROM' => 'googlebot(at)googlebot.com',
          'HTTP_USER_AGENT' => 'Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)',
          'HTTP_X_FORWARDED_FOR' => 'xxxxxxx',
          'HTTP_X_FORWARDED_PORT' => '80',
          'HTTP_X_FORWARDED_PROTO' => 'http',
          'HTTP_CONNECTION' => 'keep-alive',
          'PATH' => '/sbin:/usr/sbin:/bin:/usr/bin:/home/ec2-user/ec2/bin',
          'SERVER_SIGNATURE' => '<address>Apache/2.2.22 (Amazon) Server at www.xxxxxxx.com Port 80</address>
',
          'SERVER_SOFTWARE' …
Run Code Online (Sandbox Code Playgroud)

php apache googlebot codeigniter

6
推荐指数
1
解决办法
452
查看次数

Codeigniter,路由在生产服务器上不起作用

我有3台服务器,一台localhost apache服务器,一台测试远程服务器和生产实时服务器.

我在所有3个上都安装了相同的codeigniter和站点设置,并且在localhost和测试服务器上没有'index.php'的路由工作100%.但是,在生产服务器上,无论URL显示只显示主页(通过默认控制器),似乎除了默认路由规则外,所有路由规则都被忽略.

但是,如果在URL中添加了index.php,那么它将按预期工作.

例如,如果生产站点上的URL为:'www.mysite.com/information',则加载的内容将构成默认控制器.

但是当生产站点上的URL为:'www.mysite.com/index.php/information'时,加载的内容来自'信息'控制器.

这是我的htacess文件的内容:http://pastebin.com/cDaZVJ8A

这是我的路由配置文件:http://pastebin.com/7Ewc2bwN

我的$ config ['index_page']设置为空.

我真的不知道为什么它不起作用,在codeigniter本身的所有服务器上的相同设置,并且mod_rewrite IS在生产服务器上工作.

我不知道该怎么办,我怎么能找出什么是错的?

php .htaccess codeigniter

6
推荐指数
1
解决办法
2396
查看次数

CodeIgniter中的regex_match form_validation生成:消息:preg_match():找不到结束分隔符'/'

我一直在寻找其他类似的帖子,问题似乎是一个未转义的斜线.但是我逃避了他们.

这是字符串的外观:

23/12/2012

这就是我宣布验证规则的方式:

regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)[0-9]{2}$/]
Run Code Online (Sandbox Code Playgroud)

结束分隔符在那里,日期的两个中间斜杠用反斜杠进行转义.我也试过这个略有不同,但我得到了同样的错误:

regex_match[/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/]
Run Code Online (Sandbox Code Playgroud)

哪里出错?

编辑:

根据您的建议,我尝试使用回调函数.这是声明,它位于正在执行表单验证的控制器类中:

function mach_date($date) {
   /* DEBUG */ echo 'Here I am!'; exit; // execution should stop here displaying the echo
   return (bool)preg_match('/^(0[1-9]|[12][0-9]|3[01])\/(0[1-9]|1[012])\/(19|20)\d\d$/', $date);
}
Run Code Online (Sandbox Code Playgroud)

application/config/form_validation.php中的验证规则:

$config = array(
     // other validation groups.....,
     'articles' => array(
          // other validated fields.....,
          array(
                'field' => 'date_p',
                'label' => 'Publishing date',
                'rules' => 'callback_match_date'
          )
     )
); 
Run Code Online (Sandbox Code Playgroud)

php regex codeigniter

6
推荐指数
1
解决办法
4449
查看次数

在PHP文件中存储加密密钥的安全性

所以我使用mcrypt加密数据,将其存储在数据库中并对其进行解密.我想知道在public_html目录之外的php文件中存储加密密钥是否安全?

将其存储在文件中的原因是它需要用于多个加密,以便多个用户可以解密某些数据,并且我认为将其存储在文件中比在数据库表中更安全,就在加密旁边数据.

什么是潜在的安全风险?是否有可能让黑客获得对此文件的访问权限,从而获得密钥?

php security encryption codeigniter

6
推荐指数
2
解决办法
2972
查看次数

将Codeigniter连接到Oracle 11g

请帮忙!我无法将codeigniter连接到Oracle我正在尝试将Codeigniter连接到Oracle 11g,这是我的设置

Settings in database.php:

$active_group = 'default';
$active_record = TRUE;

$db['default']['hostname'] = "//localhost/";
$db['default']['username'] = 'xxxxxxx';
$db['default']['password'] = 'xxxxxxx';
$db['default']['database'] = 'orcl';
$db['default']['dbdriver'] = 'oci8';
$db['default']['dbprefix'] = '';
$db['default']['pconnect'] = TRUE;
$db['default']['db_debug'] = TRUE;
$db['default']['cache_on'] = FALSE;
$db['default']['cachedir'] = '';
$db['default']['char_set'] = 'utf8';
$db['default']['dbcollat'] = 'utf8_general_ci';
$db['default']['swap_pre'] = '';
$db['default']['autoinit'] = TRUE;
$db['default']['stricton'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

注意:我将C:\ instantclient_11_2添加到PATH的环境变量中.

oracle port number:
oracle hostname: Home-pc
database name: orcl
Run Code Online (Sandbox Code Playgroud)

只有当我运行我的CodeIgniter登录代码时,它才会显示以下错误消息:

A Database Error Occurred

Unable to connect to your database server using …
Run Code Online (Sandbox Code Playgroud)

codeigniter connect oracle11g

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

如何在Codeigniter中正确使用Alias

这是我的代码:

$this->db->select('course_name AS Course Name,course_desc AS Course Description,display_public AS Display Status',FALSE);
$this->db->from('courses');
$this->db->where('tennant_id',$tennant_id);
$this->db->order_by('course_name','ASC');
$query = $this->db->get();
Run Code Online (Sandbox Code Playgroud)

我收到一个错误:

A Database Error Occurred

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Name, course_desc AS Course Description, display_public AS Display Status FROM (' at line 1
Run Code Online (Sandbox Code Playgroud)

codeigniter

6
推荐指数
1
解决办法
2万
查看次数

在Codeigniter中验证具有2个索引的UNIQUE字段

在Codeigniter框架中,我可以使用"表单验证类"验证MYSQL数据库中的唯一字段.例:

$this->form_validation->set_rules('form_field', 'form_label', 'is_unique[table.field]');
Run Code Online (Sandbox Code Playgroud)

完美地工作,但是,我需要从具有2个索引的表中验证字段.例:

UNIQUE INDEX `id_aluno` (`id_aluno`, `ano`),
Run Code Online (Sandbox Code Playgroud)

Codeigniter框架可以本机化吗?

php mysql validation codeigniter

6
推荐指数
1
解决办法
7643
查看次数