2014-01-08 54 views
1

我在寫一個簡單的PHP表單。對於表單中的一個字段,如果它與字段佔位符中的文本匹配,我想替換該變量的內容,因此它不會在電子郵件中發送。更改與字符串匹配的POST變量

<p>Base Colour Preference 
     <input type="text" name="basecolour" value="ENTER BASE COLOUR"> 
</p> 

+

if ($basecolour == "ENTER BASE COLOUR") { 
    $basecolour = "No colour chosen"; 
} 

應該改變變量,不應該嗎?而是通過電子郵件發送「ENTER BASE COLOR」的原始字符串。下面是整個代碼:

<?php 

$name = $_POST['name']; 
$email = $_POST['email']; 
$basecolour = $_POST['basecolour']; 
$highlightcolour = $_POST['highlightcolour']; 
$comments = $_POST['comments']; 

$header = "from <$email>"; 

$message = "From: $name \nBase Colour: $basecolour \nHighlight Colour: $highlightcolour \nComments: $comments"; 

$to = "[email protected]"; 

$subject ="Preorder Registration"; 

if ($basecolour == "ENTER BASE COLOUR") { 
    $basecolour = "No colour chosen"; 
} 

if ($name == "YOUR NAME") { 
echo "Please enter your name"; 
} 

if ($email == "YOUR EMAIL") { 
    echo "Please enter your email address"; 
} 

else { 
mail($to, $subject, $message, $header) or die("error!"); 
echo "DONE"; 
} 

?> 

任何幫助最受讚賞!我還在學習:)

+0

「我還在學習」學習如何使用輸入驗證和轉義。恕我直言,這是第一個要做的。 – rabudde

回答

2

您需要將此您if後聲明

$message = "From: $name \nBase Colour: $basecolour \nHighlight Colour: $highlightcolour \nComments: $comments"; 

加入!

原因:因爲您已將值ENTER BASE COLOUR指定爲$message變量。

+1

當然啊!謝謝! :) –

0

我的強烈建議下不是一個有效的答案:

您應該使用HTML5佔位符屬性,而不是在值插入,因爲所有的現代瀏覽器現在支持HTML5。然後 驗證您的表單,如果它們是強制性的,或者在表單處理中選中null並在郵件正文中給出適當的值。

<input type="text" name="basecolour" value="" placeholder="ENTER BASE COLOUR">