标签: codeigniter

如何在自己内部调用函数?

我有一个函数生成一个4个字符的键,每次都必须是唯一的.为此,该函数首先生成一个密钥,然后检查数据库表以查看其他人是否正在使用它.

如果它没有被使用,它会返回键,否则,它会再次调用自身,但是这会导致函数执行无限循环,这是一个禁忌.这是整个功能:

function key_generator($length = 4)
{
    // I've subsequently left out the generating code,
    // which is not necesarry in this case

    $key = 'xxxx';

    if ($this->user_model->valid_key($key) == true)
    {
        return $key;
    }
    else
    {
        $this->key_generator(4);
    }
}
Run Code Online (Sandbox Code Playgroud)

重新调用该函数的正确方法是什么?

顺便说一下,我正在使用CodeIgniter $this.

php recursion codeigniter function

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

Codeigniter/PHP会话安全问题

我正在使用Codeigniter开发Web应用程序.当用户使用我的网站进行身份验证时,我当前正在将我的"用户标识符"存储在我的会话cookie中(我已启用加密).我的几个模型类使用session/cookie的'user-identifier'参数中的值来更改用户帐户的属性.

我担心的是,我想知道某人是否有可能使用我设置的用户标识符来获取有效的codeigniter-session cookie,将user-identifier的值更改为其他用户的值,然后进行更改另一个用户的帐户.如果有人试图更改会话cookie的属性,codeigniter/php会话会产生错误吗?

php session codeigniter session-cookies

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

在不成功的表单验证后重新填充Codeigniter中的复选框

在不成功的表单验证将用户返回到同一表单后,我有一个问题是重新填充一组复选框.下拉菜单和文本输入可以重新填充,但不能重新填充!

这是复选框代码的片段:

        <td>
            <?php echo form_checkbox('ambience[]', 'casual', set_checkbox('ambience[]', 'casual')); ?> Casual <br />
            <?php echo form_checkbox('ambience[]', 'romantic', set_checkbox('ambience[]', 'romantic')); ?> Romantic <br />
            <?php echo form_checkbox('ambience[]', 'outdoor', set_checkbox('ambience[]')); ?> Outdoor / Alfresco <br />
            <?php echo form_checkbox('ambience[]', 'trendy', set_checkbox('ambience[]')); ?> Hip & Trendy <br />
            <?php echo form_checkbox('ambience[]', 'vibrant', set_checkbox('ambience[]')); ?> Vibrant <br />
            <?php echo form_checkbox('ambience[]', 'up_scale', set_checkbox('ambience[]')); ?> Upscale <br />
        </td>
Run Code Online (Sandbox Code Playgroud)

成功重新填充的文本输入的代码段是:

<?php echo form_dropdown('price_range', $options, set_value('price_range')); ?>
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?我真的很困惑为什么set_checkbox不像宣传的那样工作.

php codeigniter

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

如何在mysql中从数据库中获取最接近的值

我正在使用mySQL和CodeIgniter.我的数据库中有一些浮点数,例如

  • 8.3456
  • 8.5555
  • 4.5556

我想要...

SELECT * FROM table WHERE value = $myvalue
Run Code Online (Sandbox Code Playgroud)

但我不能value = $myvalue在我的SELECT查询中使用,因为$myvalue它不完全等于数据库值.我需要$myvalue从数据库中获取最接近的值.

如果$myvalue是5我想选择值4.5556.

我怎样才能在mySQL中做到这一点?

mysql sql select codeigniter

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

在Google地图上绘制路线

我认为这将是一个非常基本的问题.我正在使用codigniter构建应用程序,其中用户必须在地图上标记目的地,Google地图应自动绘制从点到目的地点的路线并保存.然后,我们必须使用保存的路线来联系用户.

我是Maps API的新手.我可以使用Google Maps API或其他Maps API学习如何实现此功能的任何资源?我还想知道Google Maps API中的这种实现是否会影响用户的隐私?

php google-maps codeigniter google-maps-api-3 google-maps-markers

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

在codeigniter中调用存储过程

我正在使用最新的codeigniter并尝试从我的模型调用存储过程.我也使用mysqli作为数据库驱动程序.现在我在调用两个存储过程时遇到错误.以下是错误:

错误号码:2014

命令不同步; 你现在不能运行这个命令

叫uspTest();

文件名:E:\ wamp\www\reonomy-dev\system\database\DB_driver.php

行号:330

请注意,当我调用单个存储过程时,它工作正常.这是模型的代码.

class Menus_model extends CI_Model {

function __construct()
{
    parent::__construct();

}

public function getMenus()
{
    $query = $this->db->query("call uspGetMenus()");

    return $query->result();
}

public function getSubMenus()
{
    $query = $this->db->query("call uspTest()");
    return $query->result();
}

}
Run Code Online (Sandbox Code Playgroud)

这是控制器的代码

class MYHQ extends CI_Controller {

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

public function index()
{
    $menu = $this->menus_model->getMenus();
    $submenu = $this->menus_model->getSubMenus();
}

}
Run Code Online (Sandbox Code Playgroud)

