Tarayıcınız JavaScript destekli değildir. Sitemizden tam olarak yararlanmak için JavaScript özelliğini açınız.
  10:06:48 03.11.10

Turkcell 3G

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 :

Ajax İle E-Posta Listesi Yapımı

Sitenizde bir köşeye mail adresinizi giriniz bölümü koyarak, takipçilerine yeni yaptığınız yenilikleri duyurmak istiyorsunuz. Bunun için AJAX 'lı şık birşey güzel olur değil mi? Hem bu sayede sayfanız yenilenmemiş olur. Hemen çalışmamıza başlıyorum. AJAX gönderme işini JQuery kütüphanesini kullanarak yapacağım. İlk başta mail ekleme formunu hazırlıyoruz...

Adım adım açıklıyorum. İlk başta AJAX ile gönderildiğinde değişmesi için "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 içindekini sıfırlamak. Bunuda JQuery'nin içinde 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', gönderilecek adresin mail_ekle.php olduğunu belirtir.

data: $('#epostaliste').serialize(), veri olarak ne göndereceğimizi belirtir. Burda serialize fonksiyonu vardır ki tadından yenmez. Aslında burda direkt email'in içeriğini gönderebildim ama çok fazla textbox'un bulunduğu formlarda yazılması güçleşiyor bu yüzden direkt bu kodu yazarak bütün verilerin gelmesini sağlarsınız ;)
beforeSend : function(yukleniyor) { $('#epostalistediv').html('<div align="center"><img src="yukleniyor.gif" /></div>'); }, beforesend ile küçük bir yükleniyor resmi koyabiliriz sayfamıza. Bu resimi Ajax fonksiyonu sonuçlarını getirdiğinde kaldıracağız. .html işlevi bir yere birşey yazmak için kullanıldığını anlamışsınızdır.
success: function(ajaxCevap) { $('#epostalistediv').html(ajaxCevap); } ajax işlemi sonlandığında sonucun epostalistediv'de gösterilmesini 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 Düzenleme : 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 Türkçe 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 geçerli 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 "<strong>Mail 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 "<strong>Ba&#351;ar&#305;yla eklendi</strong>";
   }
   }
   else {
   // EMail Adresi geçersiz olduğunda, gönderilen mesaj, yeni bir form'da içine koyarak tekrardan girilmesini sağlıyoruz
   echo "<strong>Hatal&#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 Günler, İyi Çalışmalar

Yeni Logo Çalışmam

Tasarımdan çok fazla anlamadığımı biliyorum. Ama yineden birşeyler yapayım dedim, sizce nasıl oldu ?

Onur Neşvat

.htaccess ve Kalıcı Linkler (SEO)

Doğum günümde bir yazı yayınlayayım dedim. Ve başlıyorum yazıma Smile. 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

ÖSS 2008 Verileri | Giren Son Kişi Sırası

2008 ÖSS Sıralaması

Pdf dosyası şeklinde 2008 ÖSS sonuçlarına göre 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

[1] 2 3 4