标签: codeigniter

500服务器错误:脚本标头过早结束:

我有一个php的网站,它与solr索引服务器一起使用,基于CodeIgniter.

我们获得了很多新内容,因此我们刷新了数据库,并且必须重新索引内容(大约168,000个元素).我创建了一个脚本,通过500个切片对内容进行索引 - 当脚本完成时,我们启动下一个索引.

它在我的本地测试环境中完美运行,但在生产中我得到这500个错误:

[Thu Dec 02 ...] [error] [client IP] Premature end of script headers: index.php
Run Code Online (Sandbox Code Playgroud)

我的php.log中没有任何内容,只有返回它的apache error_log.我已经看到它发生在网站的其他页面上一两次,但它是在这个索引期间.

有任何想法吗?

php apache codeigniter

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

试图获取非对象的属性 - CodeIgniter

我正在尝试制作更新表单,即检索所选特定ID的数据,并填写表单,以便可以进行更新.

当我单击特定条目(我的情况下是产品)上的编辑时,它会转到edit_product_view,但是我在表单元素中使用的每个变量都会声明错误"试图获取非对象的属性"set_values.

使用print_r,我得到正确的关联数组,所以它正确传递.

这是我的摘录edit_product_view.

<h2><?php echo $heading; ?></h2>
<hr>
<table id="newproduct">
<?php echo form_open('products/edit/'.$product->id); ?>
<tr>
    <td class="label"><?php echo form_label('Name:');?></td>
    <td><?php echo form_input('prodname', set_value('prodname', $product->prodname));?></td>
</tr>
<tr>
    <td class="label"><?php echo form_label('Product Type:');?></td>
    <td><?php echo form_dropdown('ptname_fk', $product_types, set_value('ptname_fk', $product->ptname_fk));?></td>
</tr>
Run Code Online (Sandbox Code Playgroud)

$product 是包含所有键值对的数组,但由于某种原因我无法填写表单.

先感谢您!

php mysql codeigniter

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

代码点火器2.0.3中Active Record中奇怪的反引号行为

以前我的所有查询都在CI 2.0版中正常运行,但是当我升级到2.0.3时,我的一些SELECT查询被破坏了.

CI会自动添加反引号(``),但在旧版本中它会按原样运行.

CI用户手册已指示添加第二个参数

DB->选择

如

假

但它仍然不起作用.

代码如下: -

class Company_model extends MY_Model
{

----------------

$this->db->select(' count('.$fieldname. ') as num_stations');
$this->db->select(" CONCAT_WS(',', clb_company.address1, clb_company.address2, clb_company.city, clb_company.state, clb_company.zipcode ) as companyAddress");
$this->db->from($this->_table);
$this->db->join($this->_table_device, $fieldname1. " = ".  $fieldname2, 'LEFT');
$this->db->where($blablafield , '0');
----------------
Run Code Online (Sandbox Code Playgroud)

错误如下: -

Error Number: 1064

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 
'FROM (`clb_device`) JOIN …
Run Code Online (Sandbox Code Playgroud)

activerecord select codeigniter backticks

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

创建自定义codeigniter验证规则

我的登录表单中有一个函数,用于检查电子邮件和密码是否与数据库中的值匹配,如果是,则将用户登录到系统中.

如果此函数返回false,我想显示验证错误.

我的问题是我不确定如何创建它.该消息与密码和电子邮件字段有关,因此我不希望每个输入字段的规则只显示一条消息.

我已经尝试使用flashdata来实现这一点但它只在页面刷新时才有效.

如何仅为函数创建新的验证规则$this->members_model->validate_member()?

$this->form_validation->set_error_delimiters('<div class="error">', '</div>');
        $this->form_validation->set_rules('email_address', '"Email address"', 'trim|required|valid_email');
        $this->form_validation->set_rules('password', '"Password"', 'trim|required');