有没有黑客攻击codeigniter核心的解决方案?

mysql stored-procedures codeigniter codeigniter-2

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

在codeigniter中验证max_length,min_length

我在尝试CodeIgniter为min_length和max_length验证约束设置自定义验证消息时收到错误.

这些是我的验证规则:

$this->form_validation->set_rules('username', 'Username', 'required|xss_clean|min_length[6]|max_length[10]');
$this->form_validation->set_rules('password', 'Password', 'required|min_length[8]|max_length[20]';
Run Code Online (Sandbox Code Playgroud)

这些是我的自定义验证消息:

$this->form_validation->set_message('min_length[3]', '%s: the minimum of characters is three');
$this->form_validation->set_message('max_length[20]', '%s:the maximum of characters is 20');
Run Code Online (Sandbox Code Playgroud)

在我的例子中,我们有两个字段,但我有许多字段具有不同的最小和最大长度值.它们都有特定的约束验证.此消息不起作用.默认情况下会显示该消息.谢谢你的帮助.

php validation codeigniter

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

使用codeigniter上传xls或xlsx文件,mime-type错误

好吧,我相信这本身并不是一个Codeigniter问题,因为它更像是一个mime类型.

我正在尝试上传文件,xls(或xlsx)文件和mime-type浏览器,php报告是application/octet-stream而不是application/excel,application/vnd.ms-excel或application/msexcel对于xls文件.当然,codeigniter上传插件会在尝试将文件扩展名与mime-type匹配时报告错误(文件类型无效).

奇怪的(est)可能是相同的代码工作了几个月,现在停止使用最新的Chrome(16.0.912.77),Firefox(10.0)和IE9.

有没有人有相同(或类似)的问题,并谨慎分享解决方案?

非常感谢你.PS:我不会提供代码,因为它不是真正的代码问题,但如果有必要,我会上传一些代码片段.

编辑

这可能是相关的:该错误不相同的浏览器上发生了类似的配置,但与MS Office,而不是自由报办公室(我的电脑).它也不会发生在基于GNU/Linux的+ Libre Office系统上.那么,是不是Windows在开源套件上很难玩,或者自由办公室改变了mime类型只是为了它呢?

php upload codeigniter mime-types

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

Yii2或Laravel5是否可以补偿Codeigniter中的弱点?

我是一名Web开发人员,我使用Codeigniter 3年,我在许多生产项目中使用它,Codeigniter也是我开发基于框架的项目的起点.后来,我注意到其他php框架提供了许多有用的功能,使开发人员的生活更轻松,例如:

  • 数据库迁移使更改数据库模式更容易,更有效
  • 代码生成(scaffolding):为实体生成模型,视图和控制器
  • 表单验证:表单验证规则在生成中确定,框架确定其余部分
  • REST API:在没有第三方插件的框架中原生支持REST控制器

所有这些原因让我想到切换到其他框架.

搜索之后,我发现Laravel5具有我需要的功能,它还有一个庞大的开发人员社区.

我的朋友使用Yii2,他建议我切换到Yii2,我也发现Laravel和Yii在这些统计数据中都有良好的声誉.

Laravel5和Yii2如何与其他框架不同,并为每个框架增加了价值

php model-view-controller codeigniter yii2 laravel-5

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

在生产服务器codeigniter 3.1.2(PHP)会话销毁从Facebook图形API自动重定向?

codeigniter会话销毁从图形APi facebook重定向一段时间它的工作和一段时间它破坏会话并带一个用户登录页面

这是Config.php会话代码

$config['see_driver'] = 'database';
$config['see_cookie_name'] = 'ci_session';
$config['see_expiration'] = 0;
$config['see_save_path'] = 'ci_sessions';
$config['see_match_ip'] = FALSE;
$config['see_time_to_update'] = 10000;
$config['see_regenerate_destroy'] = FALSE;
Run Code Online (Sandbox Code Playgroud)

这就是我在登录后设置用户会话并在User_controller.php中从数据库进行身份验证的方式

private function __set_user_session($user)
    {
        if(isset($user))
        {
            $data = [
                'user_id' => $user['id'],
                'ilocal_user_id' => $user['ilocal_user_id'],
                'package_id' => $user['package_id'],
                'no_available_business' => $user['no_available_business'],
                'name' => $user['name']
             ];

            $this->session->set_userdata($data);
        }
    }
Run Code Online (Sandbox Code Playgroud)

在面书连接和重定向之后,这个方法被调用并且它在登录页面上自动重定向到用户我不知道他为什么要破坏一个会话

public function connect_facebook_account($business_id)
    {
        $this->__load_business($business_id);
        try
        {
            if(isset($this->data['business'] ))
            {
                $this->fb = new Facebook();
                $this->data['facebook_url'] =  $this->fb->get_login_url($business_id);
                if(isset($_GET['code']))
                {
                    $social_acccount_info = $this->fb->fetch_access_token();
                    if($social_acccount_info['status'] …
Run Code Online (Sandbox Code Playgroud)

php session redirect facebook codeigniter

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