2011-04-05 40 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