Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d63ebb2066 | ||
|
|
f29fa66d41 |
62
assets/css/custom.css
Normal file
62
assets/css/custom.css
Normal file
@ -0,0 +1,62 @@
|
||||
|
||||
body {
|
||||
font-family: 'Helvetica Neue', Arial, sans-serif;
|
||||
color: #212529;
|
||||
background-color: #f8f9fa;
|
||||
}
|
||||
|
||||
h1, h2, h3, h4, h5, h6 {
|
||||
font-family: Georgia, serif;
|
||||
}
|
||||
|
||||
.navbar {
|
||||
transition: background-color 0.3s ease-in-out;
|
||||
}
|
||||
|
||||
.navbar-sticky {
|
||||
background-color: rgba(255, 255, 255, 0.95);
|
||||
box-shadow: 0 2px 4px rgba(0,0,0,.04);
|
||||
}
|
||||
|
||||
.hero {
|
||||
color: white;
|
||||
padding: 12rem 0;
|
||||
background: linear-gradient(45deg, rgba(13, 110, 253, 0.7), rgba(13, 110, 253, 0.9)), url('https://picsum.photos/seed/hero/1600/900') no-repeat center center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.hero h1 {
|
||||
font-size: 4.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 6rem 0;
|
||||
}
|
||||
|
||||
.card {
|
||||
border: none;
|
||||
box-shadow: 0 0.5rem 1rem rgba(0,0,0,.15);
|
||||
}
|
||||
|
||||
.btn-primary {
|
||||
background-color: #0d6efd;
|
||||
border-color: #0d6efd;
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-weight: bold;
|
||||
transition: background-color 0.2s, border-color 0.2s;
|
||||
}
|
||||
|
||||
.btn-primary:hover {
|
||||
background-color: #0b5ed7;
|
||||
border-color: #0a58ca;
|
||||
}
|
||||
|
||||
.btn-secondary {
|
||||
padding: 0.75rem 1.5rem;
|
||||
font-weight: bold;
|
||||
}
|
||||
|
||||
footer {
|
||||
background-color: #e9ecef;
|
||||
}
|
||||
36
assets/js/main.js
Normal file
36
assets/js/main.js
Normal file
@ -0,0 +1,36 @@
|
||||
|
||||
document.addEventListener('DOMContentLoaded', function () {
|
||||
// Sticky header
|
||||
const navbar = document.querySelector('.navbar');
|
||||
if (navbar) {
|
||||
window.addEventListener('scroll', () => {
|
||||
if (window.scrollY > 50) {
|
||||
navbar.classList.add('navbar-sticky');
|
||||
} else {
|
||||
navbar.classList.remove('navbar-sticky');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
// Smooth scrolling for anchor links
|
||||
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
||||
anchor.addEventListener('click', function (e) {
|
||||
e.preventDefault();
|
||||
document.querySelector(this.getAttribute('href')).scrollIntoView({
|
||||
behavior: 'smooth'
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Contact form validation
|
||||
const contactForm = document.getElementById('contactForm');
|
||||
if (contactForm) {
|
||||
contactForm.addEventListener('submit', function(e) {
|
||||
if (!this.checkValidity()) {
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
}
|
||||
this.classList.add('was-validated');
|
||||
}, false);
|
||||
}
|
||||
});
|
||||
11
db/migrations/001_create_users_table.sql
Normal file
11
db/migrations/001_create_users_table.sql
Normal file
@ -0,0 +1,11 @@
|
||||
CREATE TABLE IF NOT EXISTS `users` (
|
||||
`id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`username` varchar(50) NOT NULL,
|
||||
`password` varchar(255) NOT NULL,
|
||||
`email` varchar(100) NOT NULL,
|
||||
`role` enum('Admin','User/Member','Viewer','Auditor') NOT NULL DEFAULT 'User/Member',
|
||||
`created_at` datetime DEFAULT CURRENT_TIMESTAMP,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `username` (`username`),
|
||||
UNIQUE KEY `email` (`email`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
|
||||
12
includes/footer.php
Normal file
12
includes/footer.php
Normal file
@ -0,0 +1,12 @@
|
||||
|
||||
<footer class="py-4 mt-auto">
|
||||
<div class="container text-center">
|
||||
<p class="mb-0 text-muted">© <?php echo date('Y'); ?> CoffreFort. All Rights Reserved.</p>
|
||||
<a href="privacy.php" class="text-muted">Privacy Policy</a>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/js/bootstrap.bundle.min.js"></script>
|
||||
<script src="assets/js/main.js?v=<?php echo time(); ?>"></script>
|
||||
</body>
|
||||
</html>
|
||||
60
includes/header.php
Normal file
60
includes/header.php
Normal file
@ -0,0 +1,60 @@
|
||||
<?php if (session_status() == PHP_SESSION_NONE) { session_start(); } ?><!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<title>CoffreFort</title>
|
||||
<meta name="description" content="Securely share documents with your team. Built with Flatlogic Generator.">
|
||||
<meta name="keywords" content="secure document sharing, file collaboration, team file sharing, business file management, secure file transfer, project documents, digital asset management, CoffreFort, Built with Flatlogic Generator">
|
||||
|
||||
<!-- Open Graph / Facebook -->
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:title" content="CoffreFort">
|
||||
<meta property="og:description" content="Securely share documents with your team. Built with Flatlogic Generator.">
|
||||
<meta property="og:image" content="<?php echo isset($_SERVER['PROJECT_IMAGE_URL']) ? $_SERVER['PROJECT_IMAGE_URL'] : '' ?>">
|
||||
|
||||
<!-- Twitter -->
|
||||
<meta property="twitter:card" content="summary_large_image">
|
||||
<meta property="twitter:title" content="CoffreFort">
|
||||
<meta property="twitter:description" content="Securely share documents with your team. Built with Flatlogic Generator.">
|
||||
<meta property="twitter:image" content="<?php echo isset($_SERVER['PROJECT_IMAGE_URL']) ? $_SERVER['PROJECT_IMAGE_URL'] : '' ?>">
|
||||
|
||||
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.2/dist/css/bootstrap.min.css" rel="stylesheet">
|
||||
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap-icons@1.11.3/font/bootstrap-icons.min.css">
|
||||
<link rel="stylesheet" href="assets/css/custom.css?v=<?php echo time(); ?>">
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<nav class="navbar navbar-expand-lg navbar-light bg-transparent fixed-top">
|
||||
<div class="container">
|
||||
<a class="navbar-brand fw-bold" href="index.php">CoffreFort</a>
|
||||
<button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#navbarNav" aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
|
||||
<span class="navbar-toggler-icon"></span>
|
||||
</button>
|
||||
<div class="collapse navbar-collapse" id="navbarNav">
|
||||
<ul class="navbar-nav ms-auto">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="index.php#about">About</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="index.php#features">Features</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="index.php#contact">Contact</a>
|
||||
</li>
|
||||
<?php if (isset($_SESSION['user_id'])): ?>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="#">Welcome, <?php echo htmlspecialchars($_SESSION['username']); ?></a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-outline-primary ms-lg-2" href="logout.php">Logout</a>
|
||||
</li>
|
||||
<?php else: ?>
|
||||
<li class="nav-item">
|
||||
<a class="btn btn-outline-primary ms-lg-2" href="login.php">Login</a>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</nav>
|
||||
293
index.php
293
index.php
@ -1,150 +1,153 @@
|
||||
<?php
|
||||
declare(strict_types=1);
|
||||
@ini_set('display_errors', '1');
|
||||
@error_reporting(E_ALL);
|
||||
@date_default_timezone_set('UTC');
|
||||
<?php include 'includes/header.php'; ?>
|
||||
|
||||
$phpVersion = PHP_VERSION;
|
||||
$now = date('Y-m-d H:i:s');
|
||||
?>
|
||||
<!doctype html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="utf-8" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<title>New Style</title>
|
||||
<?php
|
||||
// Read project preview data from environment
|
||||
$projectDescription = $_SERVER['PROJECT_DESCRIPTION'] ?? '';
|
||||
$projectImageUrl = $_SERVER['PROJECT_IMAGE_URL'] ?? '';
|
||||
?>
|
||||
<?php if ($projectDescription): ?>
|
||||
<!-- Meta description -->
|
||||
<meta name="description" content='<?= htmlspecialchars($projectDescription) ?>' />
|
||||
<!-- Open Graph meta tags -->
|
||||
<meta property="og:description" content="<?= htmlspecialchars($projectDescription) ?>" />
|
||||
<!-- Twitter meta tags -->
|
||||
<meta property="twitter:description" content="<?= htmlspecialchars($projectDescription) ?>" />
|
||||
<?php if (isset($_SESSION['user_id'])): ?>
|
||||
|
||||
<div class="container mt-5 pt-5">
|
||||
<h1 class="display-5">Welcome to your Dashboard, <?php echo htmlspecialchars($_SESSION['username']); ?>!</h1>
|
||||
<p class="lead">This is your private area. More features will be added soon.</p>
|
||||
|
||||
<?php if ($_SESSION['role'] === 'Admin'): ?>
|
||||
<div class="alert alert-info">
|
||||
You are logged in as an <strong>Admin</strong>. You have full access to the system.
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<?php if ($projectImageUrl): ?>
|
||||
<!-- Open Graph image -->
|
||||
<meta property="og:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
|
||||
<!-- Twitter image -->
|
||||
<meta property="twitter:image" content="<?= htmlspecialchars($projectImageUrl) ?>" />
|
||||
<?php endif; ?>
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;700&display=swap" rel="stylesheet">
|
||||
<style>
|
||||
:root {
|
||||
--bg-color-start: #6a11cb;
|
||||
--bg-color-end: #2575fc;
|
||||
--text-color: #ffffff;
|
||||
--card-bg-color: rgba(255, 255, 255, 0.01);
|
||||
--card-border-color: rgba(255, 255, 255, 0.1);
|
||||
}
|
||||
body {
|
||||
margin: 0;
|
||||
font-family: 'Inter', sans-serif;
|
||||
background: linear-gradient(45deg, var(--bg-color-start), var(--bg-color-end));
|
||||
color: var(--text-color);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
min-height: 100vh;
|
||||
text-align: center;
|
||||
overflow: hidden;
|
||||
position: relative;
|
||||
}
|
||||
body::before {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-image: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" width="100" height="100" viewBox="0 0 100 100"><path d="M-10 10L110 10M10 -10L10 110" stroke-width="1" stroke="rgba(255,255,255,0.05)"/></svg>');
|
||||
animation: bg-pan 20s linear infinite;
|
||||
z-index: -1;
|
||||
}
|
||||
@keyframes bg-pan {
|
||||
0% { background-position: 0% 0%; }
|
||||
100% { background-position: 100% 100%; }
|
||||
}
|
||||
main {
|
||||
padding: 2rem;
|
||||
}
|
||||
.card {
|
||||
background: var(--card-bg-color);
|
||||
border: 1px solid var(--card-border-color);
|
||||
border-radius: 16px;
|
||||
padding: 2rem;
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
box-shadow: 0 8px 32px 0 rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
.loader {
|
||||
margin: 1.25rem auto 1.25rem;
|
||||
width: 48px;
|
||||
height: 48px;
|
||||
border: 3px solid rgba(255, 255, 255, 0.25);
|
||||
border-top-color: #fff;
|
||||
border-radius: 50%;
|
||||
animation: spin 1s linear infinite;
|
||||
}
|
||||
@keyframes spin {
|
||||
from { transform: rotate(0deg); }
|
||||
to { transform: rotate(360deg); }
|
||||
}
|
||||
.hint {
|
||||
opacity: 0.9;
|
||||
}
|
||||
.sr-only {
|
||||
position: absolute;
|
||||
width: 1px; height: 1px;
|
||||
padding: 0; margin: -1px;
|
||||
overflow: hidden;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
white-space: nowrap; border: 0;
|
||||
}
|
||||
h1 {
|
||||
font-size: 3rem;
|
||||
font-weight: 700;
|
||||
margin: 0 0 1rem;
|
||||
letter-spacing: -1px;
|
||||
}
|
||||
p {
|
||||
margin: 0.5rem 0;
|
||||
font-size: 1.1rem;
|
||||
}
|
||||
code {
|
||||
background: rgba(0,0,0,0.2);
|
||||
padding: 2px 6px;
|
||||
border-radius: 4px;
|
||||
font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
||||
}
|
||||
footer {
|
||||
position: absolute;
|
||||
bottom: 1rem;
|
||||
font-size: 0.8rem;
|
||||
opacity: 0.7;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<main>
|
||||
|
||||
<div class="row mt-5">
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<h1>Analyzing your requirements and generating your website…</h1>
|
||||
<div class="loader" role="status" aria-live="polite" aria-label="Applying initial changes">
|
||||
<span class="sr-only">Loading…</span>
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Documents</h5>
|
||||
<p class="card-text">Manage your documents here.</p>
|
||||
<a href="#" class="btn btn-primary">Go to Documents</a>
|
||||
</div>
|
||||
<p class="hint"><?= ($_SERVER['HTTP_HOST'] ?? '') === 'appwizzy.com' ? 'AppWizzy' : 'Flatlogic' ?> AI is collecting your requirements and applying the first changes.</p>
|
||||
<p class="hint">This page will update automatically as the plan is implemented.</p>
|
||||
<p>Runtime: PHP <code><?= htmlspecialchars($phpVersion) ?></code> — UTC <code><?= htmlspecialchars($now) ?></code></p>
|
||||
</div>
|
||||
</main>
|
||||
<footer>
|
||||
Page updated: <?= htmlspecialchars($now) ?> (UTC)
|
||||
</footer>
|
||||
</body>
|
||||
</html>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Users</h5>
|
||||
<p class="card-text">Manage users here.</p>
|
||||
<a href="#" class="btn btn-primary">Go to Users</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="card">
|
||||
<div class="card-body">
|
||||
<h5 class="card-title">Settings</h5>
|
||||
<p class="card-text">System settings.</p>
|
||||
<a href="#" class="btn btn-primary">Go to Settings</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php else: ?>
|
||||
|
||||
<!-- Hero Section -->
|
||||
<header class="hero text-center">
|
||||
<div class="container">
|
||||
<h1 class="display-3 fw-bold">Securely Share Your Documents</h1>
|
||||
<p class="lead my-4">A professional, simple, and secure platform for sharing files with your team and clients.</p>
|
||||
<a href="#contact" class="btn btn-primary btn-lg">Get Started</a>
|
||||
<a href="login.php" class="btn btn-secondary btn-lg">Login</a>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<!-- About Section -->
|
||||
<section id="about" class="section bg-white">
|
||||
<div class="container">
|
||||
<div class="row align-items-center">
|
||||
<div class="col-lg-6">
|
||||
<h2 class="fw-bold">Your Private Document Hub</h2>
|
||||
<p class="lead text-muted">CoffreFort provides a secure environment where you can upload, manage, and share your important files. Say goodbye to insecure email attachments and consumer-grade file sharing services.</p>
|
||||
<p>Built for businesses and professionals who need control and visibility over their shared data. Manage users, set permissions, and track activity with ease.</p>
|
||||
</div>
|
||||
<div class="col-lg-6 text-center">
|
||||
<img src="https://picsum.photos/seed/about/800/600" class="img-fluid rounded shadow-lg" alt="A modern office environment with professionals collaborating.">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Features Section -->
|
||||
<section id="features" class.section">
|
||||
<div class="container">
|
||||
<div class="text-center mb-5">
|
||||
<h2 class="fw-bold">Features Designed for Security and Ease of Use</h2>
|
||||
<p class="lead text-muted">Everything you need to collaborate securely.</p>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="card h-100 text-center p-4">
|
||||
<div class="card-body">
|
||||
<i class="bi bi-shield-lock-fill fs-1 text-primary"></i>
|
||||
<h3 class="card-title h4 mt-3">Admin User Creation</h3>
|
||||
<p class="card-text">Admins have full control over user accounts, ensuring only authorized individuals can access the system. Self-registration is disabled to maintain a secure, private environment.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="card h-100 text-center p-4">
|
||||
<div class="card-body">
|
||||
<i class="bi bi-people-fill fs-1 text-primary"></i>
|
||||
<h3 class="card-title h4 mt-3">Role-Based Access</h3>
|
||||
<p class="card-text">Assign roles like Admin, User, Viewer, and Auditor to manage permissions effectively. Each role has specific capabilities, from full control to view-only access.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 mb-4">
|
||||
<div class="card h-100 text-center p-4">
|
||||
<div class="card-body">
|
||||
<i class="bi bi-clock-history fs-1 text-primary"></i>
|
||||
<h3 class="card-title h4 mt-3">Audit Logs & Alerts</h3>
|
||||
<p class="card-text">Keep track of all activity with detailed audit logs. Receive automated alerts for important events like new user sign-ups and storage quotas nearing their limit.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- Contact Section -->
|
||||
<section id="contact" class="section bg-white">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 mx-auto text-center">
|
||||
<h2 class="fw-bold">Get in Touch</h2>
|
||||
<p class="lead text-muted mb-5">Have questions? We'd love to hear from you. Fill out the form below and we'll get back to you as soon as possible.</p>
|
||||
<form id="contactForm" class="needs-validation" novalidate>
|
||||
<div class="row g-3">
|
||||
<div class="col-md-6">
|
||||
<div class="form-floating">
|
||||
<input type="text" class="form-control" id="name" placeholder="Your Name" required>
|
||||
<label for="name">Your Name</label>
|
||||
<div class="invalid-feedback">A name is required.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-floating">
|
||||
<input type="email" class="form-control" id="email" placeholder="Your Email" required>
|
||||
<label for="email">Your Email</label>
|
||||
<div class="invalid-feedback">A valid email is required.</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-12">
|
||||
<div class="form-floating">
|
||||
<textarea class="form-control" id="message" placeholder="Your Message" style="height: 150px;" required></textarea>
|
||||
<label for="message">Your Message</label>
|
||||
<div class="invalid-feedback">A message is required.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary btn-lg mt-4">Send Message</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<?php endif; ?>
|
||||
|
||||
<?php include 'includes/footer.php'; ?>
|
||||
|
||||
62
login.php
Normal file
62
login.php
Normal file
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
session_start();
|
||||
require_once 'db/config.php';
|
||||
|
||||
$error = '';
|
||||
|
||||
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
||||
if (empty($_POST['username']) || empty($_POST['password'])) {
|
||||
$error = 'Username and password are required.';
|
||||
} else {
|
||||
try {
|
||||
$stmt = db()->prepare("SELECT * FROM users WHERE username = ?");
|
||||
$stmt->execute([$_POST['username']]);
|
||||
$user = $stmt->fetch();
|
||||
|
||||
if ($user && password_verify($_POST['password'], $user['password'])) {
|
||||
$_SESSION['user_id'] = $user['id'];
|
||||
$_SESSION['username'] = $user['username'];
|
||||
$_SESSION['role'] = $user['role'];
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
} else {
|
||||
$error = 'Invalid credentials.';
|
||||
}
|
||||
} catch (PDOException $e) {
|
||||
$error = "Database error: " . $e->getMessage();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
include 'includes/header.php';
|
||||
?>
|
||||
|
||||
<div class="container mt-5">
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-6">
|
||||
<div class="card">
|
||||
<div class="card-header">
|
||||
<h4>Login</h4>
|
||||
</div>
|
||||
<div class="card-body">
|
||||
<?php if ($error): ?>
|
||||
<div class="alert alert-danger"><?php echo $error; ?></div>
|
||||
<?php endif; ?>
|
||||
<form action="login.php" method="post">
|
||||
<div class="mb-3">
|
||||
<label for="username" class="form-label">Username</label>
|
||||
<input type="text" class="form-control" id="username" name="username" required>
|
||||
</div>
|
||||
<div class="mb-3">
|
||||
<label for="password" class="form-label">Password</label>
|
||||
<input type="password" class="form-control" id="password" name="password" required>
|
||||
</div>
|
||||
<button type="submit" class="btn btn-primary">Login</button>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php include 'includes/footer.php'; ?>
|
||||
7
logout.php
Normal file
7
logout.php
Normal file
@ -0,0 +1,7 @@
|
||||
<?php
|
||||
session_start();
|
||||
session_unset();
|
||||
session_destroy();
|
||||
header('Location: index.php');
|
||||
exit;
|
||||
?>
|
||||
38
privacy.php
Normal file
38
privacy.php
Normal file
@ -0,0 +1,38 @@
|
||||
<?php include 'includes/header.php'; ?>
|
||||
|
||||
<main class="container section">
|
||||
<h1>Privacy Policy</h1>
|
||||
<p>This is a placeholder for the Privacy Policy page. Replace this text with your actual privacy policy.</p>
|
||||
<p>Effective Date: <?php echo date('Y-m-d'); ?></p>
|
||||
|
||||
<h2>1. Introduction</h2>
|
||||
<p>Welcome to CoffreFort. We respect your privacy and are committed to protecting your personal data. This privacy notice will inform you as to how we look after your personal data when you visit our website (regardless of where you visit it from) and tell you about your privacy rights and how the law protects you.</p>
|
||||
|
||||
<h2>2. Information We Collect</h2>
|
||||
<p>We may collect, use, store and transfer different kinds of personal data about you which we have grouped together as follows:</p>
|
||||
<ul>
|
||||
<li>Identity Data includes first name, last name, username or similar identifier.</li>
|
||||
<li>Contact Data includes billing address, delivery address, email address and telephone numbers.</li>
|
||||
<li>Technical Data includes internet protocol (IP) address, your login data, browser type and version, time zone setting and location, browser plug-in types and versions, operating system and platform, and other technology on the devices you use to access this website.</li>
|
||||
</ul>
|
||||
|
||||
<h2>3. How We Use Your Information</h2>
|
||||
<p>We will only use your personal data when the law allows us to. Most commonly, we will use your personal data in the following circumstances:</p>
|
||||
<ul>
|
||||
<li>Where we need to perform the contract we are about to enter into or have entered into with you.</li>
|
||||
<li>Where it is necessary for our legitimate interests (or those of a third party) and your interests and fundamental rights do not override those interests.</li>
|
||||
<li>Where we need to comply with a legal obligation.</li>
|
||||
</ul>
|
||||
|
||||
<h2>4. Data Security</h2>
|
||||
<p>We have put in place appropriate security measures to prevent your personal data from being accidentally lost, used or accessed in an unauthorised way, altered or disclosed.</p>
|
||||
|
||||
<h2>5. Your Legal Rights</h2>
|
||||
<p>Under certain circumstances, you have rights under data protection laws in relation to your personal data, including the right to request access, correction, erasure, restriction of processing, to object to processing, as well as the right to data portability.</p>
|
||||
|
||||
<h2>6. Contact Us</h2>
|
||||
<p>If you have any questions about this privacy notice, please contact us at contact@coffrefort.com</p>
|
||||
|
||||
</main>
|
||||
|
||||
<?php include 'includes/footer.php'; ?>
|
||||
Loading…
x
Reference in New Issue
Block a user