2012-10-01 97 views
0

我想創建一個廣告表單的答覆,用戶點擊一個廣告,並可以發送電子郵件,但我不希望用戶真正看到他們是哪個地址發送它,而不是電子郵件地址可以從基於用戶名的數據庫中獲取PHP - 基於數據庫查詢電子郵件到電子郵件地址

我試過這段代碼,但似乎無法得到它的工作,任何幫助表示讚賞!

$username = $_SESSION['username']; 

$sql = "SELECT * FROM user WHERE username=:username"; 
$q = $conn->prepare($sql); 
$q->bindParam(':username', $username, PDO::PARAM_STR); 
$q->execute(); 
$row = $q->fetch(PDO::FETCH_ASSOC); 

$email1 = $row['email']; 

$to='$email1'; 
$messageSubject='Message subject'; 
$confirmationSubject='Confirmation message subject'; 
$confirmationBody="Confirmation message body"; 
$email=''; 
    $body=''; 
$displayForm=true; 
if ($_POST){ 
$email=stripslashes($_POST['email']); 
$body=stripslashes($_POST['body']); 
// validate e-mail address 
$valid=eregi('^([0-9a-z]+[-._+&])*[0-9a-z][email protected]([-0-9a-z]+[.])+[a-z]{2,6}$',$email); 
$crack=eregi("(\r|\n)(to:|from:|cc:|bcc:)",$body); 
if ($email && $body && $valid && !$crack){ 
    if (mail($to,$messageSubject,$body,'From: '.$email."\r\n") 
     && mail($email,$confirmationSubject,$confirmationBody.$body,'From: '.$to."\r\n")){ 
    $displayForm=false; 
+1

什麼具體不起作用? – user1477388

回答

2

不要使用ereg函數。他們已被棄用,並有嚴重的問題。改用preg。

要回答你的問題,這應該是簡單的

$to = $email1; 

或更好,但跳過這個階段,做

$email1 = $row['email1']; 

隨着'單引號,你這是在強迫PHP治療$email1作爲一個字符串,而不是一個變量。因此您要嘗試發送到名爲$email1的地址,而不是$email1變量的內容。

+0

+1好。我沒有注意到單引號內的變量。 – Travesty3

+0

謝謝你這麼多,這是現在工作! – neeko