2011-10-03 82 views
0

我有一个表单,允许用户在新产品出来时选择接收通知。目前,用户的信息被验证并发送到数据库。不过,我也需要将它发送到一个电子邮件地址。发送信息(从表单)到数据库和电子邮件

这两个脚本都单独工作;尽管如此,让他们一起工作仍然很困难。

<?php 
//CHECK CAPTCHA IMAGE 
session_start(); 

if(isset($_POST['submit'])) { 
if($_SESSION['security_code'] == $_POST['security_code'] && !empty($_SESSION['security_code'])) { 
    //   IF CAPTCHA CHECKS OUT, CONTINUE TO VALIDATE DATA. 

    if(!isset($_POST['fname']) || 
     !isset($_POST['lname']) || 
     !isset($_POST['email'])) 
     { 
      echo '<script type="text/javascript">'; 
      echo 'alert("Please go back and fill out the entire form.");'; 
      echo '</script>'; 
     } 

     //   CONNECT TO DATABASE 

     $dbhost = 'DATABASE NAME'; 
     $dbuser = 'DATABASE USER'; 
     $dbpass = 'PASSWORD'; 
     $dbname = 'DATABASE NAME'; 
     $dbtable = 'TABLE NAME'; 
     $conn = mysql_connect($dbhost, $dbuser, $dbpass); 

     if(! $conn) 
     { 
     die('Could not connect: ' . mysql_error() . '<br />'); 
     } else { 
     //echo 'Connected successfully. <br />'; 
     } 

     $selected = mysql_select_db($dbname,$conn); 
     if(! $selected) 
     { 
     die('Could not connect: ' . mysql_error() . '<br />'); 
     } else { 
     //echo 'Connected successfully. <br />'; 
     } 

     $fname = mysql_real_escape_string(stripslashes($_POST['fname'])); 
     $lname = mysql_real_escape_string(stripslashes($_POST['lname'])); 
     $email = mysql_real_escape_string(stripslashes($_POST['email'])); 
     $today = date("Y-m-d H-i-s"); 

     if (mysql_query("INSERT INTO $dbtable(fname, lname, email, date) VALUES('$fname', '$lname', '$email', '$today')") != true) 
     { 
      echo ("ERROR: " . mysql_error() . "<br />");  
     } else { 
      //echo 'Thank you, your information has been entered into our database. <br />'; 

     } 

     mysql_close($conn); // CLOSE DATABASE 

     include('../thankyou.html');  

     unset($_SESSION['security_code']); //END SESSION 
} else //  IF CAPTCHA DOESN'T CHECK OUT, DISPLAY ERROR MESSAGE. 

{ 
    echo '<script type="text/javascript">'; 
    echo 'alert("Sorry, you have provided an invalid security code.")'; 
    echo '</script>'; 
} 
} 

?> 

我试过,包括形式到电子邮件脚本作为“包括”我尝试了两个脚本整合成一个,但既不是迄今工作。

任何想法将不胜感激..谢谢!

回答

0

关闭mysql连接后,尝试使用PHP邮件功能。例如...

$my_email =无论您希望发送到哪个地址。

$subject =电子邮件的主题行。

$message =电子邮件的内容,如果您愿意,可以包含您的变量和html格式。喜欢的东西:

$message = " $time (Central Time) \n 
From: $visitor ($visitormail)\n 
Message: $notes 
"; 

$headers =报头信息,是这样的:

$headers = "From: $visitormail \r\n" . 
    "Reply-To: $visitormail \r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

...与发送电子邮件......

mail("$my_email", $subject, $message, $headers); 

,然后你可以重定向到另一页有:

header("Location: http://example.com/thankyou.html"); 
+0

所以,我试过这种方法;整个脚本运行时没有任何错误并写入数据库,但信息仍未发送到我选择的电子邮件。 我不认为有一种方法可以通过电子邮件向PHP MyAdmin数据库添加新增内容,是否存在(如意算盘)? –

+0

然后我不确定;我会说这很可能是服务器配置问题。你能用这个服务器的另一种方法发送电子邮件吗?我个人比PHPMyAdmin更喜欢Adminer,它更干净,更易于使用。 – webmonkey

-1
<?php 

    $dbhost = ''; 
    $dbuser = ''; 
    $dbpass = ''; 
    $dbname = ''; 
    $dbtable = 'webagents'; 
    //$conn = mysql_connect($dbhost, $dbuser, $dbpass); 
    $conn = mysqli_connect($dbhost, $dbuser, $dbpass); 
    //$conn = mysqli_connect($dbhost,$dbuser,$dbpass,$dbname); 
    if(!$conn) 
    { 
    die('Could not connect: ' . mysqli_error() . '<br />'); 
    } else { 
    //echo 'Connected successfully. <br />'; 
    } 

    $selected = mysqli_select_db($conn,$dbname); 
    if(! $selected) 
    { 
    die('Could not connect: ' . mysqli_error() . '<br />'); 
    } else { 
    //echo 'Connected successfully. <br />'; 
    } 

    $cname = mysqli_real_escape_string($conn, $_POST['compname']); 
    $cperson = mysqli_real_escape_string($conn, $_POST['contperson']); 
    $email = mysqli_real_escape_string($conn, $_POST['email']); 
    $phone = mysqli_real_escape_string($conn, $_POST['phone']); 
    $country = mysqli_real_escape_string($conn, $_POST['country']); 

    if (mysqli_query($conn,"INSERT INTO $dbtable(compname, contperson, email, phone, country) VALUES('".$cname."','".$cperson."', '".$email."', '".$phone."', '".$country."')") != true) 

    { 
     echo ("ERROR: " . mysqli_error($conn) . "<br />"); 
     //die (mysqli_error($myConnection));  
    } else { 
     echo 'Thank you, your information has been entered into our database. <br />'; 
    } 
    mysqli_close($conn); // CLOSE DATABASE 

?> 
+0

欢迎使用堆栈溢出,请查看:https://stackoverflow.com/help/how-to-answer – Daniel

相关问题