<?xml version="1.0" encoding="iso-8859-9"?>
<rss version="2.0">
<channel>
<title>Onurabi</title>
<description>Onurabi Kişisel Web Sitesi Yazıları</description>
<link>http://www.onurabi.com/</link>
<language>tr</language>
<item>
<title>Turkcell 3G</title>
<description>Artık evimden uzak olduğum zamanlar Turkcell 3G'yi kullanıyorum. Hızı gayet iyi benim evimdeki adsl'den hızlı valla :D
Buyrun test :
</description>
<link>http://www.onurabi.com/oku/27/turkcell-3g.html</link>
</item>
<item>
<title>Ajax İle E-Posta Listesi Yapımı</title>
<description>Sitenizde bir kşeye mail adresinizi giriniz blm koyarak,  takipilerine yeni yaptığınız yenilikleri duyurmak istiyorsunuz. Bunun  iin AJAX 'lı şık birşey gzel olur değil mi? Hem bu sayede sayfanız  yenilenmemiş olur. Hemen alışmamıza başlıyorum. AJAX gnderme işini  JQuery ktphanesini kullanarak yapacağım. İlk başta mail ekleme  formunu hazırlıyoruz...
Adım adım aıklıyorum. İlk başta AJAX ile gnderildiğinde değişmesi iin "epostalistediv" id li bir div oluşturuyoruz.
div id="epostalistediv"
/div

Daha sonra id 'si ve name'si epostaliste olan bir form oluşturuyoruz. İine name'si ve id'si email olan bir textbox ve bir tane button oluşturuyoruz.
div id="epostalistediv"
   form name="epostaliste" id="epostaliste"
   input type="text" name="email" id="email" value="E-Posta Adresiniz" style="width:133px;" onclick="sifirla()" / input type="button" value="Ekle" onclick="yolla_eposta()" style="width:40px;" /
   /form
/div

Bunları ekledikten sonra form kısmımız bitti gibi. Şimdi gelelim javascript kısmımıza, bu eklediğimiz kodlarda iki tane olay var. 1. olay email textbox'unda olan tıklama ile alışacak olan sifirla fonksiyonu, bu fonksiyon ile textbox'ta yazılı olan E-Posta adresini tıklayınca silmeyi yapıyoruz. Bu sayede kullanıcıya kolaylık sağlıyoruz :). 2. olay ise butumuzda bulunan yolla_eposta fonksiyonu, bu fonksiyon ile girilen eposta adresini ajax ile yollayacağız.
sifirla fonksiyonu :
function sifirla() {
   $("#email").val("");
}

Bu fonksiyonun temel amacı email id'sine sahip olan inputun iindekini sıfırlamak. Bunuda JQuery'nin iinde olan .val işlevi ile yapıyoruz
yolla_eposta fonksiyonu : 
function yolla_eposta() {
   $.ajax({
   type: 'POST',
   url: 'mail_ekle.php',
   data: $('#epostaliste').serialize(),
   beforeSend : function(yukleniyor) {
   	$('#epostalistediv').html('div align="center"img src="yukleniyor.gif" //div');
   	},
   success: function(ajaxCevap) {
   	$('#epostalistediv').html(ajaxCevap);
   	}
   });
}
JQuery'nin ajax fonksiyonunu kullanacağız, tek tek maddeleri aıklıyorum: type : 'POST', methodun post olacağını belirtir. GET 'te olabilirdi fakat POST'u tercih ettim. url: 'mail_ekle.php', gnderilecek adresin mail_ekle.php olduğunu belirtir. data: $('#epostaliste').serialize(), veri olarak ne gndereceğimizi belirtir. Burda serialize fonksiyonu vardır ki tadından yenmez. Aslında burda direkt email'in ieriğini gnderebildim ama ok fazla textbox'un bulunduğu formlarda yazılması gleşiyor bu yzden direkt bu kodu yazarak btn verilerin gelmesini sağlarsınız ;) beforeSend : function(yukleniyor) {    	$('#epostalistediv').html('div align="center"img src="yukleniyor.gif" //div');    	}, beforesend ile kk bir ykleniyor resmi koyabiliriz sayfamıza. Bu resimi Ajax fonksiyonu sonularını getirdiğinde kaldıracağız. .html işlevi bir yere birşey yazmak iin kullanıldığını anlamışsınızdır. success: function(ajaxCevap) {    	$('#epostalistediv').html(ajaxCevap);    	} ajax işlemi sonlandığında sonucun epostalistediv'de gsterilmesini sağlıyor.
Bu aıklamalarda sonra mail listemizin html kısmı bitti :). Şimdi gelelim php kısmına...
İlk başta bir veritabanımızın olması lazım. Veritabanımızda id,email,ip,tarih,saat kısımları olması lazım. SQL kodumuz aşağıda:
CREATE TABLE IF NOT EXISTS `emaillist` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `email` text,
  `ip` text,
  `tarih` text,
  `saat` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Gelelim, mail_ekle.php 'ye

