标签: codeigniter

CodeIgniter CSRF和localhost

我目前正在本地工作(myhostname.local)在CodeIgniter中开始一个开发项目,我正在尝试做一个简单的登录表单提交,并且CSRF保护不起作用.我收到错误:

遇到错误
不允许您请求的操作.

有几点需要注意:

  1. 我正在使用CI Reactor 2.0.2
  2. 我从本地主机(myhostname.local)运行所有内容

我的表格:

<?=form_open('home/login');?>
... username/password fields in here ...
<?=form_close();>
Run Code Online (Sandbox Code Playgroud)

我的控制器:

public function login()
{

    $this->form_validation->set_rules('email','Email','trim|required');
    $this->form_validation->set_rules('password','Password','required');

    if($this->form_validation->run() === FALSE)
    {
        ... form did not pass validation ...
    }
    else
    {
        ... form passed ...
    }

}
Run Code Online (Sandbox Code Playgroud)

当我将表单提交到http://myhostname.local/home/login时,我收到上述错误.

任何关于为什么会发生这种情况的帮助非常感谢.

谢谢!肖恩

php codeigniter csrf

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

Codeigniter会话从标题视图文件中检查

我很新,刚刚开始使用Codeigniter,并且遇到了一些关于会话的混乱.

我想要实现的是,像常规的PHP一样,我想通过使用检查会话数据的头包含文件来检查用户是否登录.我不希望在将数据传递给视图文件时检查/写入每个控制器中的检查代码.

有人可以告诉我如何做到这一点?

防爆.我不想在每个控制器中执行以下操作:

