标签: codeigniter-2

是否有用于codeigniter的mongodb支持的用户身份验证库?

我需要一个Codeigniter登录库来进行用户身份验证.我使用MongoDB作为我的数据库.

我已经浏览了一些推荐的库,如Ion Auth,Tank Auth,DX Auth等,但都使用了mysql数据库.

是否有推荐的库使用mongodb作为数据库?

我开始将上面的一个库从mysql转换为mongodb insetions但它变得太复杂了 - 需要进行许多更改,并认为我最终会弄乱它.使用mongodb在一个好的图书馆需要帮助.

php codeigniter mongodb mongodb-php codeigniter-2

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

SQL查询转义+ codeigniter

我正在使用codeigniter,并且大部分时间都使用活动记录进行查询(自动转义它们),但由于变量,此查询似乎并不适合它.所以我需要弄清楚如何手动转义查询.

Codeigniter文档建议以这种方式转义查询:

$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";
Run Code Online (Sandbox Code Playgroud)

我的原始查询

$sql = "SELECT * FROM (`user_language`) WHERE `user_id` = '{$id}'";
Run Code Online (Sandbox Code Playgroud)

我的转义查询

$sql = "SELECT * FROM (`user_language`) WHERE `user_id` = '{$id}' VALUES(".$this->db->escape($user_language).")";
Run Code Online (Sandbox Code Playgroud)

但我无法正确使用语法.错误消息是:

  • PHP错误消息:未定义的变量:user_language
  • SQL错误:语法错误...在第1行'VALUES(NULL)'附近

php mysql sql codeigniter codeigniter-2

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

如何禁用直接访问回调函数?

<? if ( ! defined('BASEPATH')) exit();

    class Registration extends CI_Controller {

        public function __construct() {
            parent::__construct();
            $this->load->model('registration_model');
        }

        public function index() {
            $this->load->library('form_validation');

            $this->form_validation->set_rules('email', 'E-mail', 'trim|required|valid_email|callback_email_available');

            if($this->form_validation->run() == FALSE) {
                $this->load->view('registration');
            } else {
                $this->registration_model->add_user();
            }
        }

        # Check E-mail
        public function email_available($email) {
            $this->db->select('email');
            $this->db->where('email', $email);
            $query = $this->db->get('users');
            $result = $query->row();

            if(!empty($result)) {
                $this->form_validation->set_message('email_available', 'This e-mail belongs to another user.');
                return FALSE;
            } else {
                return TRUE;
            }
        }

    }
    ?>
Run Code Online (Sandbox Code Playgroud)

我有一份表格验证的注册表格.我有一个回调函数来验证电子邮件的唯一性.

所有代码都可以正常工作,但我可以直接访问带有错误的回调函数

examle.com/registration/email_available

A PHP Error was …
Run Code Online (Sandbox Code Playgroud)

codeigniter codeigniter-2

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

所提交的网址带有不被接受的字符.在URL中编码var

我的申请表上有注册表.当有人完成注册时,会收到一封电子邮件,其中包含确认注册的链接(典型情况).

链接是这样的

http://www.myDomain.com/registration/validation/m0NQGT4XzQgId5zuH/1PrDqNSP7YWq81Mba8cSXLb1WsQ5aVqf2sQ3Ece3ZdmxYvLjztaGp7Xmhv8ArjFET/8Q==

  • 注册是控制器
  • 验证是功能
  • 最后一个是用户名

编码用户名:

$encrypted_username = $this->encrypt->encode($username);
Run Code Online (Sandbox Code Playgroud)

但是,访问该链接会返回以下错误

所提交的网址带有不被接受的字符.

设置$config['permitted_uri_chars'] = '';一切顺利,但他们说我们不应该这样做.

那么,我该如何解决这个问题呢?

php uri codeigniter-2

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

CodeIgniter多个数据库使用而不更改第一个数据库的现有代码

我已经使用codeigniter成功配置了第二个数据库,并且能够创建表.现在的问题是,现在使用的每个以前存在的代码行都$this->db使用第二个数据库,所以它自然会弹出错误.让我解释一下细节:

我使用codeigniter的迁移库,在新的迁移中,我使用dbforge创建数据库,就像这样$this->dbforge->create_database('website_store').到目前为止一直很好,然后我使用$DB2 = $this->load->database('store', TRUE);并创建一个表连接到这个数据库.一切都很好.

然后迁移结束,codeigniter尝试更新迁移表以推送最新版本,但查看store数据库而不是默认数据库,因此它会弹出以下错误:

Table 'website_store.migrations' doesn't exist
UPDATE `migrations` SET `version` = 45
Run Code Online (Sandbox Code Playgroud)

希望有人知道使用多个数据库和迁移库.顺便说一句,在database.php文件中,它被设置为使用默认数据库:$active_group = "default";而不是商店数据库,所以它应该工作.看起来迁移库看到已经加载了数据库,感觉很懒,并使用了那个.

注意: 看起来这些人有类似的问题,他们通过将'pconnect'设置为'false'来修复,但保持与两个数据库的连接会很好:

在Code Igniter中加载多个数据库的便捷方法

在CodeIgniter中使用多个数据库时出错

codeigniter codeigniter-2

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

设置带有火花和活动记录的codeigniter时出现问题

我的sparks安装使用我的codeigniter安装时遇到问题

