标签: codeigniter-2

CodeIgniter项目的Git环境

我开始使用基于CI 2.0 Reactor存储库的新CI项目.因为CI2代码仍在变化,我想保持代码新鲜,问题是如何(使用Git).

对于非CI人员,CI2项目的基本结构如下所示:

system/  
application/  
index.php
...
Run Code Online (Sandbox Code Playgroud)

系统目录包含框架,index.php执行引导和应用程序包含我的项目.理想情况下,我想使用Git使index.php和系统文件夹保持最新.我想要遵守的另一件事是应用程序文件夹的名称.(您可以在index.php中更改应用程序文件夹的路径.)保持名称相同可以直接放入文件夹,然后离开.

我试图通过使用git子模块来实现这一点(见下文),但是子模块不允许您从目标存储库中指定目录.

git submodule add https://github.com/philsturgeon/codeigniter-reactor.git/code-igniter/system system
Run Code Online (Sandbox Code Playgroud)

任何线索我怎么能实现这一目标?

git codeigniter codeigniter-2

6
推荐指数
2
解决办法
4124
查看次数

在不同应用程序之间共享CI模型

我还在试图想办法让移动网站运行起来.我在CodeIgniter中有一个Web应用程序,我想创建它的移动版本.但是,我不想重写太多的代码,特别是我的模型.(因为它们返回我可以在任何地方使用的原始数据.)

我想在子域(m.mydomain.tld)上运行我的移动网站.桌面版本运行于www.mydomain.tld.我尝试将子域指向我的CI应用程序文件夹; 当移动浏览器到达时www.mydomain.tld,我将其重定向到m.mydomain.tld.正如我所说,这个子域指向我的CI应用程序文件夹; 然后我提供移动优化的控制器和视图.

然而!如上所述app/config/config.php,我的应用程序的base_url是:

$config['base_url'] = 'http://www.mydomain.tld/';

所以重定向到m.mydomain.tld没有真正起作用,因为我仍然被重定向到www我不想要那个,即使它然后做了我想要它做的事情.

我试图解决这个问题的方法是制作两个具有不同控制器/视图的应用程序文件夹,但共享模型等等.所以,我正在试图找到一种方法来重构我的CodeIgniter应用程序,以便我可以共享我的模型和'自定义controller'(MY_Controller),以及不同应用程序之间的一些自定义库/帮助程序.

我希望这很清楚,如果不是,我会很乐意解释更多我正在寻找的东西.非常感谢!

php model-view-controller mobile codeigniter codeigniter-2

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

字段'user_data'在CI 2.0.3中没有默认值

我使用CI的用户指南来创建会话表.

CREATE TABLE IF NOT EXISTS  `sessions` (
    session_id varchar(40) DEFAULT '0' NOT NULL,
    ip_address varchar(16) DEFAULT '0' NOT NULL,
    user_agent varchar(120) NOT NULL,
    last_activity int(10) unsigned DEFAULT 0 NOT NULL,
    user_data text NOT NULL,
    PRIMARY KEY (session_id),
    KEY `last_activity_idx` (`last_activity`)
);
Run Code Online (Sandbox Code Playgroud)

每当我$db['default']['stricton'] = TRUE在database.php中时,都会显示此错误

错误号码:1364

字段'user_data'没有默认值

INSERT INTO sessions(session_id,ip_address,user_agent, last_activity)VALUES( '2b92823888c4c5eb4b5b2ae25282ce9e', '192.168.1.4', '的Mozilla/5.0(Windows NT的6.1; WOW64)为AppleWebKit/535.1(KHTML,例如Gecko)铬/ 14.0.835.186 Safari浏览器/ 535.1',1317346730 )

文件名:libraries/Session.php

行号:327

但是,我想强制执行严格的SQL.

mysql database session-variables codeigniter-2

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

如何通过redirect()传递验证错误数据?

我有一个包含表单的页面,当任何用户提交表单时,数据会转到控制器,控制器会检查验证,如果有任何错误,它会将用户重定向到上一页(包含表单的页面),否则它会将数据发送给模型.

要从控制器重定向到上一页(如果有任何验证错误),我有以下代码

        redirect($this->input->post('redirect'));
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但问题是它将用户重定向到上一页(包含表单的页面)后,它没有显示验证错误.

那么请您告诉我如何通过上面发布的"重定向"代码传递验证错误信息并在该页面上显示验证错误消息?

提前致谢 :)

解:

在我的控制器中:

   $redirect=$this->input->post('redirect'); //  << for this I have- <input name="redirect" type="hidden" value="<?= $this->uri->uri_string() ?>" />         in my view file

   $this->session->set_flashdata('errors', validation_errors());
   redirect($this->input->post('redirect')); 
Run Code Online (Sandbox Code Playgroud)

在我的视图文件中:

   <?php

    if ($this->session->flashdata('errors')){ //change!
    echo "<div class='error'>";
    echo $this->session->flashdata('errors');
    echo "</div>";
    }

    ?>
Run Code Online (Sandbox Code Playgroud)

因此,我可以通过从控制器重定向到上一页来传递验证错误数据

codeigniter codeigniter-2

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

重定向到上一页时如何发送变量数据

在完成特定任务后,我使用以下代码将用户重定向到上一页.

        if (isset($_SERVER['HTTP_REFERER']))
         {
         $this->session->set_userdata('previous_page', $_SERVER['HTTP_REFERER']);
         }
         else
         {
         $this->session->set_userdata('previous_page', base_url());
         }
Run Code Online (Sandbox Code Playgroud)

