18 Mayıs 2014 Pazar

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/ 












17 Mart 2014 Pazartesi

Sitemizi PHP ile Kodluyoruz...


Diğer Proje Arkadaşlarımın Gerekli İşlemleri Tamamlamaları Sonucunda Benim HTML Olarak Klonlanan Arayuzu Veri Tanamımıza Bağlama işlemimi Ve Hatta Navigasyon Menusunu  Hazırlamam Gerekti ve Bağlama İşlemi İçin Once Bir MySql Bağlandı Kod Blogu
Yazdım(ayarlar.php) Ve index.html dosya ismini index.php yapıp Bu Bağlantı Kod Blogunu Gerekli Kodlama ile Entegre Etim
KOD:
<?php include ("ayarlar.php");?> 



Daha Sonra Oluşturmuş Oldugumuz Veri Tabanlarına Bire Kayıt Girişinde Bulunuyoruz.
Ve Simdide Link verecegimiz Bir Bir php Dosyası oluşturuyoruz (hakkimizda.php) bu dosyamız Gerekli linkimizi ve Veri tabanından Cağırdıgımız Alt Linklerimiz Tutacak 

 index php ve Diger (hakkımızda.php) Dosyamızın içerigınde Gereksiz Daha Dogrusu Fazlalık Kafa Karıştıracak Kod Blogunu Ayırdım Yani Navigasyon(ustmenu) Menumuz sag blok solblok gibi Fazlalık Alnlardan bi kısmını Boylelikle Rahatbir Kod Calışma Sayfası Oluşturdum kendime Ve Bu Oluşturdugum Yeni Blogo bir Alt klasöre Kaydetim Daha Sonra her birGerekli Kod Yardımı ile Her bir Çalışama sayfama Entegre Edeceğim


Ve Simdi Oluşturdugum blogu Kodlayacam
Oncelikle  herzamanki gibi Mysql Baglantı Kod Sayfamı Entegre Ederek başlıyacam (yani ayarlar.php)
ve gerekli tablomuzdan verileri cagırıp hakkımızda.php?sayfa_id=kayıtidsi şeklinde linklendirecem bu işlem için once likle bir Dongu Oluşturdum ve Her Kaydı Navigasyon menümüz Altında Listelettim

Ve daha sonra hakkimizda.php Dosyamızı Kodlamaya başladık
Oncelikle Varitabanımızda Sorgu lama yapa bilecegimiz bir Değişkenimizin olması şartı ve biz bu değişkeni sayfa_id si adı altında  zaten bir onceki dosyamızda cağırttırmıştık  bu yüzden  işimiz kolay 
Tek Yapmamiz gereken $_GET['sayfa_id'] değişkenimizi Veritabanımizda Gerekli tablomuzdan sorgulatmak (Yani 1 Nolu kaydımızdaki verileri Mesela) 
Ve işlemimiz sonucunda sitemize Kontrol amaçlı Bakıyoruz 
Ve Bu İşlemi Diğer Altsayfalarımızada Uyguluyoruz 





Veri Tabanımızı düzenliyoruz..

Arayuz Sorumlumuzun Kopyaladıgı Siteyi İnceleyerek Gerekli Veritabanı Yapımızı Önce Kağıt Üzerinde Sonrada PHPMyAdmin Aracılıgı ile Oluşturduk Veri Tabanımızı Oluşturuken Site Uzerindeki Linkleri Dikakte Aldık Ve Bu linkler ile Tablolar Oluşturduk.
Veritabanı Yapımızdan Resimler:
Tablolar

Örn.Tablo yapısı



Site Arayüzünü Tasarlıyoruz...

Öncelikle Örnek Aldıgımız Sitenin Arayuzunu (CSS Ve Html Dosyaları Olarak) Gerekli Program ile Kendi PCmize Klonluyuruz (Kopyaladıgımız )
ve localhostumuza herhangi bir Klasöre Kopyaladıgımız arayüzümüzü Taşıyoruz.
Kopyalama/Klonlama İşleminde Kullandiğimiz Program: HTTrack Website Copier

Klonladığımız Site Arayuz Resimleri :

Anasayfa
  Alt Sayfalar
Klasor Yapısı 


12 Mart 2014 Çarşamba

Projenin Amacı

Kanserle savaşta çağdaş düzeye ulaşabilmek için kanser konusunda araştırmalar yapmak, kanserle savaşın yöntemlerini saptayıp mücadele için kullanılabilecek kaynaklar yaratmak, kişi kurum ve kuruluşları bir araya getirerek işbirliğini sağlamak, kanser ile savaş ve kanser hastaları için gerekli yardımları sağlamak