Hi, so i have done a few tutorials in making a contact form. But the important part is missing, how do i submit it to an email ? The php form code i made is as below: <!DOCTYPE HTML> <html> <head> <style> .error {color: #FF0000;} </style> </head> <body> <?php // define variables and set to empty values $nameErr = $emailErr = $genderErr = $websiteErr = ""; $name = $email = $gender = $comment = $website = ""; if ($_SERVER["REQUEST_METHOD"] == "POST") { if (empty($_POST["name"])) { $nameErr = "Name is required"; } else { $name = $_REQUEST['name']; if (!preg_match("/^[a-zA-Z ]*$/",$name)) { $nameErr = "Only letters and white space allowed"; } } if (empty($_POST["email"])) { $emailErr = "Email is required"; } else { $email = $_REQUEST['email']; if (!filter_var($email, FILTER_VALIDATE_EMAIL)) { $emailErr = "Invalid email format"; } } if (empty($_POST["website"])) { $website = ""; } else { $website = $_REQUEST['website']; } if (empty($_POST["comment"])) { $comment = ""; } else { $comment = $_REQUEST['comment']; } if (empty($_POST["gender"])) { $genderErr = "Gender is required"; } else { $gender = $_REQUEST['gender']; } } ?> <h2>PHP Form Validation Example</h2> <p><span class="error">* required field must fill in!.</span></p> <form method="post" action="<?php echo htmlspecialchars($_SERVER["PHP_SELF"]);?>"> Name: <input type="text" name="name"> <span class="error">* <?php echo $nameErr;?></span> <br><br> E-mail: <input type="text" name="email"> <span class="error">* <?php echo $emailErr;?></span> <br><br> Website: <input type="text" name="website"> <span class="error"><?php echo $websiteErr;?></span> <br><br> Comment: <textarea name="comment" rows="5" cols="40"></textarea> <br><br> Gender: <input type="radio" name="gender" value="female">Female <input type="radio" name="gender" value="male">Male <span class="error">* <?php echo $genderErr;?></span> <br><br> <input type="submit" name="submit" value="Submit"> </form> <?php echo "<h2>Your Input:</h2>"; echo "Name:$name"; echo "<br>"; echo "Email:$email"; echo "<br>"; echo "Website: $website"; echo "<br>"; echo "Comment:$comment"; echo "<br>"; echo "Gender: $gender"; ?> </body> </html>
That contact-page is... rather garbage, here's some updated code, which include a way to send email (however, that sending code isn't secure) - it's a starting point: <?php echo '<!DOCTYPE html> <html> <head> <title>Contact form</title> <style> .error,.required {color: #FF0000;} form { width: 30em; } label { font-weight: bold; margin-top: 1em; display: inline-block; width: 8em; } input, textarea { margin-top: 1em; min-width: 60%; } input[type=submit] { margin: 1em auto; display: block; } </style> </head> <body>'; $name = (isset($_POST['name'])) ? $_POST['name'] : ''; $email = (isset($_POST['email'])) ? $_POST['email'] : ''; $website = (isset($_POST['website'])) ? $_POST['website'] : ''; $comment = (isset($_POST['comment'])) ? $_POST['comment'] : ''; $gender = (isset($_POST['gender'])) ? $_POST['gender'] : ''; $nameErr = (isset($_POST['submit']) && empty($_POST['name']) ? 'Name is required' : (!preg_match('/^[a-zA-Z ]*$/',$_POST['name']) ? 'Only letters and whitespace allowed' : '')); $emailErr = (isset($_POST['submit']) && empty($_POST['email']) ? 'Email is required' : (isset($_POST['submit']) && !filter_var($_POST['email'], FILTER_VALIDATE_EMAIL) ? 'Invalid email format' : '')); $genderErr = (isset($_POST['submit']) && empty($_POST['gender']) ? 'Gender is required' : ''); echo ' <h2>PHP Form Validation Example</h2> <p class="required">* required field must filled in!</p> <form method="post"> <label for="name">Name: <span class="required">*</span></label> <input type="text" id="name" name="name" required><br>'; if (!empty($nameErr)) { echo '<span class="error">'.$nameErr.'</span><br>'; } echo ' <label for="email">E-mail: <span class="required">*</span></label> <input type="email" id="email" name="email" required><br>'; if (!empty($emailErr)) { echo '<span class="error">'.$emailErr.'</span><br>'; } echo ' <label for="website">Website: </label> <input type="text" id="website" name="website"><br> <label for="comment">Comment: </label> <textarea id="comment" name="comment"></textarea><br> <label>Gender: <span class="required">*</span></label><br> <label for="female">Female: </label><input type="radio" id="female" name="gender" value="female"><br> <label for="male">Male: </label><input type="radio" id="male" name="gender" value="male">'; if (!empty($genderErr)) { echo '<span class="error">'.$genderErr.'</span><br>'; } echo '<input type="submit" name="submit" value="Submit"> </form>'; if (isset($_POST['submit']) && empty($nameErr) && empty($emailErr) && empty($genderErr)) { echo '<h3>Your Input:</h3> <ul> <li>Name: '.$name.'</li> <li>Email: '.$email.'</li> <li>Website: '.$website.'</li> <li>Comment: '.$comment.'</li> <li>Gender: '.$gender.'</li> </ul>'; $email_recipient = 'insert an email to send it to here'; $subject = 'This was posted'; $message = 'Sender: '.$name.' '.$email; $message .= 'Website: '.$website; $message .= 'Comment: '.$comment; send_mail($email_recipient,$subject,$message,'From: '.$email.''); } echo '</body> </html>'; ?> PHP: