28 Mayıs 2014 Çarşamba

Proje Esnasında Karşılaştığımız Zorluklar ve Çözümlerimiz

TÜRKÇE KARAKTER KODU SORUNU
Hemen Her Yazılımcı Bu Sorunla Karşılaşır Hemde Bir Çok Defa Ne Kadar Çözümlese Bile ;)
 Bu Sorunum Veritabanından  Biçimsizce gelen(Soruişareti ,Çeşitli Şekiller vs.)  Bazi karakterleri Düzeltmemizi gerektirdir yaklaşık 4.5 yıldır PHP ile Çalışıtorum ve halen  yabancı kaldığım bircok kod var olduğunu  keşfettim bunlardan biride iconv adlı bir fonksiyon Bu Fonsiyon  Sayesinde Karakter Kodlarını Dilediginizce Oynamalar yapa bilirsiniz  UTF-8 den ISO... Formatına veya Windows-1254 Formatına Dönüşüm Sağlaya bilirsiniz Basit Bir Örnek
ÇÖZÜM:
Fonksiyonun Kullanım Şekli:
 <?php echo  iconv("ISO-8859-9", "UTF-8",$metin_veya_degisken); ?>
WYSIWYG HTML EDİTÖR ENTEGRASYONU
 önce bir HTML metin Editörü Araştırdık Ve Bu redactor.js Keşfettik Sade ve Kullanışlı bir Yazılım olması birde Basit Bir Şekilde Entegre Olanagi İşimizi Kolaylaştırdı Fakat Bir Şeyi Atladık Php Mysql Sorguları Bu Editor Sayesinde Html Formatında sorgu olarak Çalışıtordu ve Bilinir ki Html bol tırnak işareti içeren bir Dildir
 Örnegin:
<a href='http://site.com'>Örnek..</a>
Burdaki Kırmızı İşarelti Tırnaklar Arka plandaki Sorgularımızı Surekli Bölüyordu 
Şöyleki:
<?php
// Yukarıdaki örnek   Html Kodumuz Bir Değişkene Atalım 
$metin="<a href='http://site.com'>Örnek..</a>";
//bir MySQL Sorgusu çaliştıralım( MySql e Bağlandığımizi Varsayarak)
mysql_query('INSERT INTO tablo values("$metin")');
?>
Yukardaki Kod parcası Çalıştıgında PHPMyAdmin'de Şöyle bir hata Dönüşü olacaktır
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'http://site.com'&gt;Örnek..&lt;/a&gt;', 'sdasd', 'adasd')' at line 1

Gibi Bir Hata ile Karşılaşırız
ÇÖZÜM:

Bu Sorunu Çozmek için İse
mysql_real_escape_string() Fonksiyonu keşfetim bu fonksiyon sayesinde Tırnak işaretlerinin önüne slash (/)  karakterı atıyor ve sorgu bütünlüğünü koruyor
 Örneğin:

<?php
$metin="<a href='http://site.com'>Örnek..</a>";
iconv("UTF-8", "ISO-8859-9//TRANSLIT",mysql_real_escape_string("$metin"));
?>
Şeklinde Kullanıyoruz.

SON OLARAK SQL ACIKLARI(SQL INJECTİON)
yazılımcı her nekadar kodbilgisine güvensede böcekler sürekli Bu açıklar peşindedir GoogleBotlarbile İstemedende Olsa Açıklara sızıp Zararlar Verebiliyor

Bu tür Açıkların Genel  Sebebi $_GET Değişkeninden Kaynaklanıyor Mesela

site.com?sayda_id=1
dendiğinde burda Arka planda
$_GET['sayfa_id'] dizesine Bir Değer Gönderiliyor Bizde Bu değeri Php Kodlarımızda Okuttuğumuzdan Büyük Bir Açık veriyoruz
Orneğin :

<?php
 $id=$_GET[sayfa_id];  //Değer  1 olsun
