Galibarda

Veysel Bozdoğanoğlu

Archive for Aralık, 2011

php dns sorgusu

without comments

Php ile dns sorgusu, mevcut dns serverlara php nin network fonkisiyonları içinde yer alan fsockopen ile yapılıyor. mantık şu. bu fonkisiyon, dns server a domain ismini soruyor. serverda cevap veriyor. bu sorgu serverlara 43. portu üzerinden soruluyor.. Örnek

$server = "whois.crsnic.net";
$port = 43;
$domainname = "galibarda.com";

if(($ns = fsockopen($server,$port)) == true)
	{
		fputs($ns,"$domainname\r\n");
		while(!feof($ns))
			$cikti= fgets($ns,128);
		fclose($ns);
	}
echo $cikti;

tabi her dns servera her domain i soramıyoruz. örneğin
crsnic.net servere sadece com-net uzantılı domainlere bakıyor.
Yani com.tr yi bu serverdan sorgulayamayız. Domain ismine göre kullanabileceğimiz
server listesi

<?php
$WHOIS_SERVERS = Array(

		"com"  =>  "whois.crsnic.net",
		"net"  =>  "whois.crsnic.net",
		"org"  =>  "whois.publicinterestregistry.net",
		"edu"  =>  "whois.crsnic.net",
		"biz"  =>  "whois.neulevel.biz",
		"info" =>  "whois.afilias.info",
		"us"   =>  "whois.nic.us",
		"uk"   =>  "whois.nic.uk",
		"ca"   =>  "whois.cira.ca",
		"de"   =>  "whois.nic.de",
		"ws"   =>  "whois.nic.ws",
		"au"   =>  "whois.ausregistry.net.au",
		"nu"   =>  "whois.nic.nu",
		"in"   =>  "whois.registry.in",
		"tel"  =>  "whois.nic.tel",
		"ie"   =>  "whois.iedr.ie",
		"tw"   =>  "whois.twnic.net.tw",
		"tv"   =>  "whois.nic.tv",
		"ch"   =>  "whois.nic.ch",
		"eu"   =>  "whois.eu",
		"it"   =>  "whois.nic.it",
		"cn"   =>  "whois.cnnic.net.cn",
		"mobi" =>  "whois.dotmobiregistry.net",
		"cc"   =>  "whois.nic.cc",
		"asia" =>  "whois.nic.asia",
		"pro"  =>  "whois.registrypro.pro",
		"hk"   =>  "whois.hknic.net.hk",
		"me"   =>  "whois.meregistry.net",
		"be"   =>  "whois.dns.be",
		"se"   =>  "whois.nic.se",
		"ca"   =>  "whois.cira.ca",
		"nz"   =>  "whois.domainz.net.nz",
		"nl"   =>  "whois.sidn.nl",
		"tr"   =>  "whois.nic.tr"
);?>

Written by waycell

Aralık 30th, 2011 at 1:53 am

Posted in PHP

QT Nedir?

without comments

QT

QT

QT , arkasına nokia nın desteğini almış, c++, java yada qml dillerinde uygulama geliştirebileceğimiz, esasında benzerlerine çok benzer:) bir uygulama platformudur.

Peki neden meşhur? neden vazgeçilmez.. Neden visual c++ değil de qt?

En önemli nedeni, c++ ye java gibi bir kere yaz her yerde kullan özelliğinin bir bölümünü kazadırıyor. yani java ile yazılmış kod, derlendikten sonra her platformaa çalışırken, qt ile yazılmış kodu, herhangi bir değişiklik yapmadan, o platform için derlemek mümkün. Peki java mı daha üstün derseniz. Hayır? Çünkü java çalışmak için sanal bir işleyiciye ihtiyaç uyar. O işleyici olmadan çalışmaz. Qt nin ise böyle bir derdi yoktur.

Daha açıklayıcı olmak gerkirse..

