未定义的变量:config。 PHP错误,但发送电子邮件

时间:2011-04-05 19:57:43

标签: php codeigniter

问候!

我刚刚下载了CodeIgniter框架的2.0.1版本,我正在尝试编写自己的电子邮件控制器,如下所示:

<?php

class Email extends CI_Controller
{
     function __construct()     {         parent::__construct();     } 

    function index()     {   
        $this->load->library('email', $config);
        $this->email->set_newline("\r\n");

        $this->email->from('some.email@gmail.com', 'some.email.name');
        $this->email->to('some.author.email.@gmail.com');        
        $this->email->subject('This is an email test');        
        $this->email->message('It is working!');

        $path = $this->config->item('server_root');        

        $file = $path . '/attachments/readme.txt';

        $this->email->attach($file);

        if($this->email->send())         {             echo 'Email sent.';         }        
        else        {            show_error($this->email->print_debugger());        }
    }
}

如果我将浏览器指向“http://localhost/CodeIgniter/index.php/email”,我会收到此PHP错误消息

A PHP Error was encountered
Severity: Notice
Message: Undefined variable: config
Filename: controllers/email.php
Line Number: 24

第24行指向我控制器中的这行代码 $ this-&gt; load-&gt; library('email',$ config);

尽管存在PHP错误,但电子邮件正在发送,并附带文件附件。

如何删除此PHP错误?我做错了什么?

3 个答案:

答案 0 :(得分:3)

如消息所示,$ config未定义。您可以通过定义来修复它。

$config = Array();

在第24行之前的某个地方应该这样做

答案 1 :(得分:3)

不,你不应该通过定义来修复它,这是不正确的。

您需要更改

$this->load->library('email', $config);

$this->load->library('email');

阵列不存在,因为您已在config / email.php文件中设置配置详细信息,因此不需要$ config数组AGAIN。 :)

答案 2 :(得分:0)

$ config = Array(); 我这样初始化它比你的数组是空的所以你没有必要 加载库配置属性时将自动配置定义数组。不需要传递$ config变量只做这个 $这个 - &GT;负载&GT;库( '电子邮件');它对你来说很好。