2011-04-05 46 views
1

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

我刚刚下载的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('[email protected]', 'some.email.name'); 
     $this->email->to('[email protected]');   
     $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://本地主机/笨/指数.PHP /电子邮件”,我得到这个PHP错误信息

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

行号24点,这行代码在我的控制器$这个 - >负载>库(‘电子邮件’,$配置) ;

尽管PHP错误,电子邮件发送正常,带有文件附件。

我该如何删除这个PHP错误?我究竟做错了什么?

+0

通知只是一个信息“嘿,这是你可能想要看的东西”。这不是一个错误,也不是一个“有人设置我们的炸弹!”。他们可以被忽略,但应该处理“完整”的正确性。 – 2011-04-05 20:56:32

回答

3

正如消息所示,$ config没有被定义。你可以通过定义它来解决它。

$config = Array();

某处线24之前应该这样做

+0

Duh !!!谢谢。愚蠢,愚蠢,愚蠢的我。 – Chris 2011-04-05 20:09:56

+0

不客气。有时候,这是最让我们感到困惑的东西,没有人不受此影响;) – 2011-04-05 20:17:25

3

不,你不应该定义它解决它,这是不正确。

您需要更改

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

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

数组不存在,因为你已经设置在你的配置/ email.php文件中的配置细节,以使$配置数组不需要再次。 :)

+0

那很好,因为我们已经在email.php中加载了配置细节,我们可以加载它来获得电子邮件对象的访问权 – NaveenThally 2014-08-13 06:31:36

0

$ config = Array(); 我你这样初始化它比你的数组是空的所以你不需要 定义数组的时候你加载库配置属性会自动配置。没有必要通过$ config变量只能这样做
$ this-> load-> library('email');它会为你工作得很好。

+0

使用代码格式化工具让你的答案可读 – NSNoob 2016-02-17 06:26:52