标签: codeigniter

Mysql Codeigniter Active Record - 如何进行where_in查询并返回正确的结果顺序?

我有一组以特定顺序传递的ID,需要保留.我从几个左连接查询与每个ID相关的数据.从搜索中返回ID,因此必须保留顺序以使结果有效(否则会使搜索变得毫无意义).

我的代码看起来像;

$this->db->where_in('id', $array_of_ordered_ids);
Run Code Online (Sandbox Code Playgroud)

例如 -

$this->db->where_in('id', array(4,5,2,6));
Run Code Online (Sandbox Code Playgroud)

将按顺序返回结果2,4,5,6.

我希望它保留订单并返回结果4,5,2,6.

谢谢,

php mysql search activerecord codeigniter

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

CodeIgniter控制器在URL中使用参数时加载两次

我有一个问题,我的CodeIgniter控制器被调用两次.它似乎只发生在我使用uri中的参数时(/ newsletter/confirm/a1938cas893vf9384f0384f0943).如果我从我的函数中删除参数,它只加载一次控制器.我还注意到,使用url中的参数,如果我刷新页面,它只加载一次.因此,只有在调用新页面时才会加载两次.

例如,第一次导航到/ newsletter/confirm/a123将导致加载两次.但如果您要刷新/ newsletter/confirm/a123,它只会加载一次.我已完成对我的视图的注释,以消除引起它的视图的问题.

这听起来像是缓存问题,还是我的.htaccess文件中的某些内容?谢谢你的任何建议.

相关控制人:

<?php
error_reporting(-1); 
  ini_set('display_errors',1);
class Test extends CI_Controller {

    function __construct() {
    parent::__construct();
        log_message('debug', 'MyController initialised'); 
    }

    function confirm($code)
    {
        $this->load->helper(array('form'));

        //$code = "6e930fe882c3b15712158812769dbcb636f96b8c";
        $result = $this->db->get_where('newsletter_members', array('nm_confirmation_code' => $code, 'nm_subscribed' => 0));

        if ($result->num_rows == 0)
        {
            $newsletter_message['newsletter_message'] = "Confirmation code is invalid or has already been confirmed.";
            //$this->load->view('index_test', $newsletter_message);
        } else {
            $newsletter_message['newsletter_message'] = "Thank you for confirming your intent to subscribe to our newsletter!";
            $data = array(
                    'nm_subscribed' => 1,
                    ); …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

Codeigniter CSRF问题

我只是想知道有任何选项可以在特定的控制器/方法中关闭CSRF.我有另一个网站ping我的网站,但由于CSRF被阻止.

有什么方法可以解决这个问题吗?

php codeigniter csrf

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

构建在codeigniter之上的PHP应用程序可以同时连接到MySQL和mongoDB数据库吗?

我有一个内置于codeigniter并使用cloudcontrol托管的Web应用程序.我使用普通的MySQL数据库来保存我的所有数据,现在除了MySQL数据库之外我还想使用mongodb数据库.

我想使用mongodb作为作业队列来在我的工作者和我的应用程序服务器之间保留消息.我从本教程中获得了灵感:http://www.captaincodeman.com/2011/05/28/simple-service-bus-message-queue-mongodb/

  1. 这是可能的(同时使用两种不同类型的数据库 - 有/没有黑客的codeigniter,我会认为是)

  2. 完成此任何提示?

----编辑----

我在我的CI项目中包含了这个库:https: //github.com/alexbilbie/codeigniter-mongodb-library

当我尝试通过以下方式加载它:$this->load->library('mongo_db'); 我遇到这个: 在此输入图像描述

我不确定如何让mysql和mongodb一起工作......

----编辑----

没关系我的上述问题,我不正确地设置了配置文件并混淆了错误......

php mysql codeigniter mongodb cloudcontrol

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

如何在Codeigniter中使用文件夹?

我刚开始使用Codeigniter.我创建了一个名为home.php的简单控制器和一个名为home_view.php的视图.这工作正常.现在我最终会喜欢这个网站,我正在建立除了公共www版本之外还有一个管理部分.所以我重新整理了我的文件结构:

controllers:

www
 - home.php
admin

Views:

www
 - home_view.php
admin
Run Code Online (Sandbox Code Playgroud)

最后,我将管理相关的控制器和视图放在各自的目录中.但是在移动了我的文件之后,它们就不再起作用了.我想我需要改变路由或配置文件中的内容.我需要做什么?

php codeigniter directory-structure

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

将是/否单选按钮存储到MySQL数据库中

我已经看到了一个Yes/No形式的单选按钮值,可以通过几种不同的方式存储/保存.我想知道哪种方式更好,为什么?这是针对PHP/MySQL应用程序的一个典型的是/否问题作为表单的一部分.

1.)将其存储为1,0或null.1为是,0为否,无回答为空.

2.)将其存储为是,否,为空.假设可以进行语言转换.

3.)使用1,2和null,以便更好地区分值.