Örneğin Windows ile yazığımız kodlarda win32.dll nin bize sunduğu nimetlere göre kod yazmak zorundayız diyelim. Aynı kodu linux te çalıştırmak istesek, win32 nin yerini kernel çekirdeği alır. Bu kez kodları ona göre çevirmemiz gerekir. İşte QT burada devreye giriyor. Her platform için ortak yazılmış, çok geniş kütüphanesiyle hangi platform için kodlama yapıyorum tasasını ortadan kaldırıyor..

Ve platform bağımsız demişken, bağımsız olduğu platformlara mobil işletim sistemleri de dahildir. Yani Nokia nın symbian ı başta olmak üzere, android ve iphone OS için de uygulama yazmak mümkün.

Ayrıca yazmadan geçemiyeccem :)  Qt is fast to learn and easy to use. :)

QT nin en güzel özelliklerinden biri de, türkçe olmasa da öğrenmek için pek çok mataryel olması. Özellikle Qt ile kafayı bozmuş bir adamın youtube sayfasını tavsiye ederim

http://www.youtube.com/user/VoidRealms

QT nin kullanım Alanları

http://qt.nokia.com/qt-in-use

Written by waycell

Aralık 7th, 2011 at 2:16 am

Posted in QT/C++

mysql de verinin bir kısmı çekmek – SUBSTR()

without comments

Özellikle WordPress gibi sistemler, veri tabanında bulunun uzun uzun yazıların bir kısmını özet olarak gösterirler. Veritabanınaki tüm veriyi çekip bunu php ile kırpmak ta mümkün tabi . Eğer veri uzunsa bu ciddi performans kaybına sebep olacaktır.

Gelelim mysql de verinin bir kısmını almamızı sağlayan fonksiyona

SUBSTR(tabloadi, baslangicKarakter, bitisKarekter)

sitemde kullandığım örnek bir sql sorgusu şu şekile

$sql =”SELECT `galibarda_gonderiId`,`galibarda_gonderiYazarId`,`galibarda_gonderiBaslik`,
`galibarda_gonderiUrl`,SUBSTR( `galibarda_gonderiIcerik` , 1, 10 )FROM `galibarda_gonderi` “.’ WHERE ‘.ONEK.”gonderiTuru = ‘”.$gonderiTuru.”‘ ” ;

bu kod gonderilerin icerik sutunundan 1 den 10 uncu karaktere kadar olan kısmını alıyor..

Diğer bazı Mysql Fonksiyonları ise şu şekilde

Tablo kaynak : http://turgaysahtiyan.com/

Function Açıklama Kullanım Sonuç
ASCII Verilen karakterin ascii karşılığını verir. ASCII(‘D’) 68
CHAR Verilen ascii kodun char karşılığını verir. CHAR(68) D
CHARINDEX Verilen ilk string in ikinci string de ki başlama posizyonunu verir. Bulamazsa 0 döndürür. CHARINDEX(‘turgay’, ‘Naber turgay sahtiyan’) 7
LEFT Verilen string in baştan verilen karakter kadar olan kısmını döndürür. LEFT(‘turgay’,2) tu
LEN Verilen string in uzunluğunu verir. LEN(‘turgay’) 6
LOWER Verilen string i küçük harflere döndürür. LOWER(‘TuRGaY’) turgay
LTRIM Verilen string in solunda ki boşlukları siler. LTRIM(‘  turgay’) turgay
REPLACE String değiştirmek için kullanılır. REPLACE(‘turgay’,'rg’,'aa’) tuaaay
REPLICATE Verilen string i verdiğiniz sayı kadar yanyana yazar. REPLICATE(’1′,3) 111
REVERSE Verilen string i ters çevirir. REVERSE(‘turgay’) yagrut
RIGHT Verilen string in sondan verilen karakter kadar olan kısmını döndürür. RIGHT(‘turgay’,2) ay
RTRIM Verilen string in sağında ki boşlukları siler. LTRIM(‘turgay  ‘) turgay
SPACE Verilen sayı kadar boşluk karakteri döndürür. ‘turgay’+ space(2)+ ‘sahtiyan’ turgay  sahtiyan
STR Verilen double sayıyı string e dönüştürmeye yarar. 3 parametresi vardır.1.double sayı,2.string in toplam uzunluğu,3.decimal kısmın uzunluğu STR(123.45, 6, 1) 123.5
STUFF 2. parametre de verilen sayı kadar kısmı 1.string den siler ve onun yerine 2.string i ekler. STUFF(‘turgay’, 2, 3, ‘sahtiyan’) tsahtiyanay
SUBSTRING Verilen string den belli bir kısmı almaya yarar. SUBSTRING(‘turgay’, 2, 3) urg
UPPER Verilen string i büyük harflere döndürür. UPPER(‘TuRGaY’) TURGAY

