Adından da anlaşılacağı üzere base_functions.php betiği sayfada yeri geldiğinde kullanacağımız temel fonksiyonlarımızın yer aldığı dosyamız.
so-base/functions/ dizini altında bulunan bu betiğimizde çeşitli fonksiyonlar oluşturacağız ve yeri geldiğinde çağıracağız.
Bu fonksiyonlara tüm çalışmamız boyunca ulaşabilmek için index.php betiğinde bir değişiklik yaparak base_functions.php betiğini çağıralım:
<?php
include(’so-base/functions/base_functions.php’);
include(’so-config/config.php’);
if ($sp) {
include(’so-config/rootpaths.php’);
include(’so-content/themes/default/theme.php’);
}
?>
Burada daha önce bahsetmediğim config.php betiğimiz var. so-config/ dizininde bulunan bu betiğimiz ise veritabanına bağlanmamızı sağlayan, bağlanıp bağlanamadığımızı kontrol eden betiğimizdir ve içeriği şu şekildedir:
<?php
$host=”localhost”;
$dbname=”sp”;
$dbuser=”root”;
$dbpass=”sifremiz”;
@$connect=mysql_connect($host, $dbuser, $dbpass);
if ($connect) {
@$sp=mysql_select_db($dbname, $connect);
mysql_query(”SET NAMES ‘latin5′”);
if (!$sp) {
$sp=null;
$dberror=”sunucuya bağlanıldı fakat ilgili veritabanına bağlanılamadı.
<li>Lütfen so-config/config.php dosyasının içeriğini kontrol ediniz.
<li>veritabanı ile ilgili veritabanı adı bilgisinin doğru girildiğinden emin olunuz.
“;
geterror($dberror);
}
}
else {
$dberror=”sunucuya bağlanılamadı.
<li>Lütfen so-config/config.php dosyasının içeriğini kontrol ediniz.
<li>veritabanı ile ilgili host, veritabanı kullanıcısı adı ve şifre bilgilerinin doğru girildiğinden emin olunuz.
“;
geterror($dberror);
}
?>
Gördüğünüz üzere config.php betiğimiz veritabanımıza bağlanmaya çalışıyor, burada tabiki host, dbuser, dbname, dppass değişkenlerini kendimize göre düzenlememiz gerekmektedir. Burada asıl üzerinde durmamız gereken nokta, eğer host’a bağlanma veya veritanını seçme işleminde bir sorun çıktıysa, betiğin belirli bir ifadeyi geterror() fonksiyonuna girdi olarak göndermesidir.
geterror() fonksiyonu base_functions.php betiğinde aşağıdaki gibi tanımlanmıştır:
function geterror($errorreason) {
$errorreason=nl2br($errorreason);
echo”
<html>
<head>
<style type=\”text/css\”>
body {
margin: 0;
padding: 0;
background: #FFFFFF;
font-family: Verdana;
font-size: 12px;
color: #666666;
}
#main {
position: absolute;
width: 60%;
height: 60%;
top: 100px;
left: 100px;
border:1px dashed #939393;
}
#main-topic {
font-size: 24px;
color: #FFFFFF;
width: 100%;
background: #3186ac;
position: relative;
top: 0px;
left: 0px;
}
#main-content {
font-size: 16px;
position: relative;
top: 30px;
left: 20px;
}
#main-reason {
font-size: 16px;
position: relative;
top: 30px;
left: 20px;
}
</style>
</head>
<body>
<div id=\”main\”>
<div id=\”main-topic\”> Hata !</div>
<div id=\”main-content\”>Bu hata aşağıdaki sebepten kaynaklanmıştır:</div>
<div id=\”main-reason\”><ul type=\”square\”><li>$errorreason</ul></div>
</body>
</html>
“;
}
base_functions.php betiği index.php betiğinde config.php betiğinden daha önce çağırıldığından hiçbir sorun yaşanmamakta ve veritabanına herhangi bir bağlantı sorunu oluştuğunda ilgili geterror() fonksiyonu çağırılmaktadır.
Şuan samkon.org/proje sayfası projenin son halini temsil etmektedir.
Herhangi anlaşılmayan bir nokta veya fikriniz olursa mutlaka bildirmenizi rica ediyorum.Fonksiyon ve betiklerimizi yazmaya devam edeceğiz.