2011-10-07 113 views
0

我在我的payment-status.php文件中使用了郵件腳本。 我正在使用支付網關API,用戶在支付完成後用他的所有詳細信息(例如電話號碼,電子郵件,地址等)填充html表單,並在「數據庫」 transaction_status'Php郵件腳本問題

問題是郵件程序腳本無法從事務成功的數據庫中獲取用戶電子郵件ID。 而交易成功狀態存儲在不同的表格中,而不是存儲用戶詳細信息的表格。

本應該被用來獲取用戶的電子郵件ID誰是交易成功應該是這樣的

$ sql_query =一些事情查詢「從billing_guest選擇電子郵件,其中transaction_status =」交易成功」

這是郵件腳本,我用

$query = "SELECT email FROM billing_guests WHERE email = '" . $_POST["email"] . "'"; 
    $result = mysql_query($query) or die(mysql_error()); 
    $data = mysql_fetch_assoc($result); 
    $entry = mysql_num_rows($result); 
    //Check if entry exists 
    if($entry !== 0){ 
    $message = $data['email']; 
    $to = "$_POST["email"]" ; 
    $from = "domain-id"; 
    $Subject = "Hi"; 
    $headers = "MIME-Version: 1.0\r\n"; 
    $headers .= "Content-type: text/html; charset=iso-885n-l\r\n"; 

    $headers .= "From: $from\r\n"; 
    $message .="Thank You"; 

    if(mail($to, $from, $subject, $message, $headers)){ 
     echo 'Email sent'; 
    }else{ 
     echo 'Failed sending email'; 
    } 
    }else{ 
    echo 'No email entry found'; 
    }      
    mysql_close($conn); 
+0

除了 「選擇電子郵件FROM ... WHERE電子郵件。」'是不是有點多餘? –

+0

看起來使用'COUNT(*)'而不是獲取電子郵件地址會更好。不過,你對[巨大的安全漏洞](http://bobby-tables.com/)是正確的。 – Quentin

+0

是的,我剛纔說得很糟糕,但我的意思是。 –

回答

0

你有synthax錯誤的位置:

$to = "$_POST["email"]" ; 

把上面一行

$to = $_POST["email"]; 

而且也是參數的郵件功能是

mail($to, $subject, $message, $headers) 
從巨大的安全漏洞,'