Online Pharmacy Management System Project In Php Apr 2026
if ($stmt->execute([$name, $email, $password, $phone])) header('Location: login.php?msg=registered'); else $error = "Registration failed. Email may already exist.";
1. Project Overview An Online Pharmacy Management System allows customers to browse medicines, place orders, and manage prescriptions, while administrators handle inventory, orders, and users.
Cart persistence across login/logout Solution: Merge session cart into database cart when user logs in. Conclusion This Online Pharmacy Management System covers core e-commerce functionality tailored for pharmaceutical needs. The complete source code can be built in 2-3 weeks by a mid-level PHP developer. For production, add HTTPS, implement proper logging, and comply with local pharmaceutical regulations (preservation of prescription records, data retention policies). online pharmacy management system project in php
-- Cart table CREATE TABLE cart ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, medicine_id INT, quantity INT, added_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id), FOREIGN KEY (medicine_id) REFERENCES medicines(id) );
if ($has_prescription_required && isset($ FILES['prescription'])) $target_dir = "uploads/prescriptions/"; $prescription_path = $target_dir . time() . " " . basename($_FILES['prescription']['name']); move_uploaded_file($_FILES['prescription']['tmp_name'], $prescription_path); For production, add HTTPS, implement proper logging, and
-- Medicines table CREATE TABLE medicines ( id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(200) NOT NULL, category_id INT, price DECIMAL(10,2) NOT NULL, stock INT NOT NULL, requires_prescription TINYINT DEFAULT 0, description TEXT, image VARCHAR(255), expiry_date DATE, status TINYINT DEFAULT 1, FOREIGN KEY (category_id) REFERENCES categories(id) );
$sql = "INSERT INTO medicines (name, category_id, price, stock, requires_prescription, description, image) VALUES (?, ?, ?, ?, ?, ?, ?)"; $stmt = $pdo->prepare($sql); $stmt->execute([$name, $category_id, $price, $stock, $requires_prescription, $description, $image]); " " . basename($_FILES['prescription']['name'])
-- Orders table CREATE TABLE orders ( id INT PRIMARY KEY AUTO_INCREMENT, user_id INT, order_number VARCHAR(50) UNIQUE, total_amount DECIMAL(10,2), payment_method ENUM('cod', 'card', 'online'), order_status ENUM('pending', 'confirmed', 'shipped', 'delivered', 'cancelled') DEFAULT 'pending', prescription_uploaded VARCHAR(255), created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP, FOREIGN KEY (user_id) REFERENCES users(id) );
header('Location: cart.php'); ?> <?php require_once 'includes/config.php'; if (!isset($_SESSION['user_id'])) header('Location: login.php'); exit();
?> <?php require_once 'includes/config.php'; if ($_SERVER['REQUEST_METHOD'] == 'POST') $name = $_POST['name']; $email = $_POST['email']; $password = password_hash($_POST['password'], PASSWORD_DEFAULT); $phone = $_POST['phone'];