Need to use bold tags in php

2020-02-02 01:08发布

I have this form done it complete and working fine when the form is submitted the information is emailed to an email id but all the content is shown in plain text when it delivers I want that when the form information reaches the email id it it should the field names in bold.

<?php 
$errors = '';
$myemail = 'abc@email.com';//<-----Put Your email address here.


if(
empty ($_POST['fullname']) ||
empty ($_POST['martialstatus']) ||
empty ($_POST['dateofbirth']) ||
empty ($_POST['email']) ||
empty ($_POST['telephone']) ||
empty ($_POST['cell']) ||
empty ($_POST['graduation']) ||
empty ($_POST['yearatt']) ||
empty ($_POST['department']) ||
empty ($_POST['program']) ||
empty ($_POST['permanentaddress']) ||
empty ($_POST['currentemp']) ||
empty ($_POST['designation']) ||
empty ($_POST['selfemp']) ||
empty ($_POST['officeemail']) ||
empty ($_POST['officetele']) ||
empty ($_POST['portfolio']) ||
empty ($_POST['membership']))

{
    $errors .= "\n Error: all fields are required";
}

$fullname = $_POST['fullname'];
$martialstatus = $_POST['martialstatus'];
$dateofbirth = $_POST['dateofbirth'];
$email = $_POST['email'];
$telephone = $_POST['telephone'];
$cell = $_POST['cell'];
$graduation = $_POST['graduation'];
$yearatt = $_POST['yearatt'];
$department = $_POST['department'];
$program = $_POST['program'];
$permanentaddress = $_POST['permanentaddress'];
$currentemp = $_POST['currentemp'];
$designation = $_POST['designation'];
$selfemp = $_POST['selfemp'];
$officeemail = $_POST['officeemail'];
$officetele = $_POST['officetele'];
$portfolio = $_POST['portfolio']; 
$membership = $_POST['membership'];



if( empty($errors))
{
    $to = $myemail; 
    $email_subject = "Membership Information: $fullname";
    $email_body = "You have received a new message. ".
    " Here are the details:\n  Personal Information \n\n 
    Name:                      $fullname \n 
    Martial Status:            $martialstatus \n 
    Date of Birth:             $dateofbirth \n 
    Email:                     $email \n 
    Telephone:                 $telephone \n 
    Cell:                      $cell \n 
    Year of Graduation:        $graduation \n 
    Years Attended:             $yearatt \n
    Department:                $department \n 
    Program Attended:          $program \n 
    Permanent Address:         $permanentaddress \n\n 
    Career Information \n\n 
    Currently Employeed with:  $currentemp \n 
    Designation:               $designation \n 
    Self Employeed:            $selfemp \n 
    Office Email:              $officeemail \n 
    Office Telephone:          $officetele \n 
    Portfolio:                 $portfolio \n\n 
    MemberShip \n\n 
    Type of MemberShip:        $membership \n\n "; 

    $headers = "From: $myemail\n"; 
    $headers .= "Reply-To: $email";

    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: contact-form-thank-you.html');
} 
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>
<head>
    <title>Contact form handler</title>
</head>

<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>


</body>
</html>

标签: php html css
6条回答
相关推荐>>
2楼-- · 2020-02-02 01:35

I took the liberty of re-writing quite a bit, mostly because there is so much repetition, and a huge security issue.

One could make several further improvements on this as well, but that's left as an exercise to the reader.

<?php
$errors = '';
$myemail = 'abc@email.com';//<-----Put Your email address here.

$fields = array(
    'fullname' => 'Name',
    'martialstatus' => 'Martial Status',
    'dateofbirth' => 'Date of Birth',
    'email' => 'Email',
    'telephone' => 'Telephone',
    'cell' => 'Cell',
    'graduation' => 'Year of Graduation',
    'yearatt' => 'Years Attended',
    'department' => 'Department',
    'program' => 'Program Attended',
    'permanentaddress' => 'Permanent Address',
    'currentemp' => 'Currently Employeed with',
    'designation' => 'Designation',
    'selfemp' => 'Self Employeed',
    'officeemail' => 'Office Email',
    'officetele' => 'Office Telephone',
    'portfolio' => 'Portfolio',
    'membership' => 'Type of MemberShip',
);

// Don't allow HTML in form.
foreach ($_POST as $key => $value) {
    $_POST[$key] = strip_tags($value);
}

$missing_fields = array_diff_assoc($fields, $_POST);

if (count($missing_fields) > 0) {
    $errors .= "\n Error: all fields are required";
}

if (empty($errors)) {
    $to = $myemail;
    $email_subject = 'Membership Information: ' . $_POST['fullname'];
    $email_body = 'You have received a new message. Here are the details:<br />  Personal Information <br/ ><br/ >';
    foreach (array('fullname', 'martialstatus', 'dateofbirth', 'email', 'telephone', 'cell', 'graduation', 'yearatt', 'department', 'program', 'permanentaddress') as $key) {
      $email_body .= $fields[$key] . ': <strong>' . $_POST[$key] . "</strong><br />";
    }

    $email_body .= "Career Information <br /><br />";

    foreach (array('currentemp', 'designation', 'selfemp', 'officeemail', 'officetele', 'portfolio') as $key) {
      $email_body .= $fields[$key] . ': <strong>' . $_POST[$key] . "</strong><br />";
    }

    $email_body .= "MemberShip <br /><br />";

    foreach (array('membership') as $key) {
      $email_body .= $fields[$key] . ': <strong>' . $_POST[$key] . "</strong><br />";
    }

    $headers = "From: $myemail\r\n";
    $headers .= "Reply-To: $myemail\r\n";
    $headers .= "MIME-Version: 1.0\r\n";
    $headers .= "Content-type: text/html; charset=iso-8859-1\r\n";

    mail($to,$email_subject,$email_body,$headers);
    //redirect to the 'thank you' page
    header('Location: contact-form-thank-you.html');
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
    <title>Contact form handler</title>
</head>

<body>
<!-- This page is displayed only if there is some error -->
<?php
echo nl2br($errors);
?>


</body>
</html>
查看更多
乱世女痞
3楼-- · 2020-02-02 01:48

You headers must always end with `\r\n"

This is wrong

$headers = "From: $myemail\n"; 
$headers .= "Reply-To: $email";

It should be like this

$headers = "From: $myemail\r\n";
$headers .= "Reply-To: $email\r\n";
$headers .= 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

You need to add HTML tags in your mail

Example

 Name:                      <strong>$fullname</strong><br />
查看更多
疯言疯语
4楼-- · 2020-02-02 01:51

You'll need to add the Content-type header, and add HTML tags to the email you're sending. So:

$headers = "From: $myemail\n"; 
$headers .= "Reply-To: $email\n";
$headers .= "Content-type: text/html";

Also, you'll need to convert \n to HTML line breaks, so:

$email_body = nl2br($email_body);
mail($to,$email_subject,$email_body,$headers);
查看更多
家丑人穷心不美
5楼-- · 2020-02-02 01:54

Be sure to add headers, as specified on Mail page documentation

$headers .= 'MIME-Version: 1.0' . "\r\n";  
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

then use markup to compose your email

查看更多
6楼-- · 2020-02-02 01:56

Bold text can be done with an HTML email, set the content type header:

$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/html;\r\n";

Use the <strong> tag:

<strong>Name:</strong>                      $fullname <br />

Don't forget \n won't show a new line in an HTML email, you'll need to use <br />.

查看更多
Explosion°爆炸
7楼-- · 2020-02-02 01:57

Make sure to send the email in HTML format and change the respective line to

Email:                     <b>$email</b> \n
查看更多
登录 后发表回答