?php
   /*
   --------------------------------------
   Mail List
   
   Hazırlayan : Onur NEŞVAT (onurabi@onurabi.com) (www.onurabi.com)
   
   Son Dzenleme : 15:52 20/07/2009
   
   Sayfa Adı : mail_ekle.php
   
   --------------------------------------
   */
#----
   # Veritabanı Bağlantısı
   #----
   // Klasik veritabanı bağlantısı
   $hostname = "localhost";
   $database = "db";
   $username = "kullnaıcı adı";
   $password = "şifre";
   $baglanti = mysql_pconnect($hostname, $username, $password) or trigger_error(mysql_error(),E_USER_ERROR); 
   mysql_select_db($database,$baglanti);
   mysql_query("SET NAMES 'latin5'"); // Karakter setini Trke yapıyoruz.

#----
   # Fonksiyonlar
   #----
   function epostakontrol($email) {
   $ifade = "^[_a-z0-9-]+(\.[a-z0-9-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+[a-z]{2}[mtgvu]?$";
   if(eregi($ifade,$email)) {
   return 1;
   }
   else {
   return 0;
   }
   } 
$email = $_POST['email']; // Formdan gelen e-maili alıyoruz.
   $ip = $_SERVER["REMOTE_ADDR"]; // ip adresini alıyoruz
   $tarih = date("d/m/Y"); // tarihi alıyoruz
   $saat = date("H:i:s"); // saati alıyoruz
if (epostakontrol($email)) { // Mail adresinin geerli olup olmadığını epostakontrol fonksiyonuyla kontrol ediyoruz 
   // Veritabanında mail adresi kontrol ediliyor, eğer veritabanında mevcutsa hata mesajı verdiliyor.
   if (mysql_num_rows(mysql_query("SELECT * FROM emaillist WHERE email='".$email."'"))) {
   echo "strongMail adresiniz veritaban#305;m#305;zda zaten mevcut/strong";
   }
   else {
   // Herhangi bir hata oluşmadığında veritabanına email adresi,ip,tarih,saat kaydediliyor.
   @mysql_query("INSERT INTO emaillist (email,ip,tarih,saat) VALUES ('".$email."','".$ip."','".$tarih."','".$saat."')"); 
   echo "strongBa#351;ar#305;yla eklendi/strong";
   }
   }
   else {
   // EMail Adresi geersiz olduğunda, gnderilen mesaj, yeni bir form'da iine koyarak tekrardan girilmesini sağlıyoruz
   echo "strongHatal#305; Mail Adresi Girdiniz/strong";
   echo '
   div id="epostalistediv"
   form name="epostaliste" id="epostaliste"
   input type="text" name="email" id="email" value="E-Posta Adresiniz" style="width:133px;" onclick="sifirla()" / input type="button" value="Ekle" onclick="yolla_eposta()" style="width:40px;" /
   /form
   /div
   ';
   }
?

