2017-01-03 118 views
1

我正在使用以下php脚本来处理我的表单。我不是在PHP真的很好,现在我想改变$ EMAIL_SUBJECT =为“通过网站联系和名称在表单中输入用户“通过网站联系。”这是可能的。更改电子邮件主题

<?php 
if(isset($_POST['email'])) { 
    // EDIT THE 2 LINES BELOW AS REQUIRED 
    $email_to = "[email protected]"; 
    $email_subject = "Contact via website"; 

    function died($error) { 
     // your error code can go here 
     echo "Onze verontschuldigen maar er is een fout gebeurd met het formulier dat u heeft ingevuld. "; 

     echo "Volgende fouten hebben zich voorgedaan:<br/><br/>"; 
     echo $error."<br/><br/>"; 
     echo "Probeer alsjeblieft opnieuw.<br/><br/>"; 
     die(); 
    } 

// validation expected data exists 
if(!isset($_POST['naam']) || !isset($_POST['email']) ||  !isset($_POST['interesse']) || !isset($_POST['tijd']) || !isset($_POST['details'])) { 
    died('Het spijt ons, maar er blijkt een probleem zich voor te doen met het formulier dat je hebt ingevuld.'); 
} 

$names = $_POST['naam']; // required 
$email_from = $_POST['email']; // required 
$intrests = $_POST['interesse']; // not required 
$time = $_POST['tijd']; // not required 
$comments = $_POST['details']; // 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 .= 'U heeft een ongeldig e-mail adres ingegeven.<br />'; 
} 

$string_exp = "/^[A-Za-z .'-]+$/"; 
if(!preg_match($string_exp,$names)) { 
    $error_message .= 'U heeft een ongeldige naam ingegeven.<br />'; 
} 
if(strlen($comments) < 2) { 
    $error_message .= 'U heeft ongeldige commentaar ingegeven.<br />'; 
} 
if(strlen($error_message) > 0) { 
    died($error_message); 
} 
$email_message = "Formulier details volgen:\n\n"; 

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

$email_message .= "Naam: ".clean_string($names)."\n"; 
$email_message .= "E-mail: ".clean_string($email_from)."\n"; 
$email_message .= "Interesse in: ".clean_string($intrests)."\n"; 
$email_message .= "Tijdsbestek: ".clean_string($time)."\n"; 
$email_message .= "Details: ".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); 
?> 
+0

**不是一个答案,只是一些事情,我看到你的脚本错误后if语句你检查后不存在,你需要把'else'声明你将POST值放到变量中的部分,你也可以说'$ _POST ['intrests']'不是必需的,与'$ _POST ['tijd']'一样',但你在验证if语句中使用它们所以如果其中一个没有设定,它就会死亡。 – Loko

回答

2

只是使用这个:

$email_subject = "Contact via website from " . $_POST['naam']; 
+0

为什么这是downvoted?我认为这很好? –

+0

数组到字符串的转换是不可能的。给出'[array]' –

+0

为什么'$ _POST ['naam']'是一个数组?他正在使用'preg_match($ string_exp,$ names)'反正? – joconja