Database Bağlantısı Kurulmadı!
Warning: Undefined variable $db in C:xampphtdocsincludebaglan.php on line 14
Fatal error: Uncaught Error: Call to a member function query() on null in C:xampphtdocsincludebaglan.php:14 Stack trace: #0 C:xampphtdocsincludeheader.php(1): include() #1 C:xampphtdocsindex.php(1): include('C:\xampp\htdocs...') #2 {main} thrown in C:xampphtdocsincludebaglan.php on line 14
hatam tamda bu nasıl çözeceğim bulamadım gitti
baglan.php sorunu çözebilecek?
10
●376
- 07-11-2023, 02:18:40Üyeliği durduruldu
- 07-11-2023, 02:19:44Üyeliği durduruldu
<?php $user = "ilan"; //VERİTABNANI KULLANICI ADINIZ $pass = "********"; //VERİTABANI ŞİFRENİZ // VERİTABANI ADINIZ try{ $db = new PDO("mysql:host=localhost; dbname=ilan; charset=utf8;",$user,$pass); }catch(PDOException $error){ echo "Database Bağlantısı Kurulmadı!"; $error->getMessage(); } $ayarlar = $db->query('SELECT * FROM ayarlar')->fetch(); $sitetitle = $ayarlar['site_title']; $site = $ayarlar['site_url']; $desc = $ayarlar['site_desc']; $keyw = $ayarlar['site_keyw']; $bakim = $ayarlar['site_durum']; if ($bakim==1) { die('<!DOCTYPE html> <html lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bakımdayız</title> <style> body { margin: 30px 40px; background-color: #f6f6f6; } .error-container { padding: 50px 40px; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 14px; } h1 { margin: 0; font-size: 48px; font-weight: 400; } h2 { margin: 0; font-size: 26px; font-weight: 300; } a { color: #336699; } p.back-to-home { margin-top: 30px; } p.debug{ padding: 20px 0; font-family: "Courier New", Courier, monospace, serif; font-size: 14px; } .info { border: solid 1px #999; padding: 5px; background-color: #d9edf7; } </style> </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> </body></html> <script language="Javascript"><!-- var isNS = (navigator.appName == "Netscape") ? 1 : 0; var EnableRightClick = 0; if(isNS) document.captureEvents(Event.MOUSEDOWN||Event.MOUSEUP); function mischandler(){ if(EnableRightClick==1){ return true; } else {return false; } } function mousehandler(e){ if(EnableRightClick==1){ return true; } var myevent = (isNS) ? e : event; var eventbutton = (isNS) ? myevent.which : myevent.button; if((eventbutton==2)||(eventbutton==3)) return false; } function keyhandler(e) { var myevent = (isNS) ? e : window.event; if (myevent.keyCode==96) EnableRightClick = 1; return; } document.oncontextmenu = mischandler; document.onkeypress = keyhandler; document.onmousedown = mousehandler; document.onmouseup = mousehandler; //--> </script></section></div></body></html>'); } ?> - 07-11-2023, 02:25:38
<?php $user = "ilan"; //VERİTABANI KULLANICI ADINIZ $pass = "********"; //VERİTABANI ŞİFRENİZ try { $db = new PDO("mysql:host=localhost; dbname=ilan; charset=utf8;", $user, $pass); } catch (PDOException $error) { echo "Database Bağlantısı Kurulmadı! Hata Mesajı: " . $error->getMessage(); exit; } if ($db === null) { // Veritabanı bağlantısı kurulamadı, bu yüzden işleme devam etme. exit("Veritabanı bağlantısı kurulamadı."); } $ayarlar = $db->query('SELECT * FROM ayarlar')->fetch(); $sitetitle = $ayarlar['site_title']; $site = $ayarlar['site_url']; $desc = $ayarlar['site_desc']; $keyw = $ayarlar['site_keyw']; $bakim = $ayarlar['site_durum']; if ($bakim==1) { die('<!DOCTYPE html> <html lang="en"><head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Bakımdayız</title> <style> body { margin: 30px 40px; background-color: #f6f6f6; } .error-container { padding: 50px 40px; font-family: "Helvetica Neue",Helvetica,Arial,sans-serif; font-size: 14px; } h1 { margin: 0; font-size: 48px; font-weight: 400; } h2 { margin: 0; font-size: 26px; font-weight: 300; } a { color: #336699; } p.back-to-home { margin-top: 30px; } p.debug{ padding: 20px 0; font-family: "Courier New", Courier, monospace, serif; font-size: 14px; } .info { border: solid 1px #999; padding: 5px; background-color: #d9edf7; } </style> </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> </body></html> <script language="Javascript"><!-- var isNS = (navigator.appName == "Netscape") ? 1 : 0; var EnableRightClick = 0; if(isNS) document.captureEvents(Event.MOUSEDOWN||Event.MOUSEUP); function mischandler(){ if(EnableRightClick==1){ return true; } else {return false; } } function mousehandler(e){ if(EnableRightClick==1){ return true; } var myevent = (isNS) ? e : event; var eventbutton = (isNS) ? myevent.which : myevent.button; if((eventbutton==2)||(eventbutton==3)) return false; } function keyhandler(e) { var myevent = (isNS) ? e : window.event; if (myevent.keyCode==96) EnableRightClick = 1; return; } document.oncontextmenu = mischandler; document.onkeypress = keyhandler; document.onmousedown = mousehandler; document.onmouseup = mousehandler; //--> </script></section></div></body></html>'); } ?>
dener misin - 07-11-2023, 02:26:28Üyeliği durdurulduDatabase Bağlantısı Kurulmadı! Hata Mesajı: SQLSTATE[HY000] [1045] Access denied for user 'ilan'@'localhost' (using password: YES)AloneTrap adlı üyeden alıntı: mesajı görüntüle
- 07-11-2023, 04:13:35Verdiğ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:
- 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.
- 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. - 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ı.
- 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.
<?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.
ile yan yana yazmışsınız, bu düzeltilmeli. Aşağıda bu kısmı düzenleyeceğim.