Evet sonunda bitti...
Demo adresi http://www.onurabi.com/epostalistesi/
Kaynak Kodlar http://www.onurabi.com/dosyalar/epostalistesi.zip
İyi Gnler, İyi alışmalar</description>
<link>http://www.onurabi.com/oku/26/ajax-ile-e-posta-listesi-yapimi.html</link>
</item>
<item>
<title>Yeni Logo Çalışmam</title>
<description>Tasarımdan ok fazla anlamadığımı biliyorum. Ama yineden birşeyler yapayım dedim, sizce nasıl oldu ?
</description>
<link>http://www.onurabi.com/oku/25/yeni-logo-calismam.html</link>
</item>
<item>
<title>.htaccess ve Kalıcı Linkler (SEO)</title>
<description>Doğum günümde bir yazı yayınlayayım dedim. Ve başlıyorum yazıma . Artık çoğumuz kalıcı linklerin ne olduğunu biliyor ama bilmeyenler olur diye birkaç açıklama yapayım. Mesala bir haber sitesinin haber okuma linki haber_oku.php?id=1 şeklinde diyelim. Bu haber sitesinin linkini gördüğünüzde içeriği hakkında hiçbir bilgi edinemezsiniz. Linki açmanız gerekir. Ama haber/1/19072009/dumansiz-hava-sahasinda-yasamaya-hazir-misiniz.html şeklinde olsa hem tarihten hemde haberin konusundan haberdar olursunuz. Ayrıca google ve diğer arama motorlarında ön sıraya çıkma şansını yakalarsınız. Kısacası php dosyalarınızı html olarak gösterirsiniz. Şimdi gelelim bunu nasıl yapacağımıza ...
İlk önce anlatacağım bu yöntemde APACHE web sunucusu olmalıdır. IIS varsa 404 hata sayfaları yöntemini denemelisiniz. 404 ile ilgili önceden yazdığım bir makale vardı. Eski blog'umda kaldı galiba, bir ara bulurum eklerim :D.
Kod yazmaya başlamadan mantığını anlatayım.
haber_oku.php?id=1 -> Burdaki sayfamız id değişkenini bir olarak gönderiyor. Biz bunu $_GET['id'] olarak alacağız.
haber/1/19072009/dumansiz-hava-sahasinda-yasamaya-hazir-misiniz.html -> Burdadaki 19072009 ve dumansiz-hava-sahasinda-yasamaya-hazir-misiniz.html bölümleri önemsizdir. Çünkü bizim için önemli olan id numarasıdır. Eğer id numarasını alabilirsek diğer verileri rahatlıkla çekebiliriz. haber/1/ kısmındaki 1 id'yi oluşturmakta.
Şimdi bunu nasıl yapacağımıza geliyoruz.
.htaccess dosyasını hazırlayacağız.
 
Options +FollowSymLinks
RewriteEngine on
 
Bunları .htaccess dosyamıza ekliyoruz. Daha sonra :
 
RewriteRule haber/(.*)/(.*)/(.*).html haber_oku.php?id=$1
 
ekliyoruz. Burda mantık değişebilen her yere (.*) eklemek. Bunlardan önemli olanlarıda boşluktan sonraki kısımda $1, $2 şeklinde olmak. İlk başta yazdığımız (.*) 1 oluyor. daha sonraki 2,3,4,5... diye gidiyor. Ama burda sadece $1 önemli çünkü id'mizi barındıran değişken orda :). Bu linkleri hazırlarkende linkte türkçe karakter boşluk olmamasına dikkat edin. Ben bunun için
 
function seo($s) {
    $tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç');
    $eng = array('s','s','i','i','g','g','u','u','o','o','c','c');
    $s = str_replace($tr,$eng,$s);
    $s = strtolower($s);
    $s = preg_replace('/amp;amp;amp;amp;amp;amp;amp;amp;.+?;/', '', $s);
    $s = preg_replace('/[^%a-z0-9 _-]/', '', $s);
    $s = preg_replace('/\s+/', '-', $s);
    $s = preg_replace('|-+|', '-', $s);
    $s = trim($s, '-');
   return $s;
}
 
fonksiyonunu kullanıyorum.
 
İiyi Çalışmalar</description>
<link>http://www.onurabi.com/oku/24/htaccess-ve-kalici-linkler-seo.html</link>
</item>
<item>
<title>ÖSS 2008 Verileri | Giren Son Kişi Sırası</title>
<description>2008 SS Sıralaması
Pdf dosyası şeklinde 2008 SS sonularına gre bir okula en son giren kişinin sırasını yazdık. Bakarsınız artık ;)