mysql_query("Select *from tablo where id='$id');  //Yani Select *from tablo where id='1'
?>
Birde Zararli Bir Vatandaş Veya Bot Yazılım tarafından Kullanıldıgında
site.com?sayda_id=/1/' AND Delete from  tablo
(site.com/?sayda_id=%271/%27%20AND%20Delete%20from%20tablo)
diye çalıştırdıgında  kodumuz  bu şekli alacaktır

<?php
 $id=$_GET[sayfa_id];  //Değer  /1/' AND Delete from  tablo
mysql_query("Select *from tablo where id='$id');
  //Yani Select *from tablo where id='/1/' AND Delete from  tablo'
?>
Şeklinde Değişiklik olacaktır
Buda Bu tablomuz için Sorunlara Neden Olacaktır

ÇÖZÜM

Çözüm Çok Basıttir Eger Gelen Değişken Bir tamsayı ise örenk deki gibi Tamsayı kısmını okuturuz Bunu intval() Fonksiyonuyla Yapabiliriz
Örnegin
1ada23s değerli bir değişkenimiz olsun bu fonsiyona sokalım
intval("1ayda23n")
Çıktı:
123
şeklinde olur
Busayede Gereksiz  Karakterler Ayıklanır ve Sağlıklı sorgu gercekleştırılır.




PROJEMİZİN SONHALİNE ULAŞABİLİRSİNİZ
http://kanserlemucadele.tk/ 










8 Nisan 2014 Salı

Veritabanı Yapısını Güncelledik

Öğretmenimizin önerisi üzerine sisteme bir tablo daha ekledik. Yeni eklediğimiz tablo adı: ogr_Ceza
bu tablomuzda Öğrencimizin Teslim Tarihini Geciktirmesi Sonucunda aldığı Cezaları Tutacağız.

Tablo İçeriği Su Şekilde Olacak;
_______
|Ceza |
-------
  id
-------
ogr_id
-------
cz_bts_trh =>(Ceza Suresi Bitiş Tarihi)

Tasarım Aşaması


Öncelikle Konumuzla İlgili Biraz Araştırma yaptık Fakat Kaynaklar Bir Elin Parmağını Geçmeycek Kadar Az Ve Bir birinin Aynısıydı.
Bizde Sıfırdan Bir Tasarım Ortaya Koymak İstedik Grup Arkadaşlarımla Biraz Tasarım için Kağıt Üzerinde Karalamalar yaptık ve Kullanıcının Kafası Karışmasın diye Sadelik Üzerinde Durduk Hazır Şablonlar Araştırdık Grubumuzun Kod sorumlusu(Enes Biber) Bize Responsive( Yani Aygıtın Çözünürlüğüne Göre Şekil alan) Ve Gayet Hızlı Bir CSS den Bahsetti Kısa bir Araştırma Sonucu BootStrap.Css adında Bir tasarım Bulduk ve 2 Kolonlu Bir Tema Oluşturduk (Sol ve orta Blok İçeren) Ve Kodlamaya Başladık.

13 Mart 2014 Perşembe

Veri Tabanı Yapısı


Veri tabanı Adı:  dosmakutuphane
Tablolar: kullanici, kitap, odunc

Tablo Yapıları:

kullanici
----------
id
adi
soyadi
sifre
tc
tel
adres
email
rutbe(ogrenci,yonetici...)

kitap         
----------    
id
adi
sayfa
yazari
basim
turu
konu
dili
yayinevi

odunc
---------
id
tc
kitap_adi
aldigi_tarih
verdigi_tarih

12 Mart 2014 Çarşamba

Projenin Amacı

Projemizin amacı dosma kütüphanesinde bulunan kitapların bir nevi tutanağını tutan bir site olucaktır.
Site Veritabanından çektiği bilgiler ile çalışacak.Kitaplaruın girdisi çıktısı tutulacak.
Bir nevi sanal kütüphane diyebilriiz.

Proje Grubu ve Görevleri

Proje Görevleri:
Proje Yönetici: Enes Biber, Aydan Sarıbaş, Gülşah Çavuşoğlu
Veri Sorumlusu: Gülşah Çavuşoğlu
Veritabanı Sorumlusu: Enes Biber, Aydan Sarıbaş, Gülşah Çavuşoğlu
Arayüz Sorumlusu: Aydan Sarıbaş
PHP Kod Sorumlusu: Enes Biber
Blog Giriş Sorumlusu: Enes Biber, Aydan Sarıbaş, Gülşah Çavuşoğlu