2012-04-03 121 views
0

的一部分,所以我相当新的PHP(与它的工作有点,但不是很多)。我有一个表单提交发送到我的电子邮件。问题是,我想在我的主题行的答案之一。例如:他们选择的错误,我想我的题目是“网站:虫”,或“网站:其他”这取决于他们选择什么形式的主题。PHP:表单提交asnwer电子邮件主题

<?php 
if(isset($_POST['email'])) {  

    $email_to = "[email protected]"; 
    $email_subject = "Site: Submission"; 

    function died($error) { 
     // your error code can go here 
     echo "We are very sorry, but there were error(s) found with the form you submitted. "; 
     echo "These errors appear below.<br /><br />"; 
     echo $error."<br /><br />"; 
     echo "Please go back and fix these errors.<br /><br />"; 
     die(); 
    } 

    // validation expected data exists 
    if(!isset($_POST['name']) || 
     !isset($_POST['email']) || 
     !isset($_POST['subject']) || 
     !isset($_POST['comments'])) { 
     died('We are sorry, but there appears to be a problem with the form you submitted.');  
    } 

    $name = $_POST['name']; // required 
    $email_from = $_POST['email']; // required 
    $subject = $_POST['subject']; // drop down menu 
    $comments = $_POST['comments']; // required 

    $error_message = ""; 
    $email_exp = '/^[A-Za-z0-9._%-][email protected][A-Za-z0-9.-]+\.[A-Za-z]{2,4}$/'; 
    if(!preg_match($email_exp,$email_from)) { 
    $error_message .= 'The Email Address you entered does not appear to be valid.<br />'; 
    } 
    $string_exp = "/^[A-Za-z .'-]+$/"; 
    if(!preg_match($string_exp,$name)) { 
    $error_message .= 'The Name you entered does not appear to be valid.<br />'; 
    } 
    if(strlen($comments) < 2) { 
    $error_message .= 'The Comments you entered do not appear to be valid.<br />'; 
    } 
    if(strlen($error_message) > 0) { 
    died($error_message); 
    } 

    $email_message = "Form details below.\n\n"; 

    function clean_string($string) { 
     $bad = array("content-type","bcc:","to:","cc:","href"); 
     return str_replace($bad,"",$string); 
    } 

    $email_message .= "Name: ".clean_string($name)."\n"; 
    $email_message .= "Email: ".clean_string($email_from)."\n"; 
    $email_message .= "Subject: ".clean_string($subject)."\n"; 
    $email_message .= "Comments: ".clean_string($comments)."\n"; 


// create email headers 
    $headers = 'From: '.$email_from."\r\n". 
    'Reply-To: '.$email_from."\r\n" . 
    'X-Mailer: PHP/' . phpversion(); 
    @mail($email_to, $email_subject, $email_message, $headers); 
    ?> 

    Thank you for you submission. 

    <?php 
    } 
    die(); 
    ?> 

任何帮助表示赞赏。很抱歉,如果这是一个简单的问题,但是我无法找到使用谷歌的答案。

回答

1

假设你想在邮件主题中$subject内容,把这样的事情只是电子邮件标题前:

[...] 
if (isset($subject)) { 
    $email_subject = 'Site: '.$subject; 
} 

// create email headers 
[...] 
+0

这!!!!!感谢兄弟,它是我错过的if(isset)。我有内部的一部分,但它只是冻结了某些原因。谢谢! – LiverpoolFTW 2012-04-03 14:52:32

1

如果我理解正确的话,你 - 只需将其添加到主题:

$subject = $_POST['subject']; // drop down menu 
$email_subject = "Site: ".$subject; 

先得到$subject然后将其添加到您的变量$ EMAIL_SUBJECT只是$改变这种$email_subject

1

EMAIL_SUBJECT =”网站:“。 $ _POST [ 'varname的'];

但OFC验证,如果它是没有下拉菜单中是很重要的

0

添加的东西像这样你的形式。

<select name="subject"> 
    <option value="Site: Bug">Bug</option> 
    <option value="Site: Other">Other</option> 
</select>