//Controller:
if($this->session->userdata('loggedin'){
$data['loggedin'] = $this->session->userdata('loggedin');
}
//I dont want to check the above on every function in every controller
$this->load->view('some_view_file', $data);

//some_view_file
if(isset($loggedin)){
echo "You are logged in!";
}
else
{
echo "Please log in!";
}
Run Code Online (Sandbox Code Playgroud)

相反,我希望有类似的东西:

//some view file
if(isset($loggedin))
{
echo "your logged in";
}
else
{
echo "please log in";
}
Run Code Online (Sandbox Code Playgroud)

而且,我如何使用本机php会话而不是CI会话.任何帮助都感激不尽.谢谢.

session codeigniter

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

使用Codeginiter在jQuery Mobile上进行Ajax请求

目前我正在尝试使用jQuery Mobile执行ajax请求.我试图在http://www.giantflyingsaucer.com/blog/?p=2574上使用示例.是的,它完美无缺.但是当我试图在codeigniter中使用代码时,问题就出现了.

这是我的控制器:

<?php
class Ajax extends CI_Controller {
    function __construct() {

    }

    function index() {
        ?>
        <!DOCTYPE html>
        <html>
            <head>
            <title>Submit a form via AJAX</title>
              <link rel="stylesheet" href="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.css" />
              <script src="http://code.jquery.com/jquery-1.5.2.min.js"></script>
              <script src="http://code.jquery.com/mobile/1.0a4/jquery.mobile-1.0a4.min.js"></script>
        </head>
        <body>
            <script>
                function onSuccess(data, status)
                {
                    data = $.trim(data);
                    $("#notification").text(data);
                }

                function onError(data, status)
                {
                    // handle an error
                }        

                $(document).ready(function() {
                    $("#submit").click(function(){

                        var formData = $("#callAjaxForm").serialize();

                        $.ajax({
                            type: "POST",
                            url: "callajax",
                            cache: false,
                            data: formData,
                            success: onSuccess,
                            error: onError
                        });

                        return false; …
Run Code Online (Sandbox Code Playgroud)

php ajax jquery codeigniter jquery-mobile

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

MVC优化问题框架Zend

只是一个快速的逻辑问题.

我有2个Zend控制器,即商家和账户.Merchant Controller有一个名为editAction的动作.我的问题是,是否可以在帐户中执行相同的操作而不重复代码.我设法为视图创建了一个包含文件,但我希望有一个最好的方法来管理我的代码.我目前有一个Helper类的想法,并为这两个控制器调用该帮助器类.但我知道有人会得到比这更好的解决方案.请帮我.

谢谢

php model-view-controller zend-framework codeigniter

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

子域文件夹中的CodeIgniter,从地址中删除index.php

因此,我尝试使用本手册从地址中删除index.php:http://dev.lohv.eu/1/user_guide/general/urls.html

atm我的地址是http://dev.lohv.eu/1/index.php,但是我想在将来使用它而没有index.php,就像这样:http://dev.lohv.eu/1/

我根据手册创建了.htaccess文件:

RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud)

但不幸的是它失败了,我得到404错误.我想问题是,我正在尝试在子域文件夹中配置.htaccess,因此它不适合手动,需要一些额外的,但我不知道它需要什么额外的东西.

.htaccess codeigniter

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

Codeigniter 404错误 - 如何判断它们来自何处?

例如,在我的日志中,我有许多重复的行,例如:

ERROR - 2011-07-06 09:19:01 --> 404 Page Not Found --> favicon.ico
Run Code Online (Sandbox Code Playgroud)

有没有办法让我找出谁在调用这些错误的URL?favicon只是一个例子,有一些URL例如显示出攻击的意图,而其他URL则是一遍又一遍地重复相同的错误.基本上我很想知道哪些IP可能会阻塞,以及如果他们有错误的链接会联系哪些网站(或者我应该只使用.htaccess将它们重定向到我的服务器上).

codeigniter http-status-code-404

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

CodeIgniter 2.0.2语法错误空白页面

CodeIgniter 2.0.2语法错误空白页面

我有CodeIgniter 2.0.2(CI)和它的annoing,当我写了很多代码,然后得到空白页.难以调试而不会出错.我在php.ini中有错误报告E_ALL,在CI的配置中,它为每个环境(开发,产品)的情况打开了,只是为了确定...

有谁知道,bug可以在哪里?怎么打开它?我认为CI正在以某种方式重写php.ini错误报告设置...

谢谢.

syntax reporting codeigniter

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

CodeIgniter嵌套控制器?

我是CodeIgniter的新手,我希望我的问题能有一个简单的答案.

我有一个网站,里面有几个菜单项(menuA,menuB和menuC).我用控制器中的一个主控制器,index(),menuA(),menuB()和menuC()对其进行了建模.被调用函数设置会话值currentMenu并包括标题,X,页脚.其中X取决于所调用的函数.然后标题高亮显示选择的菜单.

在menuC(我的webapp中的帐户设置)中,我想有一个不同的控制器来控制AccountSettings/NotLoggedIn的子视图.

从逻辑上讲,我希望menuC()包含页眉和页脚,然后将调用转发给管理登录或子页面的子控制器.

我使用错误的框架还是有直接的方法来实现这一目标?

nested codeigniter controllers

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

在codeigniter中声明类级变量

我是CI的新手,我想做的是拥有一个类级变量(例如是一个数组).但看起来CI尽管吹嘘不高,却不支持这一功能.用户指南中未提及任何相关内容.有一个名为私有函数和变量的标题,但文本似乎对变量保持沉默.

我希望有类似的东西:

class OrderStats extends CI_Controller {

protected $arr_CoreCountry = ('0'=>'uk', '1'=>'us'); 

public function __construct()
   {

        parent::__construct();
        // Your own constructor code

   }

   public function index()
{

    $this->load->model('orders', '', TRUE);
    //$data['result'] = $this->Testmodel->get_entries();
    $data['result'] = $this->Testmodel->get_reports();
    $this->load->view('test', $data);

}

public function getOrderStats()
{       
            $this->load->model('Orderstatsmodel', '', TRUE);

            //$data['result'] = $this->Testmodel->get_entries();
            foreach ($arr_CoreCountry as $key => $value)
            {
                $data['result'] = $this->Orderstatsmodel->get_orderStats($key);
            }
  //                $data['result'] = $this->Orderstatsmodel->get_orderStats(0);
            $this->load->view('orderstats', $data);

}
Run Code Online (Sandbox Code Playgroud)

请记住,当我在这篇文章中声明$ arr_CoreCountry变量时,我经常会看到语法错误消息.当我把它放在任何函数内部时,当然,它超出了范围,我不断得到一个错误消息,$ arr_CoreCountry是一个未定义的变量.所以问题是我在哪里定义它?

由于来自codeigniter的这个消息,因为我的一半时间被浪费了,所以期待快速响应.

variables codeigniter declaration

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

Mysql搜索,按优先顺序排序

我决定在我的网站上想要一个搜索字段,事情是我对搜索算法没有任何了解.搜索框的工作方式类似于您可以输入任意数量的名称(用户名,名字,姓氏)或用空格分隔的电子邮件.所以我想出了以下使用codeigniter的活动记录类(它非常简单):

    $emails = FALSE;
    $names = FALSE;

    foreach($search_array as $value){
        if(valid_email($value)){
            $emails[] = $value;
        } else{
            $names[] = $value;
        }
    }

    if($emails){
        $this->db->where_in('email', $emails);
        if($names){
            $this->db->or_where_in('username', $names);
            $this->db->or_where_in('firstname', $names);
            $this->db->or_where_in('lastname', $names);
        }
    } else{
        if($names){
            $this->db->where_in('username', $names);
            $this->db->or_where_in('firstname', $names);
            $this->db->or_where_in('lastname', $names);
        }
    }

    $this->db->select('id, username, firstname, lastname');
    $query = $this->db->get('users');

    if($query->num_rows() > 0){
        return $query->result();            
    }

    return FALSE;
Run Code Online (Sandbox Code Playgroud)

这段代码的作用是运行一堆where语句,然后简单地将它们全部发回.也许我可以清理if语句以及电子邮件的工作方式,但这不是重点.这段代码完美无缺(至少对于一个非常小的数据库:P),但我希望它能做得更多:

  • 现在您需要输入正确的名称或电子邮件才能获得任何好结果.如果你几乎是正确的,那么获得一些建议会很好,但我可能会自己想出来做一些喜欢.

  • 我想对整个结果数组进行排序,这就是我磕磕绊绊的地方.由于电子邮件和用户名都是唯一的,我希望使用以下优先级进行搜索:

    1. 电子邮件
    2. 用户名
    3. 名字+姓氏
    4. 名字
    5. 姓

好吧暂时我并不关心例如电子邮件+用户名+名字+姓氏,因为我认为这将是压倒性的方式:P

我确实找到了这个主题搜索查询,'按优先顺序',但由于我不知道在我的搜索中它是什么,它并没有真正帮助我,但也许我可以使用类似的东西?

无论如何,你们知道解决优先级问题的方法吗?我是否可能错过了一些可能有用的主要功能?当我的数据库变大时会发生什么?;)

谢谢大家的帮助!

mysql sql search codeigniter

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