        if ($this->form_validation->run() == FALSE)
        {
            $viewdata['main_content'] = 'members/login';
            $this->load->view('includes/template', $viewdata);
        }
        else
        {       
                if($this->members_model->validate_member())
                {
Run Code Online (Sandbox Code Playgroud)

php validation codeigniter

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

如何在Code Igniter中测试我的MySQL更新查询是否成功?

我有一个模型函数,用于更新我的Code Igniter应用程序中的用户:

// updates first of a user, return true if successful, false if not.
public function updateFirstName($userId, $newFirstName) {
    $this->db->query("UPDATE users SET firstName='$newFirstName' WHERE id=$userId");
    return // whether request was successful?
}
Run Code Online (Sandbox Code Playgroud)

如何返回一个布尔值,以确保ID的用户$userId已更新?例如,如果未找到具有ID的用户,则应返回false $userId.

php mysql codeigniter

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

CodeIgniter:控制器中的全局变量

我是CodeIgniter的新手,在我继续的时候遇到的问题是,在程序编码中,很容易修复

目前的问题是:我有这个控制器

class Basic extends Controller {

    function index(){
        $data['title'] = 'Page Title';
        $data['robots'] = 'noindex,nofollow';
        $data['css'] = $this->config->item('css');
        $data['my_data'] = 'Some chunk of text';
        $this->load->view('basic_view', $data);
    }

    function form(){
        $data['title'] = 'Page Title';
        $data['robots'] = 'noindex,nofollow';
        $data['css'] = $this->config->item('css');
        $data['my_other_data'] = 'Another chunk of text';
        $this->load->view('form_view', $data);
    }
}
Run Code Online (Sandbox Code Playgroud)

如您所见,一些数组项重复:

$data['title'] = 'Page Title';
$data['robots'] = 'noindex,nofollow';
$data['css'] = $this->config->item('css');
Run Code Online (Sandbox Code Playgroud)

难道没有办法让它们在控制器中"全局",所以我不必为每个函数键入它们吗?像(但这给我错误):

class Basic extends Controller {

    // "global" items in the $data array
    $data['title'] = 'Page Title';
    $data['robots'] = …
Run Code Online (Sandbox Code Playgroud)

arrays controller codeigniter global-variables

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

在JQuery File上传演示中限制文件类型

我正在使用Codeigniter的下一个项目使用JQuery文件上传演示.谁能告诉我如何实现以下目标:

  • 将上传文件类型限制为.zip和.rar
  • 限制文件大小
  • 清除上传文件列表(JQuery文件上传插件显示已上传文件的列表)

帮助赞赏!!

jquery codeigniter file-upload blueimp

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

如何将2个参数路由到控制器?

这看起来非常基本,但我无法理解它.

我正在尝试向控制器中的方法发送多个参数,如下所示:

http://localhost/ci/index.php/subjects/3/state
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的路线:

$route['subjects/(:num)'] = 'subjects/view/$1';
$route['subjects/(:num)/{:any}'] = 'subjects/view/$1/$2';
Run Code Online (Sandbox Code Playgroud)

方法接受2个参数:

public function view($slug, $id = null){

}
Run Code Online (Sandbox Code Playgroud)

但我似乎得到了404.我怎么能让这个工作?我需要view方法总是接受1个参数和可选的其他参数.

注意:我包括网址助手.

codeigniter codeigniter-url codeigniter-2 codeigniter-routing

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

如何让mysql的最后一个插入ID与事务一起工作?+交易问题

两部分问题:

  1. 在我的CodeIgniter脚本中,我正在启动一个事务,然后插入一行,将insert_id()设置为php变量,使用新ID作为外键将更多行插入另一个表,然后我提交所有内容.

    所以我的问题是:如果在结束事务之前一切都没有提交,如果没有插入任何内容,mysql如何能够返回最后一个插入ID?我的脚本(几乎)完美地工作,新ID在后续查询中使用.

    (我说"差不多"因为,使用PDO mysql驱动程序,有时第一个应该返回insert_id()的插入是重复的 - 它被插入两次.任何想法为什么会这样?这与获取最后一个相关ID?如果使用mysqli或mysql驱动程序,它永远不会发生.)

  2. 我首先编写没有事务的脚本,所以我有代码检查一路上的mysql错误,例如:

    if(!$this->db->insert($table, $data)) {
        //log message here
    }
    
    Run Code Online (Sandbox Code Playgroud)

    一旦我将所有mysql代码包装在事务中,这对mysql进程有何影响?它不会导致任何明显的错误(希望与上述问题无关),但它应该被删除吗?

谢谢.

mysql pdo transactions codeigniter

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

如何从数据库中获取项目的标题并将其发送到CodeIgniter中的标题模板

我正在CodeIgniter中编写一个应用程序,我<title>在每个控制器的每个页面上指定元标记,我已设法将其发送到我的标题模板.但是,现在我已经创建了一个应用程序,通过CodeIgniter模型从数据库中获取信用卡及其标题.我想自动获取并使用信用卡的名称,<title>这样我就不需要手动更改它了,但我有点不知道如何继续.

这是我现在的代码:

调节器

public function show($card = NULL)
{

    $data['query'] = $this->Listing_model->get_card($card);

    $header["page_title"] = from the model

    $this->load->view('includes/header',$header);
    $this->load->view('listings/listing_card',$data);
    $this->load->view('includes/footer');
}
Run Code Online (Sandbox Code Playgroud)

模型

function get_card($card = FALSE)
{
    $query = $this->db->get_where('creditcards', array('slug' => $card), 0,1);
    return $query->result();
}
Run Code Online (Sandbox Code Playgroud)

我在创建这个应用程序时一直遵循官方的CodeIgniter文档,但到目前为止还没有运气.有解决方案吗

php activerecord codeigniter codeigniter-3

22
推荐指数
2
解决办法
2517
查看次数