100 lines
3.6 KiB
PHP
100 lines
3.6 KiB
PHP
<?php
|
|
require_once 'db/config.php';
|
|
require_once 'header.php';
|
|
|
|
$id = $_GET['id'] ?? null;
|
|
if (!$id) {
|
|
header("Location: contacts.php");
|
|
exit;
|
|
}
|
|
|
|
$pdo = db();
|
|
|
|
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
|
|
$name = $_POST['name'] ?? '';
|
|
$company = $_POST['company'] ?? '';
|
|
$email = $_POST['email'] ?? '';
|
|
$phone = $_POST['phone'] ?? '';
|
|
$source = $_POST['source'] ?? '';
|
|
$tags = $_POST['tags'] ?? '';
|
|
|
|
if (empty($name) || empty($email)) {
|
|
$error = "Name and email are required.";
|
|
} else {
|
|
try {
|
|
$stmt = $pdo->prepare("UPDATE contacts SET name = :name, company = :company, email = :email, phone = :phone, source = :source, tags = :tags WHERE id = :id");
|
|
$stmt->execute([
|
|
':name' => $name,
|
|
':company' => $company,
|
|
':email' => $email,
|
|
':phone' => $phone,
|
|
':source' => $source,
|
|
':tags' => $tags,
|
|
':id' => $id
|
|
]);
|
|
header("Location: contacts.php?status=updated");
|
|
exit;
|
|
} catch (PDOException $e) {
|
|
$error = "Database error: " . $e->getMessage();
|
|
}
|
|
}
|
|
}
|
|
|
|
try {
|
|
$stmt = $pdo->prepare("SELECT * FROM contacts WHERE id = :id");
|
|
$stmt->execute([':id' => $id]);
|
|
$contact = $stmt->fetch();
|
|
|
|
if (!$contact) {
|
|
header("Location: contacts.php");
|
|
exit;
|
|
}
|
|
} catch (PDOException $e) {
|
|
echo "Error: " . $e->getMessage();
|
|
exit;
|
|
}
|
|
?>
|
|
|
|
<div class="container mt-4">
|
|
<h2><i class="fas fa-edit me-2"></i>Edit Contact</h2>
|
|
|
|
<?php if (!empty($error)): ?>
|
|
<div class="alert alert-danger"><?php echo $error; ?></div>
|
|
<?php endif; ?>
|
|
|
|
<form action="edit_contact.php?id=<?php echo $id; ?>" method="post" class="card p-4">
|
|
<div class="row g-3">
|
|
<div class="col-md-6">
|
|
<label for="name" class="form-label">Name</label>
|
|
<input type="text" class="form-control" id="name" name="name" value="<?php echo htmlspecialchars($contact['name']); ?>" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="company" class="form-label">Company</label>
|
|
<input type="text" class="form-control" id="company" name="company" value="<?php echo htmlspecialchars($contact['company']); ?>">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="email" class="form-label">Email</label>
|
|
<input type="email" class="form-control" id="email" name="email" value="<?php echo htmlspecialchars($contact['email']); ?>" required>
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="phone" class="form-label">Phone</label>
|
|
<input type="tel" class="form-control" id="phone" name="phone" value="<?php echo htmlspecialchars($contact['phone']); ?>">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="source" class="form-label">Source</label>
|
|
<input type="text" class="form-control" id="source" name="source" value="<?php echo htmlspecialchars($contact['source']); ?>">
|
|
</div>
|
|
<div class="col-md-6">
|
|
<label for="tags" class="form-label">Tags (comma-separated)</label>
|
|
<input type="text" class="form-control" id="tags" name="tags" value="<?php echo htmlspecialchars($contact['tags']); ?>">
|
|
</div>
|
|
</div>
|
|
<div class="mt-4">
|
|
<button type="submit" class="btn btn-primary">Save Changes</button>
|
|
<a href="contacts.php" class="btn btn-secondary">Cancel</a>
|
|
</div>
|
|
</form>
|
|
</div>
|
|
|
|
<?php require_once 'footer.php'; ?>
|