PHP Contact form with checkboxes

2019-09-19 01:07发布

I'm having a terrible time trying to get my contact form to work. I have almost no php experience. I am trying to make this form e-mail to myself but have no idea what I am doing basically.

I need it to e-mail a copy of the form to my e-mail and also make sure the checkboxes show which boxes were clicked.

If anyone could help I would appreciate it.

Here is my html

<form name="htmlform" method="post" action="send_form_email.php">
<table width="561">
<tr>
 <td width="212" align="right" valign="top">
  <label for="name">*Name</label>
 </td>
 <td width="337" valign="top">
  <input  type="text" name="name" maxlength="150" size="50">
 </td>
</tr>
<tr>
 <td valign="top" align="right">
  <label for="company">*Company</label>
 </td>
 <td width="337" valign="top">
  <input  type="text" name="name" maxlength="150" size="50">
 </td>
</tr>
<tr>
 <td valign="top" align="right">
  <label for="telephone">Phone</label>
 </td>
 <td valign="top">
  <input  type="text" name="telephone" maxlength="150" size="50">
 </td>
</tr>
<tr>
 <td valign="top" align="right">
  <label for="email">*Email Address</label>
 </td>
 <td valign="top">
  <input  type="text" name="email" maxlength="180" size="50">
 </td>
 </tr>
 <tr>
 <td valign="top" align="right">
  <label for="services">*Current Services<br />
(check all that apply)</label>
 </td>
 <td valign="top">
<input type="checkbox" name="services[]" value="none" />&nbsp;None<br />

<input type="checkbox" name="services[]" value="coffee" />&nbsp;Coffee<br />

<input type="checkbox" name="services[]" value="vending" />&nbsp;Vending<br />

<input type="checkbox" name="services[]" value="watercoolers" />&nbsp;Water Coolers<br />

<input type="checkbox" name="services[]" value="cafeteria" />&nbsp;Cafeteria<br />

 </td>
 </tr>
<tr>
 <td valign="top" align="right">
  <label for="comments">*Comments</label>
 </td>
 <td valign="top">
  <textarea  name="comments" maxlength="1000" cols="40" rows="6"></textarea>
 </td>

</tr>
<tr>
 <td colspan="2" style="text-align:center">
  <center><input type="submit" value="Submit Form"></center>
 </td>
</tr>
</table>
</form>

Here is my php.

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

    // EDIT THE 2 LINES BELOW AS REQUIRED
    $email_to = "michael@mrugenus.com";
    $email_subject = "Contact form";

    $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 .= "Telephone: ".clean_string($telephone)."\n";
    $email_message .= "Services: ".implode(",", $_POST['services'])."\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); 
?>

<!-- include your own success html here -->
<center>
<img src="images/logo.png" />
  <br>
  <br>
  Thank you for contacting us.  We will be in touch.<br>
<br>
 <a href="index.html">HOME</a></center>

<?php
}
?>

标签: php forms
2条回答
你好瞎i
2楼-- · 2019-09-19 01:51

Ok Its fixed: PHP file:

<?php
error_reporting(-1);
ini_set('display_errors', 'On');
if(isset($_POST['email'])) {

// EDIT THE 2 LINES BELOW AS REQUIRED
$email_to = "someone@gmail.com";
$email_subject = "Contact form";
$email_from = "from@from.com";

$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($_POST["name"])."\n";
$email_message .= "Email: ".clean_string($_POST["email"])."\n";
$email_message .= "Telephone: ".clean_string($_POST["telephone"])."\n";
$email_message .= "Services: ".implode(" ", $_POST['services'])."\n";
$email_message .= "Comments: ".clean_string($_POST["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); 
?>

<!-- include your own success html here -->
<center>
<img src="images/logo.png" />
  <br>
  <br>
  Thank you for contacting us.  We will be in touch.<br>
<br>
 <a href="index.html">HOME</a></center>

<?php
}
?>
查看更多
干净又极端
3楼-- · 2019-09-19 01:58

Here is a sample code, which uses SELECT, CHECKBOX, TEXTBOX to get you going:

    <form name="prf_form" method="post" action="email.php">
    <input type="text" class=tBox title="This should be a 'C-Level' or VP" id="eSponsor" name="esponsor"></input>
    <select name="sponsorinform">
        <option value="Yes">Yes</option>
        <option value="No" SELECTED>No</option>
    </select>
    <input type=checkbox name="pj_regulatory" value="Regulatory" /> Regulatory<img src="bLine.png" width=20 /><input type=checkbox name="pj_revenhancement" value="Revenue Enhancement" /> Revenue Enhancement
    </form>

The email.php:

       // Clean up the input values 
        foreach($_POST as $key => $value) {  
            $_POST[$key] = stripslashes($_POST[$key]); 

            $_POST[$key] = htmlspecialchars(strip_tags($_POST[$key])); 
        }
    $esponsor = trim(strip_tags(stripslashes($_POST['esponsor'])));
    $sponsorinform = trim(strip_tags(stripslashes($_POST['sponsorinform'])));
    $pj_regulatory = trim(strip_tags(stripslashes($_POST['pj_regulatory'])));
    $pj_revenhancement = trim(strip_tags(stripslashes($_POST['pj_revenhancement'])));

    echo $esponsor; //displays the text entered
    echo $sponsorinform; //displays YES or NO
    echo $pj_regulatory;
    echo $pj_revenhancement;

$sentMailSubject = "Project Request From $customerfname $customerlname";

// To send HTML mail, the Content-type header must be set
$sentHeader  = 'MIME-Version: 1.0' . "\r\n";
$sentHeader .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
//$to  = 'aidan@example.com' . ', '; // note the comma
//$to .= 'wez@example.com';
// ^^^^^ for multiple email address
$sentHeader .= 'From: ' . $customerfname . ' <' . $userEmail . '>' . "\r\n";

$sentMailBody = "TEST";

$toEmail = "youremail@yourdomain.com, someoneelse@some.com";

mail($toEmail, $sentMailSubject, $sentMailBody, $sentHeader); //send to us
查看更多
登录 后发表回答