谢谢,杰夫

编辑:我还必须提到,由于jQuery/JavaScript以及比较和$()绑定,大多数问题都已出现.

html php forms jquery codeigniter

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

CodeIgniter中带有Active Record的"count_all_results"和"where"的问题

在CodeIngiter用户指南中,他们说了以下代码:

$this->db->where('name', $name);
$this->db->where('title', $title);
$this->db->where('status', $status); 
// WHERE name = 'Joe' AND title = 'boss' AND status = 'active'
Run Code Online (Sandbox Code Playgroud)

这意味着当我想通过活动记录从数据库中选择一些东西时,我应该使用where方法,它将通过替换AND字段来完成.现在我想创建登录页面,我这样做:

public function True_login($username = '',$password = '')
    {
        $this->db->flush_cache();
        $this->db->where('username',$username);
        $this->db->where('password',$password);
        $count = $this->db->count_all_results('PM_ADMIN_LIST');
        if ($count === 1)
        {
            return TRUE;
        }
        else
        {
            return FALSE;
        }
    }
Run Code Online (Sandbox Code Playgroud) 但如果是,它将返回TRUE username=$username OR password = $password.如果在表格中找到一个用户名或密码(并且$count === 1它将返回TRUE)我的prbolem在哪里,我该如何解决?

php database codeigniter

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

Codeigniter更改加载的语言

目前我在MY_Controller中加载了一种语言,它扩展了CI_Controller.但是在一个特殊的页面中,哪个控制器(我们称之为ABC控制器)扩展了MY_Controller,我需要用另一种语言覆盖加载的语言.我尝试在这个ABC控制器中加载另一种语言,但不成功.有没有办法卸载加载的语言并加载另一种语言?

php codeigniter

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

在php codeigniter中重置密码功能

我正在尝试在codeigniter php中编写重置密码功能,并介意不要点击从哪里开始,这是最好的方法,请帮助

my db as like this
CREATE TABLE `members` (
 `id` int(11) NOT NULL AUTO_INCREMENT,
 `username` varchar(255) NOT NULL,
 `email` varchar(255) NOT NULL,
 `password` varchar(255) NOT NULL,
 `verifystring` varchar(15) NOT NULL,
 `lostkey` varchar(100) NOT NULL,
 `active` enum('0','1') NOT NULL,
 PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=latin1
Run Code Online (Sandbox Code Playgroud)

和功能是这样的

//忘记密码

 public function forget_password(){

    $this->form_validation->set_rules('email','Email Address','xss_clean|required|valid_email|callback_reset_password');
    if($this->form_validation->run() == FALSE){
    $this->load->view('account/forget_password');
    }else{

        //send an email
        $this->load->library('email');
        $this->email->set_newline("\r\n");

            $this->email->from('me@gmail.com', 'Raju');
            $this->email->to('me@gmail.com');
            $this->email->subject('Email my');
            $key = 12334455;
            $message = "Please click this url to …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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

在PHP中创建非英语目录

我希望能够以其名称为注册用户创建文件夹.他们的信息以西里尔字符存储在我的数据库中,并在创建文件夹时从他们的信息中删除.问题是,如果信息是英文的,一切都还可以,如果在西里尔语中,我会得到像Кульчманова这样的东西.一切都设置为utf-8.如果我将文件夹名称设置为'фыва',它就没有问题.

        $this->load->model('users_model');
    $i=$this->session->userdata('uid');
    $new_name=$this->input->post('doc_name');
    $folder=$this->users_model->getFullName($i); //$folder='????' works fine

    if(!is_dir("./uploads/".$folder)){
        mkdir("./uploads/".$folder , 0777);
    }
    $config['file_name'] = $new_name;
    $config['upload_path'] = './uploads/'.$folder.'/';
Run Code Online (Sandbox Code Playgroud)

将不胜感激任何帮助

php codeigniter

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