Verdiğiniz PHP kodu örnek bir veritabanı bağlantısı kurmayı ve bir ayarlar tablosundaki verileri kontrol etmeyi gösterir. Eğer site_durum değeri 1 olarak ayarlanmışsa, yani site bakım modundaysa, kullanıcıya bir bakım modu uyarı sayfası gösterilir ve ayrıca JavaScript ile sağ tık fonksiyonelliği devre dışı bırakılır.
Ancak kodunuzda düzeltilmesi gereken bazı noktalar var:
  1. Parola Açıklaması: Kodunuzdaki şifre yer tutucusunu (********) doğru bir şekilde kullandınız. Gerçek veritabanı parolanızı kodunuzda, özellikle de kamuoyuna açık bir ortamdaysa, asla paylaşmamalısınız.
  2. Hata Yakalama: PDOException yakalandığında, "Database Bağlantısı Kurulmadı!" mesajını ve ardından $error->getMessage() ile hata mesajını echo ile yazdırmalısınız. Şu anda bunları noktalı virgül ( ile yan yana yazmışsınız, bu düzeltilmeli. Aşağıda bu kısmı düzenleyeceğim.
  3. Script Sonlandırma: die() fonksiyonunu kullanarak bakım modu sayfası içeriğini yazdırıyorsunuz, bu doğru bir yaklaşım ancak bakım sayfası içeriğinin sonunda HTML olmayan ve ulaşılamayacak gereksiz içerikler var. JavaScript için <script> etiketi HTML içerisinde ve </body> etiketinin öncesinde yer almalı.
  4. Dil Etiketi: HTML etiketinizde lang="en" (İngilizce) dil belirteci varken içerik başka bir dilde görünüyor. Buna uygun bir dil belirteci kullanmalısınız.
Şimdi bu sorunları düzeltelim:



<?php

$user = "ilan"; // VERİTABANI KULLANICI ADINI YERINE YAZIN
$pass = "********"; // VERİTABANI ŞİFRENİZİ YERINE YAZIN

// Veritabanı bağlantısını deneme
try {
$db = new PDO("mysql:host=localhost; dbname=ilan; charset=utf8;", $user, $pass);
} catch (PDOException $error) {
echo "Veritabanı bağlantısı başarısız: " . $error->getMessage();
exit; // Eğer veritabanı bağlantısı başarılı değilse scripti sonlandır
}

// Ayarlar tablosundan veri çekme
$ayarlar = $db->query('SELECT * FROM ayarlar')->fetch();

// Eğer ayarlar başarıyla çekilirse, ayarları değişkenlere ata
if ($ayarlar) {
$sitetitle = $ayarlar['site_title'];
$site = $ayarlar['site_url'];
$desc = $ayarlar['site_desc'];
$keyw = $ayarlar['site_keyw'];
$bakim = $ayarlar['site_durum'];

// Eğer site bakım modunda ise
if ($bakim == 1) {
// Bakım modu sayfasını göster
die('<!DOCTYPE html>
<html lang="tr"> <!-- İçeriğin diline uygun dil belirteci kullanın -->
<head>
<meta charset="utf-8">
<title>Bakımdayız</title>
<!-- Diğer head içerikleri (meta, stiller) -->
</head>
<body>
<center>
<div class="error-container">
<h1>Bakımdayız!</h1>
<p>Web sitemiz kısa süreli olarak bakıma girmiştir. En kısa süre içinde yeniden yayına girecektir.</p>
</div>
</center>
<script language="Javascript">
// Sağ tık fonksiyonelliğini devre dışı bırakan JavaScript kodunuz...
</script>
</body>
</html>');
}
} else {
echo "Veritabanından ayarlar çekilemedi.";
}
?>


Parola ve kullanıcı adı kısımlarını gerçek veritabanı bilgilerinizle değiştirmeyi unutmayın. Ayrıca, HTML içerisindeki dil etiketinin sitenizin içerik diline uygun olmasına dikkat edin.