我有一组以特定顺序传递的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.
谢谢,
我有一个问题,我的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) 我只是想知道有任何选项可以在特定的控制器/方法中关闭CSRF.我有另一个网站ping我的网站,但由于CSRF被阻止.
有什么方法可以解决这个问题吗?
我有一个内置于codeigniter并使用cloudcontrol托管的Web应用程序.我使用普通的MySQL数据库来保存我的所有数据,现在除了MySQL数据库之外我还想使用mongodb数据库.
我想使用mongodb作为作业队列来在我的工作者和我的应用程序服务器之间保留消息.我从本教程中获得了灵感:http://www.captaincodeman.com/2011/05/28/simple-service-bus-message-queue-mongodb/
这是可能的(同时使用两种不同类型的数据库 - 有/没有黑客的codeigniter,我会认为是)
完成此任何提示?
----编辑----
我在我的CI项目中包含了这个库:https: //github.com/alexbilbie/codeigniter-mongodb-library
当我尝试通过以下方式加载它:$this->load->library('mongo_db');
我遇到这个:

我不确定如何让mysql和mongodb一起工作......
----编辑----
没关系我的上述问题,我不正确地设置了配置文件并混淆了错误......
我刚开始使用Codeigniter.我创建了一个名为home.php的简单控制器和一个名为home_view.php的视图.这工作正常.现在我最终会喜欢这个网站,我正在建立除了公共www版本之外还有一个管理部分.所以我重新整理了我的文件结构:
controllers:
www
- home.php
admin
Views:
www
- home_view.php
admin
Run Code Online (Sandbox Code Playgroud)
最后,我将管理相关的控制器和视图放在各自的目录中.但是在移动了我的文件之后,它们就不再起作用了.我想我需要改变路由或配置文件中的内容.我需要做什么?
我已经看到了一个Yes/No形式的单选按钮值,可以通过几种不同的方式存储/保存.我想知道哪种方式更好,为什么?这是针对PHP/MySQL应用程序的一个典型的是/否问题作为表单的一部分.
1.)将其存储为1,0或null.1为是,0为否,无回答为空.
2.)将其存储为是,否,为空.假设可以进行语言转换.
3.)使用1,2和null,以便更好地区分值.
谢谢,杰夫
编辑:我还必须提到,由于jQuery/JavaScript以及比较和$()绑定,大多数问题都已出现.
在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在哪里,我该如何解决? 目前我在MY_Controller中加载了一种语言,它扩展了CI_Controller.但是在一个特殊的页面中,哪个控制器(我们称之为ABC控制器)扩展了MY_Controller,我需要用另一种语言覆盖加载的语言.我尝试在这个ABC控制器中加载另一种语言,但不成功.有没有办法卸载加载的语言并加载另一种语言?
我正在尝试在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) 我希望能够以其名称为注册用户创建文件夹.他们的信息以西里尔字符存储在我的数据库中,并在创建文件夹时从他们的信息中删除.问题是,如果信息是英文的,一切都还可以,如果在西里尔语中,我会得到像Кульчманова这样的东西.一切都设置为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)
将不胜感激任何帮助
codeigniter ×10
php ×10
mysql ×2
activerecord ×1
cloudcontrol ×1
csrf ×1
database ×1
forms ×1
html ×1
jquery ×1
mongodb ×1
search ×1