Custom WordPress Page With Contact Form

I am trying to create a contact form for a WordPress site. FYI: The client wants the form to be static so they don’t need to be able to change it in the future. I found this form online. I put it into my custom page in WordPress. I also put a mail.php file on my server. When I click submit it hijacks me to my homepage/main theme page and my message is never sent. I don’t understand why it takes me to the homage an how I fix this.

enter image description here

Read More
<table width="400" border="0" align="center" cellpadding="3" cellspacing="1">
<tr>
<td><strong>Contact Form </strong></td>
</tr>
</table>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1">
<tr>
<td><form name="form1" method="post" action="mail.php">
<table width="100%" border="0" cellspacing="1" cellpadding="3">
<tr>
<td width="16%">Subject</td>
<td width="2%">:</td>
<td width="82%"><input name="subject" type="text" id="subject" size="50"></td>
</tr>
<tr>
<td>Detail</td>
<td>:</td>
<td><textarea name="detail" cols="50" rows="4" id="detail"></textarea></td>
</tr>
<tr>
<td>Name</td>
<td>:</td>
<td><input name="name" type="text" id="name" size="50"></td>
</tr>
<tr>
<td>Email</td>
<td>:</td>
<td><input name="customer_mail" type="text" id="customer_mail" size="50"></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="Submit" value="Submit"> <input type="reset" name="Submit2" value="Reset"></td>
</tr>
</table>
</form>
</td>
</tr>
</table>

Mail.php

<?php

// Contact subject
$subject ="$subject"; 

// Details
$message="$detail";

// Mail of sender
$mail_from="$customer_mail"; 

// From 
$header="from: $name <$mail_from>";

// Enter your email address
$to ='someone@somewhere.com';
$mail=mail($to,$subject,$message,$header);

// Check, if message sent to your email 
// display message "We've recived your information"
if($mail){
echo "We've recived your contact information";
}
else {
echo "ERROR";
}
?>

Related posts

Leave a Reply

1 comment

  1. This is the simplest form, it’s open to injection..

    $subject ="write something here";
    
    // Details 
    $message = "write something here";
    
    // Mail of sender 
    $mail_from = $_POST['customer_mail'];
    
    // From 
    $header="fromfrom: yourname <yourdomain@yourdomain.con>";
    
    // Enter your email address 
    $to ='$mail_from';
    

    And put the rest of the code after it..

    EDIT:

    $subject = $_POST['details'];
    
    // Mail of sender 
    $mail_from = $_POST['customer_mail'];
    
    // From 
    $name = $_POST['name'];
    
    // Details 
    $message = 'E-mail sent from: '.$mail_from.'rnName: '.$nane.'rn'.$_POST['details'];
    
    // Enter your email address 
    $to ='yourdomain@yourdomain.com';
    
    $mail=mail($to,$subject,$message);
    

    FINAL EDIT:

      <?
    
    if (isset($_POST['customer_mail'])) {
    
      $subject = $_POST['detail'];
    
      // Mail of sender 
      $mail_from = $_POST['customer_mail'];
    
      // From 
      $name = $_POST['name'];
    
      // Details 
      $message = 'E-mail sent from: '.$mail_from.'rnName: '.$name.'rn'.$_POST['detail'];
    
      // Enter your email address 
      $to ='yourdomain@yourdomain.com'; //edit this
    
      $mail=mail($to,$subject,$message);
    
      echo "Your mail has been sent";
    
    } else {
    
    ?>
    
    <table width="400" border="0" align="center" cellpadding="3" cellspacing="1"> 
      <tr> 
        <td><strong>Contact Form </strong></td> 
      </tr> 
    </table> 
    
    <table width="400" border="0" align="center" cellpadding="0" cellspacing="1"> 
      <tr> 
        <td>
          <form name="form1" method="post" action="<? echo $_SERVER['PHP_SELF']; ?>"> 
    
            <table width="100%" border="0" cellspacing="1" cellpadding="3"> 
              <tr>   
                <td width="16%">Subject</td> 
                <td width="2%">:</td> 
                <td width="82%">
                  <input name="subject" type="text" id="subject" size="50">
                </td> 
              </tr> 
              <tr> 
                <td>Detail</td> 
                <td>:</td> 
                <td>
                  <textarea name="detail" cols="50" rows="4" id="detail"></textarea>
                </td> 
              </tr> 
              <tr> 
                <td>Name</td> 
                <td>:</td> 
                <td>
                  <input name="name" type="text" id="name" size="50">
                </td> 
              </tr> 
              <tr> 
                <td>Email</td> 
                <td>:</td> 
                <td>
                  <input name="customer_mail" type="text" id="customer_mail" size="50">
                </td> 
              </tr> 
              <tr> 
                <td>&nbsp;</td> 
                <td>&nbsp;</td> 
                <td>
                  <input type="submit" name="Submit" value="Submit"> 
                  <input type="reset" name="Submit2" value="Reset">
                </td> 
              </tr> 
            </table> 
          </form> 
        </td> 
      </tr> 
    </table>
    
    
    <?
    }
    ?>