Download Linkleri :
1. Server
2. Server
3. Server
RapidShare
</description>
<link>http://www.onurabi.com/oku/23/oss-2008-verileri-giren-son-kisi-sirasi.html</link>
</item>
<item>
<title>Facebook Fotoğraf Çözücü</title>
<description>Ücretsiz olarak kullanabileceğiniz bu sistem sayesinde,Facebook üzerinde normal şartlarda ulaşamadığınız ve kullanıcının önceden profil resmine koyduğu fotoğraflarına ulaşabilirsiniz.
   Tek yapmanız gereken şu an profilinde olan resmin kısayolunu sisteme girmenizdir.
Fotoğraflar mail adresinize gelecektir.



Programlama & Tasarım: Onur NEŞVAT
   Kurgu: Buğra AYAN
http://www.onurabi.com/facebook/
</description>
<link>http://www.onurabi.com/oku/22/facebook-fotograf-cozucu.html</link>
</item>
<item>
<title>Soğutma Sistemim</title>
<description>Evet arkadaşlar, yazın sıcağında 7/24 aık kalan bilgisayarımın soğutma sistemini sizinle tanıştırıyorum. Bilgisayarın altına yerleştirdiğim mini-cd kutusu bilgisayarında altından da hava gemesini sağlayarak maksimum performansa yaklaşmamı sağladı.

</description>
<link>http://www.onurabi.com/oku/21/sogutma-sistemim.html</link>
</item>
<item>
<title>Bilgisayar Olimpiyatı</title>
<description>Evet, sonunda bilgisayar olimpiyatını gemiş bulunmaktayım. 2 senedir alışıyordum, bu sene hazırlanmadan girdim getim. Tecrbe olimpiyat iin gerekliymiş demekki. Aslında daha batıdaki bir okulda olsam 9 veya 10. sınıfta geeceğime inanıyorum. nk kendi okulumdaki imkanlarım sınırlı. Anca bu kadar oluyormuş demekki. Bunada şkr. Diğer geen arkadaşlarımıda tebrik ediyorum.
Ayrıntılı bilgi : http://www.tubitak.gov.tr/home.do?ot=1sid=543pid=453
Geenlerin Listesi : http://www.tubitak.gov.tr/tubitak_content_files/BIDEB/olimpiyat/sinav_sonuclari/2009_17.ulusalbilgisayar_olimp_sonuc.zip</description>
<link>http://www.onurabi.com/oku/20/bilgisayar-olimpiyati.html</link>
</item>
<item>
<title>PHP ile Bot Yapımı ve Sitelerden Veri Çekmek</title>
<description>İlk nce nedir bu bot? diye başlayalım.
  Bot, bilgisayarların bazı işlemleri otomatik yapmasıdır. Counter'a bot eklersiniz, ileri gitme ateş etme gibi işlemleri yaptırırsınız. Bizim botumuz ise web sitelerine girip verileri alacak bizim veritabanımıza eklecek...
  İlk nce şunu belirteyim ki, bu botu yaparken aklınızı iyi alıştırmanız gerek nk her siteye farklı bir algoritma geliştirmeniz gerekebilir. Daha ok fonksiyon kullanarak yapmak işinize gelecektir. Birde fonksiyonlara aıklamalarını yazınki unutmayasınız.
  Başlamadan nce sitenin başlığının,yazı yazan yer gibi yerleri dikkatlice inceleyin, onlarda sayfanın başka yerinde olmayan bir zellik bulmalısınız: rneğin,
