2011-10-07 92 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) 
从巨大的安全漏洞,'