Ayrıca mysql string fonksiyonları
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

Written by waycell

Aralık 6th, 2011 at 12:10 am

Posted in mysql

php mysql türkçe karakter sorunu

without comments

En son söylemem gerekeni en başta söyleyim. Bu makaleyi okuyorsanız muhtemelen benim aşağıda anlatacağım ayarları yapmış ve hala sonuç alamamışsınızdır. Aslında ne php nin ne de mysql in türkçe karekter sorunu yok.  Ayarları yaptınız ve hala düzelmediyse sorun editorunuz kodlama biçimindedir. Bu sorunu çözmek içik kullandığınız metin editorunun varsayılan kodlamasının utf-8 withou BOM yada türkçesi bom suz utf-8 olarak ayarladığınızdan emin olun. Bom suz ayarlayın ki, ilerde bir de çerez-oturum sorunu yaşamayasınız diye.

Gelelim ayarlara..

1-)Browser ayarı..

Bu ayar aslında en basittidir. web siteniz html kodlarına

<meta content=”text/html; charset=utf-8″ http-equiv=”content-Type”>

2-)Mysql Ayarı

a-)Öncelikle mysql de veritabanı oluştururken mysql in karakter setini UTF-8_general_ci yapın.

php Mysql Türkçe Karekter Sorunu

php Mysql Türkçe Karekter Sorunu

 
b-)Klasik bir php mysql bağlantı kodu şu şekildedir

mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("mydb");

$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Name: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);

 

bu kodun select_db kısmından sonra yani veritabanı tablo adı seçildikten sonra aşağıdaki kodu ekleyin

mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");

Şu şekilde görünmeli

mysql_connect("localhost", "mysql_user", "mysql_password") or
    die("Could not connect: " . mysql_error());
mysql_select_db("mydb");
//sonradan eklenen kodlar
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET utf8");
$result = mysql_query("SELECT id, name FROM mytable");

while ($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
    printf("ID: %s  Name: %s", $row["id"], $row["name"]);
}

mysql_free_result($result);

Tüm bunları uyguladım ama hala sorun yaşıyorum diyorsanız makalenin en başına geri dönüp metin editorunuzle ilgili ayarları yapın.
Eğer aynı anda benim gibi birden fazla editor kullanıyorsanız muhtemelen yine sorun yaşayacaksınız.
Kolay gelsin.

Written by waycell

Aralık 5th, 2011 at 11:52 pm

Posted in mysql,PHP

Google Seo İncelikleri

without comments

Arama motorlaronda önde çıkmak, bir websitesinin temel amacı haline geldi. Neredeyse bütün www, google üzerinden yönlendiriliyor. Facebook.com yazmak yerine google a face yazmak kolayımıza geliyor:)

Her neyse gelelim google da üst sıralara nasıl geliriz e..

Google  ın doymak bilmek, tüm web i kendine ait görme dürtüsü çıkmadan önce, arama motorları sadece web sitelerini meta etiketlerine bakarak aramakla yetiniyordu. Örmek Miliyet in kısaltılmış meta etiketleri..

