2011-10-03 117 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

相關問題