以下是我采取的步骤如下:

  1. codeigniter通过我的项目文件夹的根目录PHPCLI使用以下命令安装sparks

    php -r "$(curl -fsSL http://getsparks.org/go-sparks)"
    
    Run Code Online (Sandbox Code Playgroud)
  2. 我使用下面的spark命令安装了活动记录库

    php tools\spark install -v0.0.2 php-activerecord
    
    Run Code Online (Sandbox Code Playgroud)

2A.这个命令给了我下面的文件夹结构

-application
-sparks
   -php-activerecord
      -0.0.2
         -config
         -variables
         -vendor
-system
-tests
-tools
   -lib
      -spark
         -sparktypes
   -test
-user_guide
Run Code Online (Sandbox Code Playgroud)

2B.此命令生成一个sparks包含php active record文件夹,用于构成必要的组件php-activerecord,使用该命令生成一个如下所示的MY_Loader.php文件

<?php  if (! defined('BASEPATH')) exit('No direct script access allowed');
/**
 * Sparks
 *
 * An open source application development framework for PHP 5.1.6 or newer
 *
 * @package     CodeIgniter
 * @author …
Run Code Online (Sandbox Code Playgroud)

php mysql codeigniter-2 phpactiverecord

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

CodeIgniter私有服务器上的系统路径不正确

上传到服务器的codeigniter项目给我以下错误.

您的系统文件夹路径似乎未正确设置.请打开以下文件并更正:index.php

在本地000webhost.com托管上运作良好.

当上传到并行的私人服务器时,它会出现上述错误.

我的index.php如下.

<?php
define('ENVIRONMENT', 'development');

if (defined('ENVIRONMENT'))
{
switch (ENVIRONMENT)
{
    case 'development':
        error_reporting(E_ALL);
    break;

    case 'testing':
    case 'production':
        error_reporting(0);
    break;

    default:
        exit('The application environment is not set correctly.');
}
 }
$system_path = 'system';
$application_folder = 'application';


if (defined('STDIN'))
{
    chdir(dirname(__FILE__));
}

if (realpath($system_path) !== FALSE)
{
    $system_path = realpath($system_path).'/';
}

$system_path = rtrim($system_path, '/').'/';

if ( ! is_dir($system_path))
{
    exit("Your system folder path does not appear to be set correctly. …
Run Code Online (Sandbox Code Playgroud)

php xampp codeigniter-2

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

PHP版本5.4.13错误?CodeIgniter Bug?或者,解释?

所以......我把一些代码住一天(即工作我的本地机器上100%的罚款),但杀了服务器-没有笨日志,没有Apache日志,die('msg')exit()没有工作-我从来没有在之前经历过5+多年的PHP开发.

在50多次提交到我的回购之后,我将问题缩小到一个声明,该声明在拆分时有效,但不能在一起.

系统信息:

PHP版本:5.4.13

Codeigniter版本: define('CI_VERSION', '2.1.3');

这些行有效(在Codeigniter MY_Controller函数中调用):

dump($this->get_val('order_id')); 
$tmp = $this->get_val('order_id');
dump($tmp); 
dump(empty($tmp)); 
dump(!empty($tmp));
Run Code Online (Sandbox Code Playgroud)

但是当我添加以下行时,会发生上述崩溃:

!empty($this->get_val('order_id'))
Run Code Online (Sandbox Code Playgroud)

这似乎是一个PHP错误?


结构体:

Main.php

<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Main extends Administration {

    function index() {
        // if (!empty($in['order_id'])) { /*  BROKEN  */
        dump($this->get_val('order_id'));
        $tmp = $this->get_val('order_id');
        dump($tmp);
        dump(empty($tmp));
        dump(!empty($tmp));
        // dump(!empty($this->get_val('order_id'))); /*  BROKEN  */
        // if (!empty($this->get_val('order_id'))) { /*  BROKEN  */
        //     dump(true);
        // } else {
        //     dump(false);
        // }
    }
}
Run Code Online (Sandbox Code Playgroud)

adminstration.php …

php codeigniter codeigniter-2

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

在codeigniter中的模型中运行多个查询

我在codeigniter中的模型中有这个代码:

<?php
Class Mymodel Extends CI_Model
{
    function __construct()
    {
        parent::__construct();
    }

    function search($textinput)
    {
        $street = "select street from dataSearch;";
        $stripNameWOSpace = "select stripNameWOSpace FROM dataSearch;";
        $vowels = array('a','e','i','o','u',';','/','-', ' ');
        $string = strtolower($textinput);
        $strippedVowels = mysql_real_escape_string(str_replace($vowels, '', $string));
            $this->db->query("select dataSearch.id,
                dataSearch.name,
                dataSearch.street,
                dataSearch.city,
                dataSearch.lat,
                dataSearch.lng,
                category.asiatype from dataSearch join category on dataSearch.cat = category.id
                where dataSearch.street like '%".$textinput."%'");
            $this->db->query("select dataSearch.id,
                dataSearch.name,
                dataSearch.street,
                dataSearch.city,
                dataSearch.lat,
                dataSearch.lng,
                category.asiatype from dataSearch join category on dataSearch.cat = category.id
                where dataSearch.stripNameWOSpace like '%".$strippedVowels."%'"); …
Run Code Online (Sandbox Code Playgroud)

php codeigniter-2

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

CodeIgniter - 在请求标头中打印自定义值

如何使用CodeIgniter打印在收到的请求的标题中设置的值?

我试过print_r($_SERVER);哪个对我不起作用.我希望使用CI的方式不同.

php codeigniter codeigniter-2 codeigniter-3

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