2017-01-03 3 views
1

私のフォームを処理するために、次のPHPスクリプトを使用しています。私は今、私は=ウェブサイトを経由して連絡先と名前の形式で入力したユーザー」に「ウェブサイトを経由して連絡先」。このことは可能です$のEMAIL_SUBJECTを変更したい、PHPで本当に良いではないよ。電子メールの件名を変更する

<?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 ['intrests']'は必須ではありません。 '$ _POST ['tijd']'と同じですが、まだ検証if文でそれらを使用していますもしそれらのうちの1つが設定されていなければ、それは死ぬでしょう。 – Loko

答えて

2

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

なぜこれがダウンリストされていますか?私はこれもいいと思った? –

+0

文字列への変換はできません。 –

+0

'$ _POST ['naam']'はなぜ配列になるのですか?彼は 'preg_match($ string_exp、$ names)'をとにかく使っていますか? – joconja

関連する問題