<meta name=”keywords” content=”Milliyet, gazete, medya, journalist, economy, advertisement, finance, Turkey ” /><meta name=”description” content=”Milliyet Gazetesi’nin internet dünyasındaki TV ” />

Google ise, tüm içeriği kopyalayıp, kimseyle paylaşmadığı kendi algoritmasına göre içeriğe puan vererek bu sıralamayı gerçekleştiriyor. Üst sıralarda çıkmak için hiç kuşkusuz en önemli olay İçeriğin, aranan kelimeyle uyuşması.. Bununla birlikte baktığı bir kaç nokta daha var.

  •  Web sitesini <title>Başlık</title> etiketinde aranan kelime var mı?
  •  URL. Web sitesinin  url sine aranan kelime var mı?
  • Sitenin <meta name=”description” > etiketleri arasında arana kelime var mı?

 Google, standardı sever. Standardı ise kullanıcı dostu olması açısından koyar.

Kullanıcı dostu Url nasıl olur . http://galibarda.com/kategori/google-seo-incelikleri

Google, seo çıkmadan önce bu linkler, genellikle şu şekildeydi

http://galibarda.com/kategori.php?id=1202

Tabi Tüm bunların olması aranan kelimeyle ilgili en üst sırada çıkmanızı garanti etmez. Ama Hiç Şüphe yokki, bunlar site için çok önemli.

*Google ın en önem verdiği şey, verinin güncelliği. Kendi yazdığımız bir makale, başka sitelerden kopyalanmış onlarca sayfa yazıdan daha verimlidir google açısından.

*Tabi google ın dikkat ettiği başka bir nokta ise, websitesine giden başka sitelerdeki linkleriniz. Yani mantık şu, içerik kaliteyse, diğer siteler sizin sitenize bağlantı vermiştir..

Google a + puan almanın başka ince hesapları da var. Bunlardan aklıma gelenleri yazmaya devam edeyim.

*Linklere açıklama eklenmesi

örnek BU LİNK SEO UYUMLUDUR

*Resimlerin isimleri ve resimlere açıklama eklenmesi

Seo Uyumlu Resim

Seo Uyumlu Resim

 

*Html kodu olarak, önemli içeriğin <h1> <h2> gibi  uygun html etiketlerine sahip olması

ve Tabi Omazsa Olmazlar.

  • Robots.txt
  • XML SiteMap
  • rss atam beslemeler
Aslında tüm bu özellikler, web 2.0 denen standardı işaret ediyor. Zaten wordpress i bu kadar meşhur eden de, onun bu nimetleri sonuna kadar kullanması.
Seo yla ilgili aklıma gelenler şimdilik bu kadar.  Daha sonraki yazılarımın konusunu şimdiden kafamda tasarlıyorum..
–permaLink  php ile google uyumlu link yapmak
–xml site map yapımı
–rss besleme

Peki Başka?

Seo, Başlı başına bir derya deniz. Bu konuyla ilgili danışman şirketler bile mevcut.Bu konuda yapılacaklar bitmek bilmez. Ne zamanki, sitenizi google a ilk sayfa da görürsünüz, o zaman başarılı olmuş sayılırsınız..

*Bence artık ilk zamanki kadar etkisi olmayan ama hala uygulanmasında fayda olan, etiket bulutu sistemi.

*http://www.google.com/analytics/ nimetlerinen faydalanma. Websitenize kim, hangi kelimeyi arayarak gelmiş, nerden gelmiş nereye gider.

*http://www.google.com/support/webmasters/ adresineki google un sunuğu webmaster nimetleri.

 

 

Written by waycell

Aralık 5th, 2011 at 10:59 pm

Posted in SEO

php Session hatası -Localhosta calısan serverda hata veren kod

without comments

Biraz uzunca bir başlık oldu ama, localhost ta çalışıp, serverda hata alınca buna benzer bişe yazmıştım google a.

Php nin vazgeçilmez oturum fonksiyonu session lar, sayfaya hiçbir çıktı almadan çalıştırılmalı

