2014-03-24 51 views
-1

我有一個HTML輸入表格,用戶可以訂閱通訊。他們輸入他們的名字,姓氏和電子郵件,並將他們添加到我的sql數據庫中的表格中。發送電子郵件給所有訂閱的用戶,選擇從SQL數據庫和發送,不工作

我已經創建了第二個html表單,其中「admin」可以在主體文本框中輸入主題和消息,然後單擊發送。

現在應該發生什麼,當他們點擊發送是,主題/身體被髮送到所有用戶在sql數據庫,但它不工作!請幫忙嗎?下面的代碼:

<?php 

$user = "example"; 
$password = "example"; 
$host = "example"; 
$dbase = "example"; 
$table = "example"; 

$from= 'example';//specify here the address that you want email to be sent from 

$subject= $_POST['subject']; 
$body= $_POST['body']; 

// Connection to DBase 
$dbc= mysqli_connect($host,$user,$password, $dbase) 
or die("Unable to select database"); 

$query= "SELECT * FROM $table"; 
$result= mysqli_query ($dbc, $query) 
or die ('Error querying database.'); 

while ($row = mysqli_fetch_array($result)) { 
$firstname= $row['firstname']; 
$lastname= $row['lastname']; 
$email= $row['email']; 

$msg= "Dear $firstname $lastname,\n$body"; 
mail($to, $subject, $msg, 'From:' . $from); 
echo 'Email sent to: ' . $email. '<br>'; 
} 

mysqli_close($dbc); 
?> 

我得到確認底「電子郵件發送給(和它會顯示電子郵件)」,但它實際上並沒有發送和還我得到「未定義的變量:到」上線28 。

(我已經把例如故意在頂部)

+0

的第一個問題是,你在本地主機或服務器上的工作?如果本地主機,然後配置你的郵件? – Abhishek

+0

如果$ to未定義,則很難發送電子郵件到應該在$ to變量中的電子郵件地址:)更改$ to - > $ email。 – caRameL

+0

「undefined variable:to」是正確的原因:$ to確實沒有定義。 – mrcrgl

回答

2

在你的代碼

while ($row = mysqli_fetch_array($result)) { 
    $firstname= $row['firstname']; 
    $lastname= $row['lastname']; 
    $email= $row['email']; 

    $msg= "Dear $firstname $lastname,\n$body"; 
    mail($to, $subject, $msg, 'From:' . $from); 
    echo 'Email sent to: ' . $email. '<br>'; 
} 

您的電子郵件地址存儲在$email但您發送EMAIL。升至$to。您的郵件行應該是:

mail($email, $subject, $msg, 'From:' . $from); 

此外,應該相應地配置您的服務器mail()工作。更多詳情http://ie1.php.net/manual/en/function.mail.php

1

變化

mail($to, $subject, $msg, 'From:' . $from); 

mail($email, $subject, $msg, 'From:' . $from); 
相關問題