2015-10-15 24 views
0

好吧,這就是我想要做的,使用來自一個文件的變量,包含在網站標題中,並在電子郵件中使用它們。電子郵件中的網站變量php

base.php

$site = mysql_query("SELECT * FROM settings") or die('Error: '. mysql_error()); 
$row = mysql_fetch_array($site); 

// set the Site email address 
$site_email = $row['site_email']; 

confirm.php

include 'header.php'; 
$header="from: '$site_email'"; 

$to="'$site_email'"; 

它不帶有可變前進所以理所當然的郵件永遠不會發送或如果它通過將$設置爲硬編碼的電子郵件地址,它來自服務器根地址,而不是站點地址。

您的幫助將不勝感激。

+0

您在'base.php'定義它,但不包括它? – Darren

+0

其中,不要將收件人電子郵件放在單引號中。另外,請[不要使用'mysql_ *'](http://stackoverflow.com/questions/12859942/why-shouldnt-i-use-mysql-functions-in-php?rq=1); 'mysql_ *'函數已過時,[已棄用](http://us3.php.net/manual/en/intro.mysql.php),並且不安全。使用['MySQLi'](http://us3.php.net/manual/en/book.mysqli.php)或['PDO'](http://us3.php.net/manual/en/intro。相反,pdo.php)。 –

+0

你說變量沒有得到結轉。你是否收到一個未定義的變量通知,或者$ site_email =是空字符串還是null或...? – Terminus

回答

0

我將創建腳本的所有變量你想在幾個腳本上使用,即:

globalVars.php

<?php 
function site_email(){ 
$site = mysql_query("SELECT * FROM settings") or die('Error: '. mysql_error()); 
$row = mysql_fetch_array($site); 
return $row['site_email']; 
} 
?> 

現在,你只需要包含在每個globalVars.php文件,你需要site_email

<?php 
include_once("globalVars.php"); 
echo site_email(); 
?> 
+0

正如我原來的文章所述,這個文件(base.php)包含在標題中,並且標題包含在每個頁面中。我將使用返回方法對其進行測試,因爲codesniffer示例不起作用。 – Keldo

+0

確保'$ row ['site_email'];'不是empy。 –

+0

我運行了一個測試,只是調用和回顯函數,而site_email變量包含站點的電子郵件地址,但是,使用上面發佈的內容或者沒有mysql語句中的返回,都無法發送電子郵件。 – Keldo

1

你在這裏問的是類似於全局變量。由於各種原因,它們通常被認爲是不可取的。爲什麼不把你的代碼放到一個函數中,然後調用函數?

Basic示例(需要驗證語法):

base.php

function GetSiteEmailAddress() 
{ 
    $site = mysql_query("SELECT * FROM settings") or die('Error: '. mysql_error()); 
    $row = mysql_fetch_array($site); 

    // set the Site email address 
    $site_email = $row['site_email']; 

    return $site_email; 
} 

confirm.php

include_once 'base.php'; 

$header="from: '".GetSiteEmailAddress()."'";