session_start();

Tabi oluşturduğumuz session değişkenlerini değiştireceksekde aynı durum geçerli.

Localhost ta çalışıpta serverda neden çalışmaz? Yani çözümü birazdan yazacam ama orda sorun olup local de olmaması ilginç.  Sanırım işletim sisteminin umursamazlığıyla ilgili bişe. :) Php Serverlar genelde Linux oluyor ve bizim local de yine genelde winows olunca, sanırım fark birazda burdan kaynaklanıyor..

Neyse gelelim çözüme. Her ne kadar kodları UTF-8 olarak kodlasakta, bazı derleyiciler sayfanın başına BOM (Byte Order Mark) işaretini ekliyor.

 ï»¿ 

 

Bu yüzden de server, session(oturum) başlamadan sayfanın başında bu işareti tarayıcıya gönderiyor ve sonuç.

Warning: session_start(): Cannot send session cookie – headers already sent by (output started at /hsphere/local/home/wwwuser/test/login.php:1) in

Çözüm ise Session başlamadan önce include yaa require ettiğimiz e diğer dosyalarda dahil, php dosyamızı utf-8 without boom yani boomsuz olarak yeniden kaydetmek..

UT8-Boomsuz

UT8-Boom

 

Written by waycell

Aralık 5th, 2011 at 9:38 pm

Posted in PHP

galibarda.com

without comments

–GaLiBardA–

Benim için ne kadar değerli oluğunu en iyi kendisi bilen Sayın Gülten Uz hanımefendinin isim annenliğini yaptığı, anlamı  kırmızı ve mavi ışığın eşit oranlarda karıştırılmasıyla oluşturulmuş magenta diye bilinen rengin türkçe si olan müstakbel websitemin adı.

Mora çalan kırmızı olarakda bilinir.:)

BU YAZININ RENGİ GALİBARDA dır.

 

Galibarda renginin hex değeri “#FF00FF”, RGB değeri “255, 0, 255″, ve CMYK değeri “0,100, 0, 0″ dır.

Müstakbel sitem diyorum, çünkü site WordPress alt yapısını kullanıyor. Esasında bir blog websitesinin tüm ihtiyaçlarına karşılık verecek kadar gelişmiş bir hazır site şablonu olsa da ben kendi yazdığım kodlarla yayınlamayı tercih ederim. Bu yüzden de biraz buruğum aslında.Çünkü websitem bitmek bilmiyor. :( Her gün yeni bir eklenti yazma gereği duyuyorum. Kodlama hastalığı. Sanki websitemin kodlarını benden başkaları da kullanacakmış gibi yazdığım için, en hızlı ve en uygun kodu yazmaya çalışıyorum. Bugun yazdığımı yarın beğenmiyorum. Hal böyle olunca, sitede bitmek bilmiyor:)

Bende en azında bitene kadar, bir blog sitesi açmış olmak adına, sonunda wordpress in gücüne yenik düşmüş oldum:) Sonuçta bu işin bir de SEO (search engine optimization) kısmı var. Google için ne kadar eski ve ne kadar güncelse o kadar değerli oluyor websiteleri.

Sitenin içeriği, genelde Programlama ve Algoritma mantığı üzerine olacaktır. Tabiki blog site olması dolayısıyla, kendimden enstantanelerde olacaktır.:)

 

 

Written by waycell

Aralık 5th, 2011 at 11:09 am

Posted in SSS

mrb www

without comments

Klasik Programcı Alışkanlığı.”Merhaba Dünya” ya da “HELLO WORLD”.

Yeni bir programlama diline girişte genelde çıktı alınırken ilk olarak “Hello World” yazdırılır. Programcılığın klasiğidir. Bense üşengeçliğimden dolayı hiçbir zaman bunun tamamını yazmamışımdır. Genelde sesli harfleri eksik yada “mrb” ile başlarım.

 

Written by waycell

Aralık 5th, 2011 at 10:12 am

Posted in SSS