İlk başta siteden btn linkleri almamız gerek bunun iin şu fonksiyonu kullanabilirinsiniz (Amerika'yı bir daha keşfetmeye gerek yok) : 
 ?php
  function link_al($urll) {
  $url = file_get_contents($urll);
  preg_match_all(/href=\(.*?)\/i,$url,$gelen);
  for ($i=0; $icount($gelen[1]); $i++)
  {
  echo $gelen[1][$i].br;
  }
  }
  link_al(http://forum.ayva.net/index.php);
?
Daha sonra alınan btn linklerdeki id(identification yani benzersiz) leri bir diziye kaydetip, aynı id'yi birden fazla almamak iin dikkat etmelisiniz. Ve geldik en civciv li blme, linkten gerekli olan bilgiyi almakta sıra..
 ?php
$con=@file_get_contents(url);
  $baslik=explode('span id=bir zellik', $icerik);
  $baslik=explode('/span', $baslik[1]);
echo $baslik[0];
?

Yukarıdaki kodda ise url adlı linkten   ve   arasındaki html kodunun alınması sağlanıyor. Konun temel mantığı byle..</description>
<link>http://www.onurabi.com/oku/19/php-ile-bot-yapimi-ve-sitelerden-veri-cekmek.html</link>
</item>
<item>
<title>Yalnızlık</title>
<description>Kk ocukların yaptığı bir davranışı her zaman kendime rnek almaya alışmışımdır. Bu davranış , ilerinde buludukları ortam nasıl bir ortam olursa olsun, hibir zaman yalnızlık ekmemeleridir. Hemen kendi emsallerini arar, bulurular. Bu genelde ok kısa bir zaman iinde olur.Belki bu bir dezavantajdır. Tam olarak bilemiyorum. Fakat bildiğim bir şey var ki bu davranış kişinin değişik ortamlarda yanlızlığını nlyor.   Bu davranış biimini gerek hayatta uygulayan ok az kişi grdm. Ama internet dnyasında gayet ok grdm. Hemde istemeyeceğim kadar grdm. Birbirleriyle hi tanışmamış isimlerini bile bilmedikleri insanlar birbirleriyle eski bir dost edasıyla konuşabilmekte, en sonun "ya senin ismin neydi?" diyebilmekte. Bu acaba iyi birşey mi diye iimden geiriyorum, fakat sonra anlıyorum ki fazla laubali tavırlar insanı ileden ıkartabiliyor. Aslında basit birka nedenden dolayı byle samimi davranışlar oluyor. İlk neden karşıdaki kişinin seni tanımamasıdır. İnsan tanımadığı birisine en nemli sırlarını bile anlatabiliyor. Hibir zaman tanışamayacağın birisine sırlarını neden anlatmayasın ki. İkinci bir nedesi ise internet zerindeki grşmelerin eş zamanlı olarak gerekleşmemesi. Karşıdaki birşeyler yazıyor, sende yazdığı şeyleri dşnp cevap veriyorsun. Cevabı yazarken bile yanlış birşeyler sylediğini dşndğnde yazdıklarını silip tekrardan yazıyorsun. Buda karşındakini incitmemizi, kavga etmemizi epey bir engelliyor. Gerek hayatta nasıl ? Sylyorsun birden ağzından kamış oluyor. Şimdi internette sohbet iyidir diyecem fakat onuda diyemiyorum. İnsanları yanlızlığa ittiği gerek. Ne kadar koyu sohbet olursa olsun hibir zaman yz yze grşmenin tadını vermiyor, veremiyor.  Konuyu internete getirme fikri hi aklımda yoktu. İnternetsiz bir yazı yazacaktım. Fakat nasıl olduysa konuya girdi yine. Belki de hayatımızda epey bir yer ettiğinden byle her konuya giriyor internet.  yalnızlık belirli dnemlerde insana yenilenme şansı verdiğinden epeyde nemlidir. Yanlız başıma kaldığımda dşnceler sarıyor etrafımı. Bu dşncelerim genelde gn iinde yaptığım şeylerin yorumu niteliğinde. Yani bunu şunu syledim acaba iyi mi ettim kt m ettim. Hatalarımı grebiliyor, bu sayede aynı hataya iki kere dşmemiş oluyorum.  Uzatmadan bitiriyorum. yalnızlık az olduğu srece insanı iyileştirir, glendirir. ok uzun sre yalnızlık ise insanı bitirir.</description>
<link>http://www.onurabi.com/oku/18/yalnizlik.html</link>
</item>
</channel>
</rss>