我在控制器中使用上面的代码,在另一个控制器中使用以下代码.

    .... some other stuffs... I am updating database values here....

        $this->db->where('t_expenseid', $t_expenseid);
        query=$this->db->update('teacherexpense', $data); 


        redirect($this->session->userdata('previous_page'));
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但我面临的问题是我想发送一个带有重定向的成功消息,以便当上一页加载成功消息时弹出(我已经有了jquery).为此我在重定向上面添加了以下代码,但我不知道如何发送$ data或消息以及重定向.如果我能够发送它如何检索上一页的控制器中的值.

 $data['msg']='Information Has been Successfully Inserted'; 
Run Code Online (Sandbox Code Playgroud)

你能告诉我如何发送然后检索它吗?

谢谢 :)

codeigniter codeigniter-2

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

在Codeigniter中,如何将第三个参数传递给回调(表单验证)?

我目前正在使用Form Validation类(在Codeigniter上)和设置规则.

它有两个参数(codeigniter.com/user_guide/libraries/form_validation.html):

$this->form_validation->set_rules('username', 'Username', 'callback_test[abc]');
Run Code Online (Sandbox Code Playgroud)

但是第三个参数呢?还有第四个......?可能吗?

validation codeigniter callback validationrules codeigniter-2

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

codeigniter活动记录在哪里,or_where?

我在CodeIgniter上使用Active Record.我很困惑我应该采取哪种方法.目前,我们的登录系统允许用户使用用户名/电子邮件进行登录以及密码.但我目前的活跃记录似乎让用户登录,如果他选择使用电子邮件+没有密码.

现在这是我的查询:

$this->db->select('id,level,email,username');
$this->db->where('email',$user);
$this->db->or_where('username',$user);
$this->db->where('password',$pass);
$query = $this->db->get('users');

if($query->num_rows>0)
  return TRUE;
else
  return FALSE;
Run Code Online (Sandbox Code Playgroud)

样本输入:

  • 用户名:test | 密码:通过 | 结果:成功
  • 用户名:test | 密码: | 结果:失败
  • 用户名:test@domain.com | 密码:通过 | 结果:成功
  • 用户名:test@domain.com | 密码: | 结果:成功

第四个测试输入必须是Failed in result,但即使密码为空,它似乎也会记录用户.

activerecord codeigniter codeigniter-2

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

CodeIgniter上传图像然后调整大小

我正在尝试上传图片并调整它们的大小,到目前为止上传工作还有拇指指甲图像的创建.但我不能让原始图像调整大小.所有发生的事情是文件以原始大小直接上传到文件夹.我想我正在尝试将此图像调整大小然后覆盖最初上传的文件.

这是我的代码,我错过了什么:

//Initialise the upload file class
    $config['upload_path'] = './image_uploads/';
    $config['allowed_types'] = 'jpg|jpeg|gif|png';
    $config['max_size'] = '6048';
    $this->load->library('upload', $config);

    $userfile = "_upload_image";
            //check if a file is being uploaded
            if(strlen($_FILES["_upload_image"]["name"])>0){

                if ( !$this->upload->do_upload($userfile))//Check if upload is unsuccessful
                {
                    $upload_errors = $this->upload->display_errors('', '');
                    $this->session->set_flashdata('errors', 'Error: '.$upload_errors);   
                    redirect('admin/view_food/'.$food->course_id);  
                }
                else
                {
                    //$image_data = $this->upload->data();

                     ////[ THUMB IMAGE ]
                    $config2['image_library'] = 'gd2';
                    $config2['source_image'] = $this->upload->upload_path.$this->upload->file_name;
                    $config2['new_image'] = './image_uploads/thumbs';
                    $config2['maintain_ratio'] = TRUE;
                    $config2['create_thumb'] = TRUE;
                    $config2['thumb_marker'] = '_thumb';
                    $config2['width'] = 75;
                    $config2['height'] = 50;
                    $this->load->library('image_lib',$config2); …
Run Code Online (Sandbox Code Playgroud)

php codeigniter codeigniter-2

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

为什么CodeIgniter不使用本机PHP会话?

PHP框架"CodeIgniter"提供了一个Session类,它不使用本机PHP-Sessions.相反,他们使用Cookies开发了自己的Session系统.

在他们的网站CodeIgniter.com上,他们写了以下内容:

Note: The Session class does not utilize native PHP sessions. It generates its own session data, offering more flexibility for developers.
Run Code Online (Sandbox Code Playgroud)

如下所述,最多只能保存4KB.

Note: Cookies can only hold 4KB of data, so be careful not to exceed the capacity. The encryption process in particular produces a longer data string than the original so keep careful track of how much data you are storing.
Run Code Online (Sandbox Code Playgroud)

那么,这如何为程序员提供更多的灵活性呢?开发人员使用本机PHP会话的实际原因是什么?

感谢您的信息!

cookies session codeigniter codeigniter-2

6
推荐指数
0
解决办法
384
查看次数

在另一个视图中加载视图

我已经使用django一段时间了,我决定开始一个新项目,但这次在Codeigniter中,我曾经在我的视图中扩展模板文件,并将内容放在{%block content%}块内,但它看起来是在CodeIgniter中有所不同.

在CodeIgniter中我有类似的东西:

<?php
     $this->load->view('header');
     $this->load->view('form_add_customer');
     $this->load->view('footer');
?>
Run Code Online (Sandbox Code Playgroud)

但有没有办法像这样有一个标题,内容和页脚的独特文件?

<html>
    <head><title>Test</title></head>
    <body>
        <div id="header">Welcome</div>
        <div id="content">
        </div>
        <div id="footer"> 2013 - Tectcom Telecom</div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

并在内容div中放置一个带有表单的视图文件?

codeigniter codeigniter-2

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