USE contact_db;
CREATE TABLE contacts (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
email VARCHAR(255) NOT NULL,
message TEXT NOT NULL,
file_path VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
π Step 2: Create PHP Backend (submit.php
)
This file handles form submission and file upload.
<?php
$conn = new mysqli("localhost", "root", "", "contact_db");
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$name = $_POST['name'];
$email = $_POST['email'];
$message = $_POST['message'];
$file = $_FILES['file']['name'];
$target_dir = "uploads/";
$target_file = $target_dir . basename($file);
if (move_uploaded_file($_FILES['file']['tmp_name'], $target_file)) {
$sql = "INSERT INTO contacts (name, email, message, file_path) VALUES ('$name', '$email', '$message', '$target_file')";
if ($conn->query($sql) === TRUE) {
echo "Success";
} else {
echo "Error: " . $conn->error;
}
} else {
echo "File Upload Failed";
}
}
?>
π Step 3: Create HTML Form with AJAX Submission (index.php
)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>PHP Contact Form</title>
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0/dist/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
</head>
<body class="container mt-5">
<h2 class="text-center">Contact Us</h2>
<form id="contactForm" enctype="multipart/form-data">
<div class="mb-3">
<label>Name:</label>
<input type="text" name="name" class="form-control" required>
</div>
<div class="mb-3">
<label>Email:</label>
<input type="email" name="email" class="form-control" required>
</div>
<div class="mb-3">
<label>Message:</label>
<textarea name="message" class="form-control" required></textarea>
</div>
<div class="mb-3">
<label>Upload File:</label>
<input type="file" name="file" class="form-control" required>
</div>
<button type="submit" class="btn btn-primary">Send</button>
</form>
<script>
$(document).ready(function() {
$("#contactForm").submit(function(e) {
e.preventDefault();
var formData = new FormData(this);
$.ajax({
type: "POST",
url: "submit.php",
data: formData,
contentType: false,
processData: false,
success: function(response) {
alert(response);
}
});
});
});
</script>
</body>
</html>
π Step 4: Create Upload Folder
Create a folder named uploads/
in your project directory.
π Step 5: Run Project in XAMPP
- Save files inside
htdocs/contact-form/
. - Start XAMPP Apache & MySQL.
- Open
http://localhost/contact-form/index.php
.
Comments
Post a Comment