标签: codeigniter

从控制器发送参数到视图

有没有办法从控制器发送数据到视图.我正在做的是用户可以选择链接,根据链接用户点击,相应的数据传递给控制器​​,另一个视图从对应于该链接的控制器加载.但我不知道该怎么做.我在这里使用篝火是我的控制器代码: -

function my_tickets() {
        $username = $this->auth->username();
        $this->load->model('helpdesk_model');
        $result_set = $this->helpdesk_model->my_tickets($username);
        foreach($result_set->result()  as $data ) {
            $title[] = $data->title;
            $category[]=$data->category;
            $priority[]=$data->priority;
            $date[]=$data->date;
            $post_status[]=$data->post_status;
            $userfile_path[] = $data->userfile_path;
        }
        $arraysize=count($title);
        Template::set('arraysize',$arraysize);
        Template::set('title',$title);
        Template::set('category',$category);
        Template::set('priority',$priority);
        Template::set('date',$date);
        Template::set('post_status',$post_status);
        Template::set('username',$this->auth->username());
        Template::set('userfile_path',$userfile_path);
        Template::render();
    }
    function full_post(){
        Template::render();
    }
    }
Run Code Online (Sandbox Code Playgroud)

在我的模型部分: -

function my_tickets($username){
        $this->db->select('title,userfile_path,category,priority,date,post_status');
        $this->db->where('username',$username);
        $result = $this->db->get('tbl_tickets');
        return $result;
        }
Run Code Online (Sandbox Code Playgroud)

我的意见是: -

<?php 
$arraysize =Template::get('arraysize');
$title[] = Template::get('title');
$category[]=Template::set('category');
$priority[]=Template::set('priority');
$date[]=Template::set('date');
$post_status[]=Template::set('post_status');
$username = Template::set('username');
$userfile_path = Template::set('userfile_path');
?>
<h3>Total Number Of posts :&nbsp; …
Run Code Online (Sandbox Code Playgroud)

html php parameters codeigniter hyperlink

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

如何向Phil Sturgeon的CodeIgniter RestServer发送POST请求

我是CodeIgniter的新手.我正在使用Phil Sturgeon的RestServer和RestClient.我一直在尝试在我的CodeIgniter RestClient控制器中发出POST请求来更新我的CodeIgniter RestServer中的数据,但它永远不会更新我的数据库中的数据.我认为我的POST请求不对.

这是我在控制器中的RestClient POST请求:

$result = $this->rest->post('newscontroller/news/format/json', 
          array('news_id' => $news_id,
                'news_title' => $news_title,
                'news_category' => $news_category ),
                'json'); 

if(isset($result->status) && $result->status == 'success')  
{  
        $data['message'] ='News has been updated.';  
        $this->load->view('otherpageview',$data);
}     
else  
{  
        $data['message'] ='Something has gone wrong';  
        $this->load->view('otherpageview',$data);
} 
Run Code Online (Sandbox Code Playgroud)

似乎$ result没有得到任何值,因为我确实回显$ result-> status并且它没有任何显示.而且我在这个控制器的构造函数中也有这个:

// Load the rest client spark
$this->load->spark('restclient/2.1.0');

// Load the library
$this->load->library('rest');

// Run some setup
$this->rest->initialize(array('server' => 'http://api.therestserver.com/index.php/'));
Run Code Online (Sandbox Code Playgroud)

而在RestServer的控制器(即newscontroller)中,有这样的方法:

function news_post()
{
    $news=array(
        'news_id' => $this->post('news_id'),
        'news_title' …
Run Code Online (Sandbox Code Playgroud)

rest codeigniter http-post rest-client

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

在CodeIgniter中将javascript移动到底部的策略?

在我的网站上,我有一个全局Javascript文件,其中包括jQuery和下拉菜单的代码等.许多页面还有针对次要页面特定交互,表格等的自定义Javascript.

我在每个视图上设置的当前header.php文件是一个文件,基本上涵盖了从doctype到内容的开始,特定页面的视图文件以及footer.php关闭页面的所有内容.

目前global.js是从中链接的<head>.为了性能,我们应该把JS放在页面的最底部,但我无法找到一个好方法来做到这一点.我可以global.js使用自定义脚本块添加完整的脚本行,但这意味着我必须在每个页面上添加它,即使没有其他Javascript.有没有更好的方法将JS移到底部?

javascript performance codeigniter

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

从codeigniter中的多行中只选择一列.如何以及更有效率?

我正在考虑效率,我不太确定这种或那种方式.

但我有一堆多列的行.我只需要来自所有行的名称字段,其中某个其他键是特定值.我可以像这样得到所有这些行:

$this->db->where('res_id', $res_id);
$q = $this->db->get('products');
return $q->result();
Run Code Online (Sandbox Code Playgroud)

然后我可以通过它返回的数组进行预测,并且只使用每个对象的名称方法:

foreach($returned_value as $fun):
    echo $fun->name;
endforeach;
Run Code Online (Sandbox Code Playgroud)

但是我想知道,只从每一行中选择name属性会更有效率,我觉得愚蠢的问它因为我一直在使用活动记录,但我怎么会这样做.我意识到我可以使用该$this->db->query()函数将其写出来,但有没有办法使用主要的活动记录命令来指定它?谢谢.

activerecord codeigniter query-optimization

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

在MYSQL中存储密码保护密码的正确代码程序

所以目前我的代码使用标准sha1来散列数据库实现的密码.

什么是或者有更好的保密方式来存储密码? 也许是MD5(是的我在开玩笑)

例如,我使用Codeigniter作为我的框架,加密密码的最佳方法是什么?

php mysql passwords codeigniter password-protection

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

如何在CodeIgniter中显示错误消息

在我的控制器中,我将此代码用于检查购物车是否为空:

if (!$this->cart->contents()){
    $this->session->set_flashdata('message', 'Your cart is empty!');
}

$this->data['message'] = $this->session->flashdata('message');

$this->load->view('templates/header', $this->data);
$this->load->view('bookings', $this->data);
$this->load->view('templates/footer');
Run Code Online (Sandbox Code Playgroud)

在我的"预订"视图中,我设置此代码以显示消息:

<div id="infoMessage"><?php echo $message;?></div>
Run Code Online (Sandbox Code Playgroud)

但是在第一页上加载消息"你的购物车是空的!" 没有显示.但是,当我按F5键或刷新浏览器时,它将显示.

我已经从codeigniter阅读了"CodeIgniter支持"flashdata"的手册,或者只能用于下一个服务器请求的会话数据,然后自动清除."

但是,我不知道在哪里设置此消息,因此它将在"下一个服务器请求"上可用.

codeigniter codeigniter-2

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

CodeIgniter配置charset和UTF-8支持

我正在一个网站上使用/存储数据库中的重音字符.我有页面模板设置,以便config.php charset变量匹配设置,例如:

<meta charset="<?php echo $this->config->item('charset');?>">
Run Code Online (Sandbox Code Playgroud)

我遇到的问题是,当$config['charset']设置为UTF-8时,表单验证失败,如果包含重音字符,就好像没有提交任何字符.因此,例如,如果á包含在字符串中的任何位置,则必填字段将反弹.减去á的字符串工作正常.

我已经设法通过更改$config['charset']为ISO-8859-1并将文本转换为UTF-8,然后在插入/使用php utf8_encode()和数据库检索数据之后将其设置为utf8_decode().这是最好的方法还是我错过了为了获得带有重音字符的UTF-8所需要的东西,在CodeIgniter中工作?

任何建议表示赞赏

php mysql codeigniter character-encoding

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

登录后如何返回重定向页面(codeigniter)?

我的CI应用程序中有登录控制器:

function index()
{
    if($this->session->userdata('logged_in')==TRUE) 
        redirect('/success');

    $data['error']=$this->session->flashdata('errormessage');
    $this->load->view('auth',$data);
}

function process_login()
{

    $username=$this->input->post('username');
    $password=$this->input->post('password');

    if($password == "good_pwd")
    {
    $data=array('username'=>$username,'logged_in'=>TRUE);
    $this->session->set_userdata($data);
    redirect('/success');   
    }   
    else 
    {
        $this->session->set_flashdata('errormessage','Login failed');
        redirect('/failed');
    }
}
Run Code Online (Sandbox Code Playgroud)

这是我在主控制器中的安全构造函数:

function __construct()
{
    parent::__construct();
    if($this->session->userdata('logged_in')!=TRUE)  redirect('/login');
}
Run Code Online (Sandbox Code Playgroud)

当我试图进入www.mysite.com/main/function1/并且我没有登录时,构造函数会将我重定向到登录页面 - 当我登录正确时,我被重定向到主页面而不是将我重定向到登录页面的页面(在此示例中为:www.mysite.com/main/function1/) - 如何操作?

php codeigniter

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

Codeigniter 2 $ this-> ip_address()没有返回ip地址

好吧,我正在尝试记录用户登录历史记录,所以为此我需要跟踪用户的IP地址.我用了:

$this->input->ip_address();
Run Code Online (Sandbox Code Playgroud)

这将返回ip address的机器,如果用户有有效的IP,或者应该返回0.0.0.0如果用户没有一个有效的IP.但就我而言,它既没有返回.

它只返回一种不寻常的格式.

::1
Run Code Online (Sandbox Code Playgroud)

PS我正在我的本地电脑上查看它.

编辑:

感谢所有评论的人.但是这里仍有奇怪的事情发生.我有两个独立的应用程序在同一台机器上运行.这两个应用程序都是在Codeigniter 2中制作的.第一个是记录0.0.0.0,第二个是记录::1.两个应用程序是否应该返回相同的东西?

谢谢

php codeigniter

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

Codeigniter:加入3个表并在视图中显示数据

所以我想加入3张桌子.

我正在构建一个app i Codeigniter,我有3个表

客户:
-id
-phone_number
-hospital_id
-smc_status
-testing_center_id

医院
-id
-name

Testing_center
-id
-name

在模型中,我有这个:

public function get_clients()
    {
        if($slug === FALSE)
        {
            $this->db->select('clients.*');
            $this->db->from('clients');
            $this->db->join('hospital', 'clients.id = hospital.id');
            $this->db->join('testing_center', 'clients.id = testing_center.id');
            $query = $this->db->get();

            return $query->result_array();
        }

        $query = $this->db->get_where('clients');
        return $query->row_array();
    }
Run Code Online (Sandbox Code Playgroud)

在视图中我有:

<tbody>
    <?php foreach ($clients as $client_item): ?>
    <tr>
        <td><?php echo $client_item['phone_number'] ?></td>
        <td><?php echo $client_item['smc_status'] ?></td>
        <td><?php echo $client_item['hospital_id'] ?></td> //i wish to have the hospital name here
        <td><?php echo $client_item['testing_center_id'] ?></td> …
Run Code Online (Sandbox Code Playgroud)

php codeigniter

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