Contact form with mail function and Storing data in the database – Mini Project
Project Name | Contact form with mail function and Storing data in the database |
---|---|
Language Used | PHP5.6, PHP7.x |
Database | MySQL 5.x |
User Interface Design | HTML, AJAX,JQUERY,JAVASCRIPT |
Web Browser | Mozilla, Google Chrome, IE8, OPERA |
Software | XAMPP / Wamp / Mamp/ Lamp (anyone) |
Last Updated | 02 August 2024 |
Contact form with mail function and Storing in the database project has two modules:
- User Module
- admin Module
User Module
SQL table structure for tblcontactdata table where we will store our data
1 2 3 4 5 6 7 8 9 10 11 12 13 |
CREATE TABLE `tblcontactdata` ( `id` int(11) NOT NULL, `FullName` varchar(200) DEFAULT NULL, `PhoneNumber` char(12) DEFAULT NULL, `EmailId` varchar(200) DEFAULT NULL, `Subject` varchar(255) DEFAULT NULL, `Message` mediumtext, `UserIp` varbinary(16) DEFAULT NULL, `PostingDate` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, `Is_Read` int(1) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; ALTER TABLE `tblcontactdata` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1; |
Now create an HTML for user inputs. index.php
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<form name="ContactForm" method="post"> <h4>your name</h4> <input type="text" name="name" class="user" placeholder="Johne" autocomplete="off" required> <h4>your phone number</h4> <input type="text" name="phonenumber" class="phone" placeholder="0900.234.145678" maxlength="10" required autocomplete="off"> <h4>your email address</h4> <input type="email" name="emailaddres" class="email" placeholder="Example@mail.com" required autocomplete="off"> <h4>your subject</h4> <input type="text" name="subject" class="email" placeholder="Subject" autocomplete="off"> <h4>your message</h4> <textarea class="mess" name="message" placeholder="Message" required></textarea> <input type="submit" value="send your message" name="submit"> </form> |
MySQL database connection
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<?php // DB credentials. define('DB_HOST','localhost'); define('DB_USER','root'); define('DB_PASS',''); define('DB_NAME','contactdb'); // Establish database connection. try { $dbh = new PDO("mysql:host=".DB_HOST.";dbname=".DB_NAME,DB_USER, DB_PASS,array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'")); } catch (PDOException $e) { exit("Error: " . $e->getMessage()); } ?> |
Insert Data into Database
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 |
include('config.php'); if(isset($_POST['submit'])) { // getting Post values $name=$_POST['name']; $phoneno=$_POST['phonenumber']; $email=$_POST['emailaddres']; $subject=$_POST['subject']; $message=$_POST['message']; $uip = $_SERVER ['REMOTE_ADDR']; $isread=0; // Insert quaery $sql="INSERT INTO tblcontactdata(FullName,PhoneNumber,EmailId,Subject,Message,UserIp,Is_Read) VALUES(:fname,:phone,:email,:subject,:message,:uip,:isread)"; $query = $dbh->prepare($sql); // Bind parameters $query->bindParam(':fname',$name,PDO::PARAM_STR); $query->bindParam(':phone',$phoneno,PDO::PARAM_STR); $query->bindParam(':email',$email,PDO::PARAM_STR); $query->bindParam(':subject',$subject,PDO::PARAM_STR); $query->bindParam(':message',$message,PDO::PARAM_STR); $query->bindParam(':uip',$uip,PDO::PARAM_STR); $query->bindParam(':isread',$isread,PDO::PARAM_STR); $query->execute(); $lastInsertId = $dbh->lastInsertId(); if($lastInsertId) { //mail function for sending mail $to=$email; $headers .= "MIME-Version: 1.0"."\r\n"; $headers .= 'Content-type: text/html; charset=iso-8859-1'."\r\n"; $headers .= 'From:PHPGurukul Contact Form Demo<info@phpgurukul.com>'."\r\n"; $ms.="<html></body><div> <div><b>Name:</b> $name,</div> <div><b>Phone Number:</b> $phoneno,</div> <div><b>Email Id:</b> $email,</div>"; $ms.="<div style='padding-top:8px;'><b>Message : </b>$message</div><div></div></body></html>"; mail($to,$subject,$ms,$headers); echo "<script>alert('Your info submitted successfully.');</script>"; } else { echo "<script>alert('Something went wrong. Please try again');</script>"; } } |
Admin Module
Admin Panel Features
- Secure login with password hashing
- Admin Dashboard
- Manage Contact’s
- Report’s
- Update Remark on the particular contact
- Notification feature(Admin can get the notification on every contact)
- Admin Can update email id where he/she want to receive email.
- Change Password.
- Logout.
In this project admin and user will a get copy of contact form on email. Email function will not work on localhost .
Some of the Project Screens
Home Page
Admin Dashboard
How to run Contactform Mini Project
1. Download the zip file
2. Extract the file and copy the contactform folder
3.Paste inside root directory(for xampp xamp/htdocs, for wamp wamp/www,for lamp var/www/HTML)
4. Open PHPMyAdmin (http://localhost/phpmyadmin)
5. Create a database with name contactdb
6. Import newsportal.sql file(given inside the zip package in an SQL file folder)
7.Run the script http://localhost/contactform (frontend)
8. For admin panel http://localhost/contactform/admin
**********************Credential for admin panel********************
username: admin
Password: Test@123
Project Demo