【问题标题】:Change e-mail subject更改电子邮件主题
【发布时间】:2017-01-03 09:32:49
【问题描述】:

我正在使用以下 php 脚本来处理我的表单。我不是很擅长 PHP,现在我想将 $email_subject = "Contact via website" 更改为 "Contact via website and the name of the user as enter in the form. 这可能吗。

<?php
if(isset($_POST['email'])) {
    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "info@lowie-design.be";
    $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._%-]+@[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);  
?>

【问题讨论】:

  • 不是答案,只是我看到你的脚本有一些问题在你检查帖子是否不存在的 if 语句之后,你需要输入一个 @987654322 @ 语句围绕您将 POST 值放入变量的部分。您还说 $_POST['intrests'] 不是必需的,与 $_POST['tijd'] 相同,但您在验证 if 语句中使用它们。所以如果其中一个没有设置,它就会死掉。

标签: php forms email


【解决方案1】:

就用这个吧:

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

【讨论】:

  • 数组到字符串的转换是不可能的。给[array]
  • 为什么$_POST['naam'] 应该是一个数组?他还是在使用preg_match($string_exp,$names)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-01
  • 2017-01-28
  • 2018-04-16
  • 2021-09-21
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多