2017-09-23 96 views
0

我正在一個簡單的表單上只有2個字段。姓名和電子郵件。我迄今爲止成功的做法是。基於mysql查詢的自動回覆郵件使用php

  1. 我把表格發送到mysql數據庫。
  2. 我可以總共查詢數據庫,也可以根據表單條目查詢數據庫。
  3. 我已經過測試,可以使用基本郵件腳本或表單發送電子郵件。

我在哪裏運行的問題是我需要的數據也發送到提交者以及從數據庫中的第三個字段,這是自動加密主鍵作爲其成員編號。我的問題是如何根據數據庫條目發送電子郵件。

ie;謝謝您的「提交者姓名」加入您的會員ID是「主鍵」。 這是我現在的代碼。

的Index.html

<form method="post" action="doit.php"> 
    Name<input name="Name" type="text" /><br> 
    Email<input name="Email" type="text" /><br> 
    <input name="Submit" type="submit" value="submit" /> 
</form> 

doit.php

<?php 
$con = mysqli_connect('localhost','DB_Username','DB_Password'); 

if(!$con) 
{ 
    echo 'Not Connected To Server'; 
} 
if(!mysqli_select_db($con,'DB_Name')) 
{ 
    echo 'Database Not Selected'; 
} 
$Name = $_POST['Name']; 
$Email = $_POST['Email']; 

$sql = "INSERT INTO Table_name (Name,Email) VALUES ('$Name','$Email')"; 

if(!mysqli_query($con,$sql)) 
{ 
    echo 'Not Inserted'; 
} 
else 
{ 
    echo 'Inserted'; 
} 
header ("refresh:2; url=auto-response.php"); 


?> 

自動response.php

<?php 
if ($_SERVER["REQUEST_METHOD"}=="POST") { 
    $connnection=mysqli_connect("localhost","DB_username","DB_password","DB_Name"); 
    // Check connection 
    if ($connection) { 
     echo "connection successfull! <br>;" 
    } else { 
     die("connection failed. Reason ". mysqli_connect_err()) 
} 
{ 

$Email=$_POST["Email"]; 
$Name=$_POST["Name"]; 
$ID=$_POST["ID"]; 

$sql="SELECT ID,Email,Name FROM Table_Name WHERE Email='".$Email."'"; 
$result = mysqli_query($connection,$sql); 

$to  = 'Email'; 
$subject = 'Thank you For Joining'; 
$message = 'Thank you for joining "Email" Your Member ID is "ID"'; 
$headers = 'From: [email protected]' . "\r\n" . 
    'Reply-To: [email protected]' . "\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 

mail($to, $subject, $message, $headers); 
?> 
+0

我們需要的問題,你已經嘗試不工作的代碼行,我們不知道是什麼你的代碼看起來像。 – MinistryofChaps

+0

要問一個關於主題的問題,請閱讀[我可以問哪些主題](http://stackoverflow.com/help/on-topic) 和[需要避免什麼話題](https://stackoverflow.com/幫助/不要問) 和[如何問一個好問題](http://stackoverflow.com/help/how-to-ask) 和[完美的問題](http://codeblog.jonskeet.uk/2010/08/29/writing-the-perfect-question /) 以及如何創建[最小,完整和可驗證的示例](http://stackoverflow.com/help/mcve) 和[take tour] (http://stackoverflow.com/tour) – RiggsFolly

+0

也許你應該告訴我們你的表單和腳本的HTML插入到你的數據庫的新客戶端,因爲這段代碼基本上是無稽之談 – RiggsFolly

回答

0

Mysql的有自己的功能,它會給你身份證。雖然在插入時你已經有了這個名字。

// Using the below line right after your insert you can get the primary id. 
$id = $connection->insert_id; // Get latest inserted id. 

希望它有幫助。

編輯:根據你所做的編輯,我已經安排了你的代碼,以便它如何工作。現在試試這個。

的Index.html

<form method="post" action="doit.php"> 
    Name<input name="Name" type="text" /><br> 
    Email<input name="Email" type="text" /><br> 
    <input name="Submit" type="submit" value="submit" /> 
</form> 

doit.php

$con = mysqli_connect('localhost','DB_Username','DB_Password'); 

if(!$con) 
{ 
    echo 'Not Connected To Server'; 
} 
if(!mysqli_select_db($con,'DB_Name')) 
{ 
    echo 'Database Not Selected'; 
} 

$Name = $_POST['Name']; 
$Email = $_POST['Email']; 

$sql = "INSERT INTO Table_name (Name,Email) VALUES ('$Name','$Email')"; 

if(!mysqli_query($con,$sql)) 
{ 
    echo 'Not Inserted'; 
} 
else 
{ 
    echo 'Inserted'; 
    $id = $con->insert_id; // Get latest inserted id. 

    $to  = $Email; 
    $subject = 'Thank you For Joining'; 
    $message = 'Thank you for joining "'.$Name.'" Your Member ID is "'.$id.'"'; 
    $headers = 'From: [email protected]' . "\r\n" . 
     'Reply-To: [email protected]' . "\r\n" . 
     'X-Mailer: PHP/' . phpversion(); 

    mail($to, $subject, $message, $headers); 
} 
+0

Ermmm'mysql_insert_id();'如果OP插入一個新行,會很棒,但那是一個SELECT他,你在做我恐怕 – RiggsFolly

+0

哦,太棒了。既然他說他插入我編輯代碼而不看查詢。我的不好 – shazyriver

+0

修好了。迎合他的需要。 – shazyriver