muratozsaycom adlı üyeden alıntı: mesajı görüntüle
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
);
merhaba'lar hocam $_POST kısımlarında " htmlspecialchars " kullanırsanız sizin için daha saglıklı olur ve database.php'de pdo kullansanız sizin için daha iyi olurdu iyi calısmalar dilerim