Proje Yapısı:- index.php: Ziyaretçi kayıt formu ve mevcut ziyaretçilerin listesi
- add_visitor.php: Ziyaretçi ekleme işlemlerini gerçekleştiren PHP dosyası
- update_visitor.php: Ziyaretçinin çıkış saatini güncelleyen PHP dosyası
- database.php: Veritabanı bağlantısını sağlayan PHP dosyası
- style.css: Bootstrap ve özel CSS stillerini içeren dosya
1. index.php (Ziyaretçi Kayıt Formu ve Listesi): <!DOCTYPE html>
<html>
<head>
<title>Ziyaretçi Kayıt Sistemi</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container mt-5">
<h2>Ziyaretçi Kayıt Formu</h2>
<form action="add_visitor.php" method="post">
<div class="form-group">
<label for="adSoyad">Ad Soyad:</label>
<input type="text" class="form-control" id="adSoyad" name="adSoyad" required>
</div>
<div class="form-group">
<label for="geldigiYer">Geldiği Yer:</label>
<input type="text" class="form-control" id="geldigiYer" name="geldigiYer" required>
</div>
<div class="form-group">
<label for="gorecegiKisi">Görüşeceği Kişi:</label>
<input type="text" class="form-control" id="gorecegiKisi" name="gorecegiKisi" required>
</div>
<button type="submit" class="btn btn-primary">Kaydet</button>
</form>
<h2>Mevcut Ziyaretçiler</h2>
<table class="table table-striped">
<thead>
<tr>
<th>ID</th>
<th>Ad Soyad</th>
<th>Geldiği Yer</th>
<th>Görüşeceği Kişi</th>
<th>Giriş Saati</th>
<th>Çıkış Saati</th>
<th>İşlemler</th>
</tr>
</thead>
<tbody>
<?php
require_once 'database.php'; // Veritabanı bağlantısı
$sql = "SELECT * FROM visitors WHERE cikis_saati IS NULL";
$result = $conn->query($sql);
if ($result->num_rows > 0) {
while($row = $result->fetch_assoc()) {
echo "<tr>";
echo "<td>" . $row["id"] . "</td>";
echo "<td>" . $row["ad_soyad"] . "</td>";
echo "<td>" . $row["geldigi_yer"] . "</td>";
echo "<td>" . $row["gorecegi_kisi"] . "</td>";
echo "<td>" . $row["giris_saati"] . "</td>";
echo "<td>";
if ($row["cikis_saati"] == NULL) {
echo "<form action='update_visitor.php' method='post'>";
echo "<input type='hidden' name='visitorId' value='" . $row["id"] . "'>";
echo "<button type='submit' class='btn btn-danger btn-sm'>Çıkış Yap</button>";
echo "</form>";
} else {
echo $row["cikis_saati"];
}
echo "</td>";
echo "</tr>";
}
} else {
echo "<tr><td colspan='7'>Henüz kayıtlı ziyaretçi yok.</td></tr>";
}
$conn->close();
?>
</tbody>
</table>
</div>
<script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.1/dist/umd/popper.min.js"></script>
<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.2/js/bootstrap.min.js"></script>
</body>
</html>2. add_visitor.php (Ziyaretçi Ekleme):
<?php
require_once 'database.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$adSoyad = $_POST["adSoyad"];
$geldigiYer = $_POST["geldigiYer"];
$gorecegiKisi = $_POST["gorecegiKisi"];
$girisSaati = date("Y-m-d H:i:s"); // Şu anki zaman
$sql = "INSERT INTO visitors (ad_soyad, geldigi_yer, gorecegi_kisi, giris_saati)
VALUES ('$adSoyad', '$geldigiYer', '$gorecegiKisi', '$girisSaati')";
if ($conn->query($sql) === TRUE) {
header("Location: index.php"); // Kayıt başarılıysa index.php'ye yönlendir
} else {
echo "Hata: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>3. update_visitor.php (Çıkış Saati Güncelleme):
<?php
require_once 'database.php';
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$visitorId = $_POST["visitorId"];
$cikisSaati = date("Y-m-d H:i:s");
$sql = "UPDATE visitors SET cikis_saati='$cikisSaati' WHERE id=$visitorId";
if ($conn->query($sql) === TRUE) {
header("Location: index.php");
} else {
echo "Hata: " . $sql . "<br>" . $conn->error;
}
$conn->close();
}
?>4. database.php (Veritabanı Bağlantısı): <?php
$servername = "localhost"; // Sunucu adı (genellikle localhost)
$username = "your_username"; // Veritabanı kullanıcı adı
$password = "your_password"; // Veritabanı şifresi
$dbname = "your_database"; // Veritabanı adı
// Create connection
$conn = new mysqli($servername, $username, $password, $dbname);
// Check connection
if ($conn->connect_error) {
die("Veritabanı bağlantısı başarısız: " . $conn->connect_error);
}
?> Veritabanı Oluşturma (visitors tablosu): CREATE TABLE visitors (
id INT(6) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
ad_soyad VARCHAR(50) NOT NULL,
geldigi_yer VARCHAR(50) NOT NULL,
gorecegi_kisi VARCHAR(50) NOT NULL,
giris_saati DATETIME NOT NULL,
cikis_saati DATETIME
);