2011-11-14 65 views
0

我有一個表格,客戶填寫個人數據,並作出有關服務的選擇。因此,利用$ _GET函數檢索該表單的信息,進行一些基本的數學計算並顯示所有信息,以便客戶可以預覽訂單,然後點擊「發送」以確認作業。PHP郵件:頁面內容到郵件

我需要通過郵件向我發送預覽訂單,但我不知道如何發送所有。我知道如何從表單中檢索數據然後發送,但不知道如何發送這些變量。

FORM

// I am omitting elements to make this shorter  
<select name="Amount"> 
     <option value="1">1</option> 
     <option value="2">2</option> 
     <option value="3">3</option> 
    </select> 

預覽整理

$price = 5; 

    // I am omitting elements to make this shorter 
    // here I do some math  
    $Amount = $_GET['Amount']; 
     // check value and select appropriate item 
     if ($Amount== "1") { 
      $extra = "1"; 
      } 
     elseif ($Amount == "2") { 
      $extra = "2"; 
      } 
     elseif ($Amount == "3") { 
      $extra = "3"; 


// here is the order preview and this is what I need to email to myself 
// the customer should look this preview and then HIT a confirm buttom to get this sent 

<?php echo $Name;?><br> 
<?php echo $Address;?><br> 
<?php echo $E-mail;?><br> 
<?php echo $Phone;?><br> 
Your order: <?php echo $extra . " " . "products, for a total of" . " " . ($price * $extra); ?> 

--------------------最終版本------- --------感謝你們所有人!

我將只使用2場,以縮小代碼

//形式 - 用戶條目他的數據

<form method="get" id="order" action="order-info.php"> 
<h1>Personal Info</h1> 
<p>name: <input name="name" type="text" /></p> 
<p>email: <input name="surname" type="text" /></p> 
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Continue"> 
</form> 

//訂購預覽 - 在這裏,用戶可以預覽

- 他的所有數據和產品有關的選擇的確認訂單

<?php session_start(); ?> 
<?php 
// get info personal 
$Name = $_GET['name']; 
$Email = $_GET['email']; 
?> 
// Now I echo the info 
<h2><?php echo $Name . " " . $Email ; ?><br></h2> 
<?php 
    // here's where the magic is done thanks to Sheldon Ferns! 
    $_SESSION['customerInfo']['name'] = $Name; 
    $_SESSION['customerInfo']['email'] = $Email; 

?> 
// having stored all the info in a session I proceed to send it to the email function. That weird name is because I read you should avoid naming your email process file with predictable names like mail.php, this increases protection against spammers. 
<form method ="POST" action = "xljkadf.php"> 
<INPUT TYPE = "Submit" Name = "Submit1" VALUE = "Confirm Order"> 

// MAIL過程之前

+0

喜,一些投入.. 1.under MAIL過程 - 我看到二硝基甲苯任何使用foreach($ _ REQUEST as $ fields => $ value).... 2.我建議你使用header('Location:http://www.yoursite.com/thank-you.html');出口();之後的郵件()函數,而不是window.location.href –

回答

0

你想,當用戶點擊從預覽頁面SEND按鈕發送的電子郵件。但是你不知道如何獲取客戶正在預覽的PHP數據;因爲Send不提交表單。
它這是你的問題是什麼的話,這裏是你能做什麼

當客戶提交的,在previewOrder php文件可以保存在會話變量中的信息..如

<?php 
    session_start(); ?> 
    //The php code you have already written. 

    //Saving data in session 
    <?php 
    $_SESSION['customerInfo']['Name'] = $Name; 
    $_SESSION['customerInfo']['Address'] = $Address; 
    $_SESSION['customerInfo']['Email'] = $Email; 
    $_SESSION['customerInfo']['Phone'] = $Phone; 
    $_SESSION['customerInfo']['Extra'] = $Extra; 
?> 

注session_start()必須位於文件的開頭。現在

,從預覽頁面,當用戶點擊發送按鈕,您必須將頁面直接像sendOrder.php一個文件,它應該像這樣的事情

<?php 
    session_start(); 
    $mailBody = "Order Info: \n". 
       "Name: ".$_SESSION['customerInfo']['Name'] . "\n". 
       "Address: " .$_SESSION['customerInfo']['Address'] . "\n". 
       "Email: " .$_SESSION['customerInfo']['Email'] . "\n". 
       "Phone: " .$_SESSION['customerInfo']['Email'] . "\n". 
       "Price: " .$_SESSION['customerInfo']['Price'] . "\n". 
       "Extra: " .$_SESSION['customerInfo']['Extra'] . "\n"; 

    mail('[email protected]', 'Order Information', $mailBody); 

?> 

你在做什麼這裏讀書您在預覽中保存在會話中的值。 SESSIONS是一種可以使頁面間變量可用的方法。

希望這有助於

PS.I沒有測試代碼的語法errors.Please糾正他們,如果任何:)

+0

非常感謝謝爾登!我的工作就像魅力!我實現了你的解決方案並粘貼上面的最終代碼!再次感謝好友! – user1044994

+0

不客氣。如果答案有幫助,請將答案標記爲已接受。謝謝 :) –

0

如果我正確理解你的問題,你需要知道如何發送一些使用PHP的電子郵件的內容。 請參閱php中的mail函數。文檔here。參數message可以包含您的內容。還要仔細閱讀文檔中的示例,您會了解實施的情況。

0

作出這樣的字符串(我省略了換行和額外格式):

$mystring = 'Name: '.$Name.', Address: '.$Address.', E-mail: '.$E-mail.', $Phone: '.$Phone;

然後通過mail()發送:

mail('[email protected]', 'My Subject', $mystring);

0

$mailBody將捕捉一切你在ob_start()ob_get_clean()之間回顯。 mail()函數將發送電子郵件給你。

<?php ob_start(); ?> 
<?php echo $Name;?><br> 
<?php echo $Address;?><br> 
<?php echo $E-mail;?><br> 
<?php echo $Phone;?><br> 
Your order: <?php echo $extra . " " . "products, for a total of" . " " . ($price * $extra); ?> 
<?php $mailBody = ob_get_clean(); 

mail('[email protected]', 'Mail Subject', $mailBody); 

?>