SQL Komutları
Order By
Bu komut ile belirtilen kolona göre artan veya azalan bir sıralama ile sorgulama yapabiliriz.
ASC : kullanarak küçükten büyüğe doğru artan sıralama yapabiliriz.
DESC : kullanarak büyükten küçüğe doğru azalan sıralama yapabiliriz.
Ancak ASC kullanmak zorunlu değildir. Çünki default sıralama tipi ASC'dir. Aynı anda birkaç kolon üzerindende sıralama yapabiliriz.
örnek 1 :
SELECT * FROM personel ORDER BY ad ASC;
Bu query ile personel tablosundaki bütün kayıtları ad'a göre küçükten büyüğe dogru sıralarız.
örnek 2 :
SELECT * FROM personel ORDER BY soyad DESC;
Bu query da yukarıdakinin tersine kayıtları büyükten küçüğe dogru sıralar.
örnek 3 :
SELECT * FROM personel ORDER BY ad,soyad;
Bu query kayıları ad göre artan bir sıralama yapar. Ancak aynı ad ile yaratılmış birden fazla kayıt varsa ise bunlarıda soyad sırasına göre artan bir şekilde sıralar. Eğer her iki kolnda aynı ise o zaman okuduğu sırada sıralar.
örnek 4 :
SELECT * FROM personel ORDER BY dogum_tarihi DESC,ad,soyad ;
Bu query'de ise pernel kayıtları büyükten küçüğe doğru sıralanıyor. Yani en genç eleman'dan başlanarak en yaşlı elemana doğru bir liste yapılıyor. Doğum tarihleri aynı olanlarda ise ad ve soyad'a göre bir sıralama yapılmaktadır.
Where
Yukarıda yaptığımız sorgulamaların hepsinde hiç bir koşul belirtmedik.Yani bütün kayıtları tablolardan çektik. Ancak gerçek hayat'ta bu kayıtların sadece bir kısmına ihtiyaç duyarız.Bize gerekli olan dataları diğerlerinden ayıran bazı özellikleri vardır. İşte bu özellikleri bu komut yardımı ile kullanarak gerekli datalara ulaşabiliriz.
örnek 5 :
Adı ahmet olan personeli listelemek istersek ne yapacağız.Aşagıdaki gibi bir sorgulama yapacağız.
SELECT * FROM personel WHERE ad='ahmet';
örnek 6 :
Yaşı 40'dan büyük personeli listeleme istersek;
SELECT * FROM personel WHERE dogum_tarihi < '01.01.1959'
sorgulamasını kullanmalıyız.Elemanın 40 yaşında büyük olması için 1959 yılından önce doğmuş olması gerekmektedir. O halde dogum_tarihi 1959 yılından küçük olmalıdır.
örnek 7 :
Adana'da doğmuş personeli listelemek istersek
SELECT * FROM personel WHERE dogum_yeri = 'Adana'
örnek 8 :
300 milyondan fazla maaş alan kişileri işe maaşa göre sıralamak istersek;
SELECT * FROM ucretler WHERE aylik_ucret >= 300000000 ORDER BY aylik_ucret;
Operatörler
Her programlama dilinde olduğu gibi SQL'de de operatörler bulunur. Üç çeşit operatör mevcuttur. Karşılaştırma oparatörleri , mantıksal operatörler ve kümeleme operatörleri.Bu karşılaştırma operatörleri aşağıdaki gibidir ;
operatör anlamı
a>X ... X... a'dan küçük
a a=X ... X... a'ya eşit
a=>X ... X... a'dan küçük eşit
a<=X ... X... a'dan büyük eşit
a<>X ... X... a'ya eşit değil
Mantıksal operatörler ise AND,OR,NOT olarak verilebilir. Bu operatörler burada anlatmayacağız. Bunlar standart bütün dillerde aynı olan operatörlerdir.Kümeleme operatörleri ise datalar üzerinde gruplama yapmamızı sağlayan operatörlerdir.Bu operatörler Between , In , Like operatörleridir. Bu operatörlerin hepsini where ile birlikte kullanmalıyız.
Between : Aralıklı sorgulama yapmak istersek kullanabilecegimiz bir operatördür.
örnek 1 :
SELECT * FROM ucretler WHERE aylik_ucret BETWEEN 200000000 AND 300000000
Bu cümlecik ile 200 ile 300 milyon arasında maaş alanlar listelenecektir.
örnek 2 :
SELECT *
FROM fat_bsl
WHERE ft_tar BETWEEN '01.01.1998' and '04.06.1999'
Bu sorgulamada ise fatura tarihi 01.01.1998 ve 04.06.1999 tarihleri arasındaki faturalar listelenmiştir.Verilen tarih formatının sistemde kullanılan tarih formatı ile aynı olmasına dikkat edilmelidir. Yoksa sizin verdiğiniz tarih doğru olsa bile format farklı ise sorgulamanız geriye data döndürmez. (Yukarıdaki sorgulamada başıma geldide (:) )
In : Bu komut ile belli bir kolonun kümesini vererek işlemimizi daha kolay bir şekilde yapabiliriz.
örnek 3 :
SELECT * FROM personel WHERE meslek_id IN (1,2,3)
Buradaki örnek 'te 1,2 veya 3 meslek grubundan herhangi birine dahil olan personel listelenemektedir.Bu örnek aşagıdaki şekildeki gibide yapabiliriz;
SELECT * FROM personel
WHERE meslek_id=1 OR meslek_id=2 OR meslek_id=3
Like : Bu ise içinde belli bir karakter dizisi bulunan datalara ulaşmak istersek kullanabileceğimiz bir operatördür.
örnek 4 :
SELECT * FROM personel WHERE adres LIKE '%İstanbul%'
Bu sorgulama ile adres alanında İstanbul geçen kayıtları listelemiş oluruz.
örnek 5 :
SELECT * FROM personel WHERE adres LIKE '%İstanbul'
Bu sorgulama ile adres alanının sonunda İstanbul geçen kayıtları listelemiş oluruz.
örnek 6 :
SELECT * FROM personel WHERE adres LIKE 'İstanbul%'
Bu sorgulama ile adres alanının başında İstanbul geçen kayıtları listelemiş oluruz
SQL'de Yeni Bir Kayıt Eklemek
Tabloya yeni bir satır eklemek istersek INSERT INTO sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ;
INSERT INTO tablo adı VALUES (deger1,deger2,deger3,...)
Eğer sadece belirli sahalara değer girmek istersek INSERT INTO'yu aşağıdaki şekildeki gibide kullanabiliriz.
INSERT INTO tablo adı(kolon1,kolon3,kolon9,kolon7) VALUES (deger1,deger3,deger9,deger7)
örnek :
Yeni bir personel eklemek istersek ;
INSERT INTO personel VALUES ('asdf2345','Ahmet','Yıldırım','01.01.1960','Ankara','E',1,7,1,'ebuziya cad. Bakırköy')
örnek :
Yeni bir meslek eklemek istersek ;
INSERT INTO meslekler VALUES (23,'Belçi',200.000.000)
Bir tablodan bazı kayıtları başka bir tabloyada aktarabiliriz. Bunun için aşağıdaki gibi bir ifade yazmalıyız;
INSERT INTO tablo1
SELECT kolon1,kolon2,..
FROM tablo2
örnek :
INSERT INTO NEW_CUSTOMER
SELECT NAME,CITY
FROM CUSTOMER
SQL'de Tablolar Üzerinde İşlem Yapma
Genellikle veri tabanı kayıları oluştururken bütün bilgileri bir tabloda değilde birkaç tablo üzerinde tutarız.Bu dataların hem daha
düzenli durmasını hemde gereksiz veri tekrarlarını engellemiş olur.Şimdi farklı tablolara bölünmüş datalar üzerinde işlem yapmamız gerekirse ne yapmamız gerekir.Aslında fazla bir şey yapmamız gerekmez.Tek yapacağımız hangi tabloları kullanacaksak bunları from cümleceğinde belirtmemizdir.Tabloları belirtirken aralarıda , koymayı unutmazsak o zaman sorun yok.
örnek 1 :
Hangi personelin ne kadar maaş aldığını listelemek istersek;
SELECT ad,soyad,aylik_ucret
FROM personel,ucretler
WHERE sicil_no=per_sicil_no
örnek 2 :
İstanbul'da yaşayan Adana doğumlu personelin maaşlarını listelemek istersek;
SELECT ad,soyad,aylik_ucret
FROM personel,ucretler
WHERE sicil_no=per_sicil_no AND adres LIKE '%İstanbul%' AND
dogum_yeri = 'Adana'
örnek 3 :
300 milyondan fazla maaş alan ve 2 nolu meslek grubuna ait personeli listelemek istersek;
SELECT ad,soyad,aylik_ucret
FROM personel,ucretler
WHERE sicil_no=per_sicil_no AND aylik_ucret>300000000 AND meslek_id=2
örnek 4 :
Muhasebe meslek grubuna ait personel listesi;
SELECT ad,soyad
FROM personel,meslekler
WHERE meslek_id=meslek_id AND meslek_aciklama='Muhasebe'
Şimdi buradaki sorgulamımızda bir karışıklık söz konusu olacak.İki tane aynı isimde meslek_id oldu.Bunu şu şekilde engelleyebiliriz.
Tablolarda aynı isimde iki kolon varsa bu kolanları kullanırken başlarıda tablo ismini getiririz araya bir nokta koyarak kolon adını yazarız.
SELECT ad,soyad
FROM personel,meslekler
WHERE personel.meslek_id=meslekler.meslek_id
AND meslek_aciklama='Muhasebe'
örnek 5 :
Şirketimizde 30 yıldır çalışan ve 200 milyon altında maaş alan personeli ödüllendirecegiz.
Bunun için nasıl bir sorgulama yapmalıyız.
SELECT ad,soyad
FROM personel,ucretler
WHERE sicil_no=per_sicil_no AND baslama_tarihi < '01.01.1969'
AND aylik_ucret < 200000000
örnek 6 :
22 yaşından büyük bilgi işlemde çalışan bayan personeli listelemek istersek
(NOT : cinsiyet= 0 : bayan 1 : erkek
medeni_hal= 0 : bekar 1 : evli )
SELECT ad,soyad
FROM personel,meslekler
WHERE personel.meslek_id=meslekler.meslek_id
AND meslek_aciklama='Bilgi İşlem' AND cinsiyet=0
AND dogum_tarihi < '01.01.1977'
örnek 7 :
40 yaşından küçük ,bilgi işlem veya muhasebe bölümünde çalışan,erkek,200 milyondan
fazla maaş alan ,Ankara doğumlu ,Sarıyer'de oturan,10 yıldan fazla şirkette çalışan , bekar
,10 milyondan fazla kesinti yapılan personeli listelemek istersek;
SELECT ad,soyad
FROM personel,meslekler,ucretler
WHERE dogum_tarihi > '01.01.1959'
AND personel.meslek_id=meslekler.meslek_id
AND (meslek_aciklama='Bilgi İşlem' OR meslek_aciklama='Muhasebe')
AND cinsiyet=1
AND sicil_no=per_sicil_no AND aylik_ucret > 200000000
AND dogum_yeri='Ankara'
AND adres LIKE '%Sarıyer%'
AND baslama_tarihi > '01.01.1989'
AND medeni_hal=0
AND kesinti>10000000
örnek 8 :
Muhasebe ve Pazarlama bölümü dışında çalışan perseneli listelemek istersek;
SELECT ad,soyad
FROM personel,meslekler
WHERE personel.meslek_id=meslekler.meslek_id
AND meslek_aciklama<>'Pazarlama' AND meslek_aciklama<>'Muhasebe'
örnek 9 :40 yaşları arasında İzmir ve Bursa doğumlu adayları listelemek istersek;
SELECT ad,soyad
FROM personel
WHERE dogum_tarihi BETWEEN '01.01.1959' AND '01.01.1969'
AND (dogum_yeri='İzmir' OR dogum_yeri='Bursa')
örnek 10 :
Adı E ile başlayan, 3,5 ve 7 nolu meslek grubuna ait ,bayan,bekar,30 yaşından küçük ,
100 milyondan fazla maaş alan personel listesi ;
SELECT ad,soyad
FROM personel,ucretler
WHERE ad LIKE 'E%'
AND meslek_id IN (3,5,7)
AND cinsiyet=0
AND medeni_hal=0
AND dogum_tarihi > '01.01.1969'
AND sicil_no=per_sicil_no
AND aylik_ücret > 100000000
örnek 11 :Evli ve aile yardımı almayan persenol listesi;
SELECT ad,soyad FROM personel,ucretler WHERE medeni_hal=1 AND aile_yardim=0
SQL Tablo'dan Kayıt Silmek
Tablodan bir satır silmek istersek DELETE sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ;
DELETE FROM tablo adı
Eğer yukarıdaki gibi bir sorgulama yazıp çalıştırırsak tablodaki bütün kayıtları sileriz. Bunun için DELETE cümleciğini kullanırken dikkat edilmelidir.
örnek :Sicil nosu 12345678 olan kayıt silinmek istenirse;
DELETE FROM personel WHERE sicil_no='12345678'
örnek :
Doğum tarihi 1940'dan önce doğmuş personel kayıtları silinmek istenirse ;
DELETE FROM personel WHERE dogum_tarihi<'0
SQL'de Kayıt Değişikliği
Tablodan bir kayıtı değiştirmek istersek UPDATE sözcüğünü kullanırız. Genel kullanım şekli aşağıdaki biçimdedir ;
UPDATE tablo adı
SET kolon1=deger1,kolon2=deger2,...
WHERE kosul;
örnek :Sicil nosu 12345678 olan kayıtın adresi değiştirlmek istenirse ;
UPDATE personel SET adres='Bronz Sok. Teşvikiye' WHERE sicil_no='12345678'
örnek :Bütün personele uygulanan kesinti ücreti 10.000.000 sabit olarak belirlenirse ;
UPDATE ucretler SET kesinti=10000000
örnek :
Bütün personelin maaşına %20 zam yapılırsa ;
UPDATE ucretler SET aylik_ucret=aylık_ucret*1.20
SQL Gruplama Fonksiyonları
(SUM,AVG,MIN,MAX,COUNT(*),COUNT(DISTINCT))
MAX
Verilen kolondaki en büyük değeri geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select MAX(kolon_adı) FROM tablo;
örnek :En fazla aylık ücret alan personel ne kadar maaş alıyor?
Select MAX(aylik_ucret) From ucretler;
örnek :En fazla aile yardımı alan personelin maaşını ve sicil no'sunu öğrenmek istersek ;
Select per_sicil_no,MAX(aylik_ucret) From ucretler ;
MIN
Verilen kolondaki en küçük değeri geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select MIN(kolon_adı) FROM tablo;
örnek : En düşük aylık ücret alan personel ne kadar maaş alıyor ?
Select MIN(aylik_ucret) From ucretler;
örnek :
En az aile yardımı alan personelin maaşını ve sicil no'sunu öğrenmek istersek ;
Select per_sicil_no,MIN(aylik_ucret) From ucretler ;
SUM
Verilen kolondaki Bütün değerleri toplayarak geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select SUM(kolon_adı) FROM tablo;
örnek :Personele ödenen toplam ücret nedir ?
Select SUM(aylik_ucret) From ucretler;
örnek : Toplam ödenen aile yardımı bulunmak istenirse
Select SUM(aile_yardimi) From ucretler ;
AVG
Verilen kolondaki değerlerin aritmetiksel ortalamsını geri döndürür. Genel yazım biçimi aşağıdaki gibidir;
Select AVG(kolon_adı) FROM tablo;
örnek :
Aylık ödenen ücret ortalamasını bulmak istersek ;
Select AVG(aylik_ucret) From ucretler;
COUNT(*)
Verilen tablodaki record sayısını geri döndürür. Genel yazım biçimi aşağıdaki gibidir ;
Select COUNT(*) FROM tablo;
örnek : Kaç tane personel çalıştığını listelenmek istersek;
Select COUNT(*) From personel;
COUNT(DISTINCT ..)
Verilen kolondaki unique record sayısını geri döndürür. Genel yazım biçimi aşağıdaki gibidir ;
Select COUNT(DISTINCT kolon_adı) FROM tablo;
örnek :İsmi farklı kaç tane personel çalıştığını listelenmek istenirse;
Select COUNT(DISTINCT ad) From personel;
örnek 1:En yüksek taban ücret olan meslek listelenmek istenirse ;
Select MAX(taban_ücret) From meslekler;
örnek 2:Ortalama taban ücret listelenmek istenirse ;
Select AVG(taban_ücret) From meslekler;
örnek 3:30.01.1990 yılından sonra işe başlıyanların ortalama ücreti hesaplanmak istenirse;
Select AVG(aylik_ücret) From ucretler Where baslama_tarihi>'30.01.1990';
örnek 4:Maaşından kesinti yapılan personele ödenen toplam ücret bulunmak istenirse ;
Select SUM(aylik_ücret) From ucretler Where kesinti>0;
26 Ağustos 2008 Salı
XML (Extensible Markup Language) Nedir?
XML (Extensible Markup Language) Nedir?
Genişletilebilir İşaretleme Dili (XML) WEB deki yapılandırılmış döküman ve bilgilerin evrensel bir dilidir. HTML dilinden farklı olarak XML, kullanıcıya kendi anahtarlarını ve kendi yapısını oluşturmasına izin verir. Bu yönüyle daha esnek ve daha okunabilir olan XML, HTML dili yerine oluşturulmuş bir dil olmayıp, HTML ile birlikte kullanılmak üzere tasarlanmıştır. XML, HTML ile birlikte kullanılarak Web Sayfalarının yeteneklerini;
Sanal olarak herhangi bir belge türünü teslim etme
Bilgiyi başka yöntemlerle sıralama, süzme, yeniden düzenleme, bulma ve değiştirme
Bilgiyi çok iyi yapılandırarak sunmayönünde artırmaktadır.
XML’in Yapısı:
Adres bilgileri, Konfigürasyon parametreleri, teknik çizim, Hesap Çizelgesi (Spreadsheet) gibi öğeler içeren dosyaların yazılımında kullanılır. XML bir programlama dili değildir. Bu bakımdan bir bilgisayar programcısı olmak gerekmez. XML genişletilebilir; kullandığınız platformdan bağımsızdır ve evrenselleştirilebildiği gibi, yerelleştirilebilme özelliğine de sahiptir.
Hesap Çizelgesi (Spreadsheet), adres defteri, ve diğer yapılandırılmış bilgi üreten programlar bu verileri diskte ikilik sistemde ya da yazı olarak tutarlar. Bu dosyaları diskte yazı olarak tutmanın avantajı, o dosyayı açmak için oluşturulmuş olduğu programda açılmasının gerekli olmamasıdır. Bu yazı dosyaları kişinin istediği bir yazı işleme programında açılıp düzenlenebilir. XML, HTML gibi bir yazıdır. Bu özelliğiyle geliştiriciler (developers) XML dosyalarını kolayca yazabilir, dil hatalarını daha kolay bulabilirler ve herhangi bir yazı editöründe düzenlenebilir.
XML, HTML gibi anahtarlar ve öznitelikler kullanır. HTML de yazılan anahtarlar ve öznitelikler gözatıcıda belirli bir şekilde gösterilir. Ancak XML de anahtarlar ve özniteliklerin nasıl tanınacağı ve nasıl gösterileceği yazar tarafında belirtilir. Örneğin; anahtarı HTML de eğik yazıyı (italic) belirtirken, XML de yazının içeriğine göre iş, iletişim, istek gibi birşey olabilir. Buna karşın XML, HTML’den farklı olarak yazım konusunda daha katı kurallar içerir. Yanlış bir anahtar, tırnak içine alınmamış bir öznitelik XML dosyasının tamamen kullanılmaz duruma gelmesi için yeterlidir.
XML’in Tarihçesi:
XML’in gelişmesi 1996 da başladı ve World Wide Web Consortium tarafından 1998 de tavsiye edilmiştir. Bu tarihlere bakarak XML in daha gelişmemeş bir dil olduğu düşünülebilir, ancak XML den önce SGML (Structured Generalized Markup Language) vardı. 1980 lerden önce geliştirildi ve 1986 da ISO standartlarına girdi. HTML in geliştirilmesi de 1990 da başladı. XML in yapımcıları SGML in en güçlü bölümlerini aldı ve HTML in deneyimleriyle birleştirerek SGML kadar güçlü bir işaretleme dili olan XML’i yarattılar.
XML’in Bazı Önemli Özellikleri:
XML bazı formatları birleştirerek ve yeniden işleyerek yeni bir format oluşturmanıza izin verir. XML bu yönüyle modiler bir işaretleme dilidir.
XML dilini şeçmek, bir veritabanı (database) için SQL seçmek gibidir. Ikisinde de veritabanını, programları ve bunları kontrol eden işlemleri kendiniz yazmanız gerekmektedir. XML ile bu işi yapmak için oldukça fazla programa ve size yardım edecek oldukça fazla kişiye sahipsiniz.
XML tamamen bedava bir programlama dilidir. Bu bakımdan kendi programınızı yapabilirsiniz ve bunun için kimseye para ödemenize gerek yoktur.
XML’in Gerçek Yaşamda Kullanıldığı Alanlar:
· Veritabanları depolamak
· Belgeleri yapılandırmak
· Vektörel grafikleri depolamak
· Çoklu ortam sunumlarını tanımak
· Kanalları tanımlamak
· Yazılım paketlerini ve bunların iç bağımlılıklarını tanımlamak
· Web üzerinde uygulamalar arasında XML tabanlı iletileri kullanarak açık ve genişletilebilir bir yöntemle haberleşmek
· E-posta ile elektronik kartvizit göndermek
· Finansal bilgi alış-verişinde bulunmak
· Iş tanımları ve özgeçmişleri iletmek
· Web’deki matematik formülleri ve bilimsel içeriği biçimlendirmek
· Moleküler yapıları tanımlamak
· DNA, RNA ve protein sırası bilgisini kodlamak ve görüntülemek
· Evrim teorisini kodlamak
· Astronomi bilgisini iletmek
· Müzik notaları yazmak
· Taşıma hizmeti için yol bilgisini depolamak
· Yasal belgeleri toplamak ve elektronik ortamda iletmek
Genişletilebilir İşaretleme Dili (XML) WEB deki yapılandırılmış döküman ve bilgilerin evrensel bir dilidir. HTML dilinden farklı olarak XML, kullanıcıya kendi anahtarlarını ve kendi yapısını oluşturmasına izin verir. Bu yönüyle daha esnek ve daha okunabilir olan XML, HTML dili yerine oluşturulmuş bir dil olmayıp, HTML ile birlikte kullanılmak üzere tasarlanmıştır. XML, HTML ile birlikte kullanılarak Web Sayfalarının yeteneklerini;
Sanal olarak herhangi bir belge türünü teslim etme
Bilgiyi başka yöntemlerle sıralama, süzme, yeniden düzenleme, bulma ve değiştirme
Bilgiyi çok iyi yapılandırarak sunmayönünde artırmaktadır.
XML’in Yapısı:
Adres bilgileri, Konfigürasyon parametreleri, teknik çizim, Hesap Çizelgesi (Spreadsheet) gibi öğeler içeren dosyaların yazılımında kullanılır. XML bir programlama dili değildir. Bu bakımdan bir bilgisayar programcısı olmak gerekmez. XML genişletilebilir; kullandığınız platformdan bağımsızdır ve evrenselleştirilebildiği gibi, yerelleştirilebilme özelliğine de sahiptir.
Hesap Çizelgesi (Spreadsheet), adres defteri, ve diğer yapılandırılmış bilgi üreten programlar bu verileri diskte ikilik sistemde ya da yazı olarak tutarlar. Bu dosyaları diskte yazı olarak tutmanın avantajı, o dosyayı açmak için oluşturulmuş olduğu programda açılmasının gerekli olmamasıdır. Bu yazı dosyaları kişinin istediği bir yazı işleme programında açılıp düzenlenebilir. XML, HTML gibi bir yazıdır. Bu özelliğiyle geliştiriciler (developers) XML dosyalarını kolayca yazabilir, dil hatalarını daha kolay bulabilirler ve herhangi bir yazı editöründe düzenlenebilir.
XML, HTML gibi anahtarlar ve öznitelikler kullanır. HTML de yazılan anahtarlar ve öznitelikler gözatıcıda belirli bir şekilde gösterilir. Ancak XML de anahtarlar ve özniteliklerin nasıl tanınacağı ve nasıl gösterileceği yazar tarafında belirtilir. Örneğin; anahtarı HTML de eğik yazıyı (italic) belirtirken, XML de yazının içeriğine göre iş, iletişim, istek gibi birşey olabilir. Buna karşın XML, HTML’den farklı olarak yazım konusunda daha katı kurallar içerir. Yanlış bir anahtar, tırnak içine alınmamış bir öznitelik XML dosyasının tamamen kullanılmaz duruma gelmesi için yeterlidir.
XML’in Tarihçesi:
XML’in gelişmesi 1996 da başladı ve World Wide Web Consortium tarafından 1998 de tavsiye edilmiştir. Bu tarihlere bakarak XML in daha gelişmemeş bir dil olduğu düşünülebilir, ancak XML den önce SGML (Structured Generalized Markup Language) vardı. 1980 lerden önce geliştirildi ve 1986 da ISO standartlarına girdi. HTML in geliştirilmesi de 1990 da başladı. XML in yapımcıları SGML in en güçlü bölümlerini aldı ve HTML in deneyimleriyle birleştirerek SGML kadar güçlü bir işaretleme dili olan XML’i yarattılar.
XML’in Bazı Önemli Özellikleri:
XML bazı formatları birleştirerek ve yeniden işleyerek yeni bir format oluşturmanıza izin verir. XML bu yönüyle modiler bir işaretleme dilidir.
XML dilini şeçmek, bir veritabanı (database) için SQL seçmek gibidir. Ikisinde de veritabanını, programları ve bunları kontrol eden işlemleri kendiniz yazmanız gerekmektedir. XML ile bu işi yapmak için oldukça fazla programa ve size yardım edecek oldukça fazla kişiye sahipsiniz.
XML tamamen bedava bir programlama dilidir. Bu bakımdan kendi programınızı yapabilirsiniz ve bunun için kimseye para ödemenize gerek yoktur.
XML’in Gerçek Yaşamda Kullanıldığı Alanlar:
· Veritabanları depolamak
· Belgeleri yapılandırmak
· Vektörel grafikleri depolamak
· Çoklu ortam sunumlarını tanımak
· Kanalları tanımlamak
· Yazılım paketlerini ve bunların iç bağımlılıklarını tanımlamak
· Web üzerinde uygulamalar arasında XML tabanlı iletileri kullanarak açık ve genişletilebilir bir yöntemle haberleşmek
· E-posta ile elektronik kartvizit göndermek
· Finansal bilgi alış-verişinde bulunmak
· Iş tanımları ve özgeçmişleri iletmek
· Web’deki matematik formülleri ve bilimsel içeriği biçimlendirmek
· Moleküler yapıları tanımlamak
· DNA, RNA ve protein sırası bilgisini kodlamak ve görüntülemek
· Evrim teorisini kodlamak
· Astronomi bilgisini iletmek
· Müzik notaları yazmak
· Taşıma hizmeti için yol bilgisini depolamak
· Yasal belgeleri toplamak ve elektronik ortamda iletmek
Javascript: Sayfa yonlendirme scripti
5 saniye içerisinde Webmaster Araclarıadresine yönlendirileceksiniz...
MySql veritabanına bağlantı sınıfı
link=mysql_connect($host,$dbUser,$dbPass); if($this->link==false){echo("Veritabanına bağlanılamadı."); }else{if(mysql_select_db($dbName,$this->link)==false) {echo("Veritabanı bulunamadı.");}}}}// Örnek kullanım$obj=new db("localhost","root","","veritabaniadi");?>
CURL , ( Client URL Library Functions)
PHP 4.0.2 versiyonu ile yanında çok işe yarayacak bir kütüphane getirdi. Curl kütüphanesiyle upload/download, GET/POST işlemleri, çerez ve proxy yollama işlemleri, kullanıcı, şifre onaylama sayfaları(auth.) yapılabilir.Bu makaleyi okumadan önce sunucunuzda curl yüklü olup olmadığından emin olun. Eğer yüklü değilse http://curl.haxx.se/libcurl/php/install.html adresinden nasıl yükleme & kurulum yapıldığına bakabilirsiniz.Curl oturumlarında sıkça kullanacağımız birkaç fonksiyon var.curl_init() : Yeni bir curl oturumu başlatır.curl_setopt() : Curl transferi için seçenekleri parametreler halinde kullanmaya yarar.curl_exec() : curl_setopt() ile belirlenmiş seçenekleri işler ve transfer işlemini yapar.curl_close() : Daha önceden curl_init ile açılmış curl oturumunu kapatır.curl_getinfo() : Yapılan curl işlemi hakkında çeşitli bilgilere ulaşmak için kullanılır.Bu fonksiyonların hakkında daha ayrıntılı bilgiye tıklayarak (php manual) ulaşabilirsiniz. Curl ile bir sayfanın çıktısını alan örnek bir uygulama yapalım.
// Curl oturum baslatiliyor.$ch = curl_init();// URLcurl_setopt($ch, CURLOPT_URL, "http://www.xhandros.net/bl/index.php");curl_setopt($ch, CURLOPT_HEADER, 0);curl_exec($ch); // ekrana basiliyorcurl_close($ch); // sunucu hafizasindan siliniyorBu kod URL içeriğini sayfaya basacaktır. curl_init ile yeni bir oturum başlatıldı, setopt ile transfer seçenekleri tanımlandı, işlem yapıldı ve curl_close ile hafızadan silindi. curl_setopt içindeki header parametresi sayfa çıktısını almak için gerekli. Url parametresi ise çıktısı alınacak adresi temsil ediyor. curl_init("$adres"); şeklinde yapılma imkanıda mevcut.Şimdide curl ile localde olmayan bir sunucuya POST olarak veri gönderelim.
$ch = curl_init(); // oturum baslat// POST adresicurl_setopt($ch, CURLOPT_URL,"http://www.site.com/test.php");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS,"isim=ahmet&soyad=yilmaz");curl_exec ($ch);curl_close ($ch);POSTFIELDS seçeneğinde, normalde nasıl GET ile browser üzerinden veri yolluyorsak aynı şekilde yolluyoruz. Bu şekilde üyelik isteyen sitelere otomatik olarak üyelikler açılabilir. (foreach yardımıyla).çeşitli log sistemlerinde kullanılabilir. Mesela yazıp, sattığınız sistemlerin nerelerde kullanıldığını loglamak için kendi sunucunuza nerede kullanıldığına ait çeşitli bilgiler yollayabilirsiniz.curl ile sockets kütüphanesinde olduğu gibi sahte isteklerde yollamak mümkündür. Örneğin; referer bilgisini istediğimiz şekilde değiştirip istek gönderebiliriz.
$ch = curl_init();curl_setopt($ch, CURLOPT_URL,"http://localhost/test.php");curl_setopt($ch,CURLOPT_REFERER,"ceviz.net");curl_exec ($ch);curl_close ($ch);CURLOPT_REFERER parametresini istediğimiz şekilde değiştirdik Bu şekilde ".htaccess" ile yapılan korumalarda aşılabiliyor. Diğer sayfada öğrendiklerimizle birkaç CURLOPT parametresi ekleyip bir dosya indirme fonksiyonu yazalım.
Şimdi gelelim sistemin nasıl işlediğine ;İlk once curl'un yüklü olup olmadığına bakılıyor, eğer yüklü değilse hata mesajı veriliyor. Curl işlemi başlatıldıktan sonra CURLOPT_RETURNTRANSFER seçeneğiyle curl_exec()'ten dönen dener sayfaya çıktı olarak verilmez, tanımlandığı değişkende, örnekte $data tutulur. $data değişkenine adres'in bilgileri alındıktan sonra dosya yazma işlemi fonksiyonları ile sunucuda yeni dosya oluşturulur. Sonra dosya indirme işlemi tamamlanır. Eğer bu işlemi local olmayan sunucunuzda yaparsanız çok büyük dosyaları çok az bir zamanda çekebileceğinizi görebilirsiniz.Ben yaptığım testlerde saniyede 400 kb civarı çekiyordum İşleme curl_Getinfo altında CURLINFO_SPEED_DOWNLOAD parametresi eklerseniz download hızını ölçebilirsiniz.
$dlhizi = curl_getInfo($ch,"CURLINFO_SPEED_DOWNLOAD");Tüm bu fonksiyonun yaptığını *nix curl'u ilede yapabilirsiniz. Örneğin;
system("curl -o dosyaadi.rar http://www.ceviz.net/dosyaadi.rar ");aynı işi görecektir. Ama system, passthru gibi komutlar güvenlik nedeniyle genelde yasaklıdır.Genel olarak curl kullanımını anlamışsınızdır umarım. Şu an için curl hakkında daha fazla bilgi bulmak isterseniz 2 adresle sınırlısınız. http://www.php.net/curl/ ve http://curl.haxxe.se/ adresleri işinize yarayabilir
// Curl oturum baslatiliyor.$ch = curl_init();// URLcurl_setopt($ch, CURLOPT_URL, "http://www.xhandros.net/bl/index.php");curl_setopt($ch, CURLOPT_HEADER, 0);curl_exec($ch); // ekrana basiliyorcurl_close($ch); // sunucu hafizasindan siliniyorBu kod URL içeriğini sayfaya basacaktır. curl_init ile yeni bir oturum başlatıldı, setopt ile transfer seçenekleri tanımlandı, işlem yapıldı ve curl_close ile hafızadan silindi. curl_setopt içindeki header parametresi sayfa çıktısını almak için gerekli. Url parametresi ise çıktısı alınacak adresi temsil ediyor. curl_init("$adres"); şeklinde yapılma imkanıda mevcut.Şimdide curl ile localde olmayan bir sunucuya POST olarak veri gönderelim.
$ch = curl_init(); // oturum baslat// POST adresicurl_setopt($ch, CURLOPT_URL,"http://www.site.com/test.php");curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS,"isim=ahmet&soyad=yilmaz");curl_exec ($ch);curl_close ($ch);POSTFIELDS seçeneğinde, normalde nasıl GET ile browser üzerinden veri yolluyorsak aynı şekilde yolluyoruz. Bu şekilde üyelik isteyen sitelere otomatik olarak üyelikler açılabilir. (foreach yardımıyla).çeşitli log sistemlerinde kullanılabilir. Mesela yazıp, sattığınız sistemlerin nerelerde kullanıldığını loglamak için kendi sunucunuza nerede kullanıldığına ait çeşitli bilgiler yollayabilirsiniz.curl ile sockets kütüphanesinde olduğu gibi sahte isteklerde yollamak mümkündür. Örneğin; referer bilgisini istediğimiz şekilde değiştirip istek gönderebiliriz.
$ch = curl_init();curl_setopt($ch, CURLOPT_URL,"http://localhost/test.php");curl_setopt($ch,CURLOPT_REFERER,"ceviz.net");curl_exec ($ch);curl_close ($ch);CURLOPT_REFERER parametresini istediğimiz şekilde değiştirdik Bu şekilde ".htaccess" ile yapılan korumalarda aşılabiliyor. Diğer sayfada öğrendiklerimizle birkaç CURLOPT parametresi ekleyip bir dosya indirme fonksiyonu yazalım.
Şimdi gelelim sistemin nasıl işlediğine ;İlk once curl'un yüklü olup olmadığına bakılıyor, eğer yüklü değilse hata mesajı veriliyor. Curl işlemi başlatıldıktan sonra CURLOPT_RETURNTRANSFER seçeneğiyle curl_exec()'ten dönen dener sayfaya çıktı olarak verilmez, tanımlandığı değişkende, örnekte $data tutulur. $data değişkenine adres'in bilgileri alındıktan sonra dosya yazma işlemi fonksiyonları ile sunucuda yeni dosya oluşturulur. Sonra dosya indirme işlemi tamamlanır. Eğer bu işlemi local olmayan sunucunuzda yaparsanız çok büyük dosyaları çok az bir zamanda çekebileceğinizi görebilirsiniz.Ben yaptığım testlerde saniyede 400 kb civarı çekiyordum İşleme curl_Getinfo altında CURLINFO_SPEED_DOWNLOAD parametresi eklerseniz download hızını ölçebilirsiniz.
$dlhizi = curl_getInfo($ch,"CURLINFO_SPEED_DOWNLOAD");Tüm bu fonksiyonun yaptığını *nix curl'u ilede yapabilirsiniz. Örneğin;
system("curl -o dosyaadi.rar http://www.ceviz.net/dosyaadi.rar ");aynı işi görecektir. Ama system, passthru gibi komutlar güvenlik nedeniyle genelde yasaklıdır.Genel olarak curl kullanımını anlamışsınızdır umarım. Şu an için curl hakkında daha fazla bilgi bulmak isterseniz 2 adresle sınırlısınız. http://www.php.net/curl/ ve http://curl.haxxe.se/ adresleri işinize yarayabilir
PHP ile rasgele şifreler üretmek
Rastgele şifre üretme fonksiyonu
Rastgele şifre üretmeye yarayan fonksiyonumuz alttaki. Çok daha uzunları ve çok daha kısaları yazılabilir. Fakat alttaki işinizi görecektir
Rastgele şifre üretmeye yarayan fonksiyonumuz alttaki. Çok daha uzunları ve çok daha kısaları yazılabilir. Fakat alttaki işinizi görecektir
function sifre_uret($uzunluk) {$karakterler = "abcdefghijklmnopqrstuvwxyz1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ-*_!@#$()+=";$karakter_sayi = strlen($karakterler);for ($ras = 0; $ras <$uzunluk; $ras++) {$rakam_ver = rand(0,$karakter_sayi-1);$sifre_ver .= $karakterler[$rakam_ver];}return $sifre_ver;}
Nasıl oluyor?Fonksiyonumuzu çağırırken $uzunluk değişkeni ile şifre uzunluğunu tanımlıyoruz. $karakterler ile şifre içerisinde yer alacak karakterleri tanımladık. Ve hemen sonrasında toplam karakter sayısını bulduk. Şifre uzunluğu kadar bir döngü yarattık ardından ve her seferinde toplam karakter sayısının bir altı kadar rakam arasından rastgele birini seçtik. (bir eksiği kadar çünkü dizi değişkenler 0 numaradan başlar).. Sonrasında ise tanımlı karakterlerimizden az önce rastgele üretilen rakam sırasında olanı seçtik.. Hepsi bu kadar Kullanımı
sifre_uret(8);
Şeklindeki kullanım ile 8 karakter uzunluğunda bir şifre elde ederiz
PHP - PHP Nedir?? - PHP Tarihçesi
PHP Tarihçesi
PHP, ilk olarak 1990�lı yılların ortalarında Rasmus Lerdorf tarafından geliştirilmeye başlanmıştır. Lerdorf�un amacı kişisel bilgilerini internet üzerinden yayınlamaktı. O tarihteki teknolojide, günümüzdeki gibi gelişmiş web tasarım yazılımlarının bulunmamasından dolayı , kişisel web sayfası yapmak çok daha zordu. Buradan yola çıkarak, kişisel web sayfası yapmak için bir yazılım hazırladı ve adına Personal Home Page (PHP) adını verdi. PHP, Perl dili üzerine kurulu bir dil olarak geliştirilmeye başlanmıştır. PHP� nin çok tutulması üzerine web tasarımcılarının çok ihtiyacı olan, yani form yoluyla ziyaretçiden gelen bilgileri işlemeyi sağlayan eklemeler yapılarak adına PHP/FI (Form Interpreter) adını aldı. Kimileri tarafından programın bu versiyonu PHP2 olarak adlandırıldı. 1995 yılının ortalarında PHP Lerdorf�un kurmuş olduğu bir grup tarafından daha da geliştirildi. Bu sefer Perl dilindeki fonksiyonlardan tamamen arındırılmış ve Object Oriented (Nesneye Dayalı) bir dil haline getirildi.
Günümüzde PHP4 versiyonu ardından çok daha güçlü ve çok daha çok özellikli halde PHP5 versiyonu geliştirilmiş durumdadır. PHP dili Linux gibi Açık Kaynak Kodlu bir dildir ve ücretsiz olarak dağıtılmaktadır ve geliştirilmektedir. Linux, Unix, Windows tabanlı işletim sistemlerinde çalışabilen versiyonları mevcuttur.
PHP Nedir?
Platformdan bağımsız (Windows,Linux, Etc.) çalışabilen sunucu taraflı, Html gömülü betik dilidir. Perl, C/C++ tipinde script dilidir. Bu dillere aşina olanlar ve herhangi bir programlama dilini bilenler PHP yi fazla vakit kaybetmeden öğrenebilirler.
Oracle, Adabas D, Sybase, FilePro, mSQL, Velocis, mySQL, Informix, Solid,dBase, ODBD Unix dbm ve PostgreSQL veritabanlarıyla güvenli iletişim kurabilir ve IMAP, SNMP, NNTP , POP3 , HTTP servislerine bağlantı kurabilmektedir.
Platform olarak "Linux & Apache & mySQL" kullanılması en yaygın ve önerilendir. Siz kendi sisteminizde de sorunsuz kullanabilirsiniz.
Diğer Betik Dillerinden Farkı
--------------------------------------------------------------------------------
Php'nin diğer betik dillerinden farkı mevcuttur. Bunlar;
PHP'nin JavaScript gibi istemci tarafına hitap eden betik dillerinden en önemli tarafı sunucu tarafından yorumlanmasıdır.
PHP'de istemcinin istediği betiğin söz dizimi JavaScript'deki gibi HTML kodunun içerisinde görünmez.
PHP'nin Perl gibi betik dillerinden en önemli farkı HTML içine gömülebilmesidir.
PHP, ilk olarak 1990�lı yılların ortalarında Rasmus Lerdorf tarafından geliştirilmeye başlanmıştır. Lerdorf�un amacı kişisel bilgilerini internet üzerinden yayınlamaktı. O tarihteki teknolojide, günümüzdeki gibi gelişmiş web tasarım yazılımlarının bulunmamasından dolayı , kişisel web sayfası yapmak çok daha zordu. Buradan yola çıkarak, kişisel web sayfası yapmak için bir yazılım hazırladı ve adına Personal Home Page (PHP) adını verdi. PHP, Perl dili üzerine kurulu bir dil olarak geliştirilmeye başlanmıştır. PHP� nin çok tutulması üzerine web tasarımcılarının çok ihtiyacı olan, yani form yoluyla ziyaretçiden gelen bilgileri işlemeyi sağlayan eklemeler yapılarak adına PHP/FI (Form Interpreter) adını aldı. Kimileri tarafından programın bu versiyonu PHP2 olarak adlandırıldı. 1995 yılının ortalarında PHP Lerdorf�un kurmuş olduğu bir grup tarafından daha da geliştirildi. Bu sefer Perl dilindeki fonksiyonlardan tamamen arındırılmış ve Object Oriented (Nesneye Dayalı) bir dil haline getirildi.
Günümüzde PHP4 versiyonu ardından çok daha güçlü ve çok daha çok özellikli halde PHP5 versiyonu geliştirilmiş durumdadır. PHP dili Linux gibi Açık Kaynak Kodlu bir dildir ve ücretsiz olarak dağıtılmaktadır ve geliştirilmektedir. Linux, Unix, Windows tabanlı işletim sistemlerinde çalışabilen versiyonları mevcuttur.
PHP Nedir?
Platformdan bağımsız (Windows,Linux, Etc.) çalışabilen sunucu taraflı, Html gömülü betik dilidir. Perl, C/C++ tipinde script dilidir. Bu dillere aşina olanlar ve herhangi bir programlama dilini bilenler PHP yi fazla vakit kaybetmeden öğrenebilirler.
Oracle, Adabas D, Sybase, FilePro, mSQL, Velocis, mySQL, Informix, Solid,dBase, ODBD Unix dbm ve PostgreSQL veritabanlarıyla güvenli iletişim kurabilir ve IMAP, SNMP, NNTP , POP3 , HTTP servislerine bağlantı kurabilmektedir.
Platform olarak "Linux & Apache & mySQL" kullanılması en yaygın ve önerilendir. Siz kendi sisteminizde de sorunsuz kullanabilirsiniz.
Diğer Betik Dillerinden Farkı
--------------------------------------------------------------------------------
Php'nin diğer betik dillerinden farkı mevcuttur. Bunlar;
PHP'nin JavaScript gibi istemci tarafına hitap eden betik dillerinden en önemli tarafı sunucu tarafından yorumlanmasıdır.
PHP'de istemcinin istediği betiğin söz dizimi JavaScript'deki gibi HTML kodunun içerisinde görünmez.
PHP'nin Perl gibi betik dillerinden en önemli farkı HTML içine gömülebilmesidir.
PHP nedir? PHP nerelerde kullanılır?
PHP, başta sunucu taraflı uygulamalar geliştirme amacıyla kullanılmakta olan bir programlama dilidir. PHP, "PHP: Hypertext Preprocessor" anlamına gelen özyineli bir tanımdır.
Eski haliyle Personal Home Pages olan PHP, 1993 yılında Rasmus Lerdorf tarafından geliştirilmeye başlamıştır. Daha çok dinamik web içeriği oluşturmak için kullanılan PHP, son zamanlarda IBM, Oracle ve Zend'in girişimleriyle kurumsal yazılım geliştirme platformu haline getirmeye çalışılmaktadır.
2006 senesinin Kasım ayı itibarıyla tüm dünya çapında 25 milyondan daha fazla alanda kullanılmakta ve bu sayı giderek artmaktadır.
Eski haliyle Personal Home Pages olan PHP, 1993 yılında Rasmus Lerdorf tarafından geliştirilmeye başlamıştır. Daha çok dinamik web içeriği oluşturmak için kullanılan PHP, son zamanlarda IBM, Oracle ve Zend'in girişimleriyle kurumsal yazılım geliştirme platformu haline getirmeye çalışılmaktadır.
2006 senesinin Kasım ayı itibarıyla tüm dünya çapında 25 milyondan daha fazla alanda kullanılmakta ve bu sayı giderek artmaktadır.
Macromedia Flash nedir? Flash nelere yarar?
Flash Macromedia firmasının çıkarmış olduğu ve gerek internette gezinenler gereksede webmasterların ve grafikçilerin gözdesi olan Windows ve Mac OS işletim sistemleri üzerinde çalışabilen bir grafik programıdır. Her şey önce Macromedia firmasının 1997 yılına Future Splash Animator adlı programı satın almasıyla başladı.
Daha sonra bu program yeni adıyla yani Flash'ın ilk sürümü olan 2.0 olarak karşımıza çıktı. Daha ilk yılını tamamlamadan 1997 yılında Macromedia Flash 3.0 geliştirdi. Hiç kimsenin onun bu kadar yaygın olacağını ummadığı programla hazırlanmış pekçok site, ziyaretçilerine cezbedici, özel, çarpıcı, ilginç ve eğlenceli bir şekilde kendilerini sunarak onların daha uzun süre sitede kalmasını sağlıyorlardı.
1999 yılında Flash 4.0 piyasaya sürüldü. 2000 yılında Flash 5.0 , 2002 yılındada Flash Mx (6.0), 2005 yılında Flash 8 ve son olarak 2007 yılında Flash CS3(Adobe) çıktı.Çıktığı yıldan beri yoğun rağbet gören bu program, gösterdiği performansla önümüzdeki yıllarda da adından söz ettirecek gibi görünüyor. Flash çalışma tekniği olarak vektör grafik kullanıyor. Flash animasyonlarının, çizgi filmlerinin, efektlerinin temelinde aslında matematiksel işlemler yer alıyor.Yani Flash'ta çizdiğimiz her şey aslında tek tek piksellerden oluşturulmak yerine ,tamamen matematiksel denklemler üzerine kurulu oluyor.Bu yüzden flash ile çizdiğimiz bir nesneye istediğimiz kadar zum yapalım normal piksellerden oluşan grafiklerdeki oluşan basamaklı görüntü görülmez.
Flash ile beraber Macromedia grafiksel animasyonları ve arayüzleri yaparken daha kullanıcı dostu ve etkileşimli yapıya sahip olması için ActionScript adı verilen bir dili de kullanmamıza olanak sağladı.
Daha sonra bu program yeni adıyla yani Flash'ın ilk sürümü olan 2.0 olarak karşımıza çıktı. Daha ilk yılını tamamlamadan 1997 yılında Macromedia Flash 3.0 geliştirdi. Hiç kimsenin onun bu kadar yaygın olacağını ummadığı programla hazırlanmış pekçok site, ziyaretçilerine cezbedici, özel, çarpıcı, ilginç ve eğlenceli bir şekilde kendilerini sunarak onların daha uzun süre sitede kalmasını sağlıyorlardı.
1999 yılında Flash 4.0 piyasaya sürüldü. 2000 yılında Flash 5.0 , 2002 yılındada Flash Mx (6.0), 2005 yılında Flash 8 ve son olarak 2007 yılında Flash CS3(Adobe) çıktı.Çıktığı yıldan beri yoğun rağbet gören bu program, gösterdiği performansla önümüzdeki yıllarda da adından söz ettirecek gibi görünüyor. Flash çalışma tekniği olarak vektör grafik kullanıyor. Flash animasyonlarının, çizgi filmlerinin, efektlerinin temelinde aslında matematiksel işlemler yer alıyor.Yani Flash'ta çizdiğimiz her şey aslında tek tek piksellerden oluşturulmak yerine ,tamamen matematiksel denklemler üzerine kurulu oluyor.Bu yüzden flash ile çizdiğimiz bir nesneye istediğimiz kadar zum yapalım normal piksellerden oluşan grafiklerdeki oluşan basamaklı görüntü görülmez.
Flash ile beraber Macromedia grafiksel animasyonları ve arayüzleri yaparken daha kullanıcı dostu ve etkileşimli yapıya sahip olması için ActionScript adı verilen bir dili de kullanmamıza olanak sağladı.
Etiketler:
Macromedia Flash nedir? Flash nelere yarar?
FSO ile klasörlerin içeriğini listeleme
<%
klasoradi = "dosyalar/avatar"
Set ObjFSO=Server.CreateObject("Scripting.FileSystemObject")
Set strDosyalar=ObjFSO.GetFolder(Server.MapPath(klasoradi))
RSayisi = strDosyalar.Files.Count - 1
response.write ""&RSayisi&"
"
if RSayisi > "0" then
For each strBulunanDosya in strDosyalar.files
if right(strBulunanDosya.Name,"3") = "gif" OR right(strBulunanDosya.Name,"3") = "GIF" OR right(strBulunanDosya.Name,"3") = "JPG" OR right(strBulunanDosya.Name,"3") = "jpg" OR right(strBulunanDosya.Name,"4") = "jpeg" OR right(strBulunanDosya.Name,"4") = "JPEG" OR right(strBulunanDosya.Name,"3") = "png" OR right(strBulunanDosya.Name,"3") = "PNG" OR right(strBulunanDosya.Name,"3") = "BMP" OR right(strBulunanDosya.Name,"3") = "bmp" THEN
Response.Write strBulunanDosya.Name & " ( " & strBulunanDosya.size & " Byte )
"
Response.Write "
"
end if
Next
end if
%>
klasoradi = "dosyalar/avatar"
Set ObjFSO=Server.CreateObject("Scripting.FileSystemObject")
Set strDosyalar=ObjFSO.GetFolder(Server.MapPath(klasoradi))
RSayisi = strDosyalar.Files.Count - 1
response.write ""&RSayisi&"
"
if RSayisi > "0" then
For each strBulunanDosya in strDosyalar.files
if right(strBulunanDosya.Name,"3") = "gif" OR right(strBulunanDosya.Name,"3") = "GIF" OR right(strBulunanDosya.Name,"3") = "JPG" OR right(strBulunanDosya.Name,"3") = "jpg" OR right(strBulunanDosya.Name,"4") = "jpeg" OR right(strBulunanDosya.Name,"4") = "JPEG" OR right(strBulunanDosya.Name,"3") = "png" OR right(strBulunanDosya.Name,"3") = "PNG" OR right(strBulunanDosya.Name,"3") = "BMP" OR right(strBulunanDosya.Name,"3") = "bmp" THEN
Response.Write strBulunanDosya.Name & " ( " & strBulunanDosya.size & " Byte )
"
Response.Write "
end if
Next
end if
%>
MDB dosyalarını compact etme
Bilgisayarınızdaki mdb (MS Access Veritabanı Dosyaları) Elektrik kesilmesi veya başka bir sebepten dolayı bozulabilir.Veya mdb dosyanızdaki kayıtları silmenizden dolayı veritabanınızın boyutu içinde veri olmadığı halde çok büyük olabilir.Ve bu makalemde sizlere bu dosyaların nasıl Compact (Sıkıştırmak) edileceğini işliyeceğim. BU dosyaları eğer bilgisayarınızda Access yüklü ise;
Araçlar > Veritabanı Hizmet Programları > Veritabanı Düzenle ve onar Menülerini kullanarak yapabilirsiniz. Fakat yaptığınız bir ticari sitede bunu ullanıcıdan istiyemeyiz çünkü böyle bir işlem zaman/nakit/veri kayıplarına sebep olacaktır. işte bu yüzden Bu mdb dosyalarını asp kodları ile server üzerinde compact edeceğiz.Bunu Yaparken JRO.JetEngine objesini kullanacağız bu kodların çalıştırabilmeniz için MDAC 2.1 veya daha üst bir sürümü kurulu olması gerekmektedir.
<%
dosya = Server.MapPath("db.mdb") 'Compact Edilecek Dosya adı
yeniisim = Server.MapPath("bak.mdb") 'Compact edilen dosyanın ismi
BagMetni1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& dosya
BagMetni2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & yeniisim
Set Baglanti = Server.CreateObject("JRO.JetEngine")
Baglanti.CompactDatabase BagMetni1, BagMetni2
Set Baglanti = Nothing
%>
Yukarıda Gördüğünüz Kodlar sadece örnek teşkil etmesi amacıyla hazırlanmıştır.
Araçlar > Veritabanı Hizmet Programları > Veritabanı Düzenle ve onar Menülerini kullanarak yapabilirsiniz. Fakat yaptığınız bir ticari sitede bunu ullanıcıdan istiyemeyiz çünkü böyle bir işlem zaman/nakit/veri kayıplarına sebep olacaktır. işte bu yüzden Bu mdb dosyalarını asp kodları ile server üzerinde compact edeceğiz.Bunu Yaparken JRO.JetEngine objesini kullanacağız bu kodların çalıştırabilmeniz için MDAC 2.1 veya daha üst bir sürümü kurulu olması gerekmektedir.
<%
dosya = Server.MapPath("db.mdb") 'Compact Edilecek Dosya adı
yeniisim = Server.MapPath("bak.mdb") 'Compact edilen dosyanın ismi
BagMetni1 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="& dosya
BagMetni2 = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & yeniisim
Set Baglanti = Server.CreateObject("JRO.JetEngine")
Baglanti.CompactDatabase BagMetni1, BagMetni2
Set Baglanti = Nothing
%>
Yukarıda Gördüğünüz Kodlar sadece örnek teşkil etmesi amacıyla hazırlanmıştır.
ASP Cookie (Çerez) Yönetimi
Cookie (Çerez) KolleksiyonuÇerezler, dinamik sitelerin, bilgilerimizi tekrar tekrar sormamak için bilgilerimiz kaydettiği metin dosyalarıdır. Örneğin üye girişi olan sayfalarda eğer beni hatırla şeklinde bir kutucuk işaretlerseniz bilgileriniz bir çereze kaydedilir ve bilgisayarınızda saklanır. O siteye tekrar girişinizde de site bilgilerini o dosyadan okur ve tekrar giriş yapmanıza gerek kalmaz. Çerez Yazma:Çerezlerin ne olduğunu anlamışsak, artık nasıl yazıldıklarına bakalım.<%Response.Cookies("Cerez_Adi")("Bilgi_Adi") = "Bilgi_Icerigi"Response.Cookies("Cerez_Adi").Expires = "Cerezin Silinecegi Tarih"%>Evet, çerez yazmak bu kadar basit. Önce çereze bir isim veriyoruz. Bilgisayarda kayıtlı olan diğer çerezlerle karışmaması için site ismini yazabilirsiniz. Bilgi adı kısmında ise kaydedilen bilgi için bir isim veriyoruz. Bunun içinse "kullanici_adi" gibi, daha sonra ne olduğunu anlayacağımız isimler verebiliriz. Expires kısmı da çerezin ne zamana kadar o bilgisayarda saklanacığını belirlememizi sağlar. Date() + 365 değeri, o çerezin 1 sene boyunca bilgisayarda saklanmasını sağlar.Şimdi bir örnek çerez yazalım:<%Response.Cookies("Cerez_Adi")("kullanici_adi") = "kullanici"Response.Cookies("Cerez_Adi")("sifre") = "sifre"Response.Cookies("Cerez_Adi").Expires = Date() + 30%>Böylece üyenin kullanıcı adı ve şifresini bilgisayara kaydettik.Çerez Okuma:Şimdi de çerezlerden veri alma işlemine bakalım. Veri alma da form ve querystring konularında olduğu gibi Request nesnesi ile yapılır.<%kullanici_adi = Request.Cookies("Cerez_Adi")("kullanici_adi")sifre = Request.Cookies("Cerez_Adi")("sifre")Response.Write "Kullanıcı Adınız: "& kullanici_adiResponse.Write "
Şifreniz: "& sifre%>Çerez İçeriğini Temizleme:Kullanıcı siteden çıkş yaptığında çerezleri temizlemek gerekir. Aşağıdaki yöntemle çerezlerin taşıdığı bilgileri kullanıcının bilgisayarından silebiliriz.<%Response.Cookies("Cerez_Adi")("kullanici_adi") = ""Response.Cookies("Cerez_Adi")("sifre") = ""%>Not:Çerez desteği her tarayıcı tarafından sağlanmayabilir. Ayrıca gelişmiş tarayıcılarda çerez desteği isteğe göre kapatılabilir. Bu da çerez desteğini kapatan kişilerin sitenizden faydalanamayacağı anlamına gelir. Bu yüzden kesinlikle üye girişi gibi kontrolleri sadece cookie ile sağlamayın.
Şifreniz: "& sifre%>Çerez İçeriğini Temizleme:Kullanıcı siteden çıkş yaptığında çerezleri temizlemek gerekir. Aşağıdaki yöntemle çerezlerin taşıdığı bilgileri kullanıcının bilgisayarından silebiliriz.<%Response.Cookies("Cerez_Adi")("kullanici_adi") = ""Response.Cookies("Cerez_Adi")("sifre") = ""%>Not:Çerez desteği her tarayıcı tarafından sağlanmayabilir. Ayrıca gelişmiş tarayıcılarda çerez desteği isteğe göre kapatılabilir. Bu da çerez desteğini kapatan kişilerin sitenizden faydalanamayacağı anlamına gelir. Bu yüzden kesinlikle üye girişi gibi kontrolleri sadece cookie ile sağlamayın.
Metinler için alt satıra geçme
<%
Function SatirAtla(byVal Veri)
If Veri = "" Then Exit Function
Veri = Replace(Veri, vbCrLf, "
", 1, -1, 1)
Veri = Replace(Veri, Chr(13), "
", 1, -1, 1)
SatirAtla = Veri
End Function
'//-- Örnek Kullanımı:
Response.Write SatirAtla(Request.Form("Mesaj"))
%>
Function SatirAtla(byVal Veri)
If Veri = "" Then Exit Function
Veri = Replace(Veri, vbCrLf, "
", 1, -1, 1)
Veri = Replace(Veri, Chr(13), "
", 1, -1, 1)
SatirAtla = Veri
End Function
'//-- Örnek Kullanımı:
Response.Write SatirAtla(Request.Form("Mesaj"))
%>
Metinler için alt satıra geçme
<%
Function SatirAtla(byVal Veri)
If Veri = "" Then Exit Function
Veri = Replace(Veri, vbCrLf, "
", 1, -1, 1)
Veri = Replace(Veri, Chr(13), "
", 1, -1, 1)
SatirAtla = Veri
End Function
'//-- Örnek Kullanımı:
Response.Write SatirAtla(Request.Form("Mesaj"))
%>
Function SatirAtla(byVal Veri)
If Veri = "" Then Exit Function
Veri = Replace(Veri, vbCrLf, "
", 1, -1, 1)
Veri = Replace(Veri, Chr(13), "
", 1, -1, 1)
SatirAtla = Veri
End Function
'//-- Örnek Kullanımı:
Response.Write SatirAtla(Request.Form("Mesaj"))
%>
ASP Base64 Decode / Encode
' Functions to provide encoding/decoding of strings with Base64.' ' Encoding: myEncodedString = base64_encode( inputString )' Decoding: myDecodedString = base64_decode( encodedInputString )'' Programmed by Markus Hartsmar for ShameDesigns in 2002. ' Email me at: mark@shamedesigns.com' Visit our website at: http://www.shamedesigns.com/'Dim Base64CharsBase64Chars = "ABCDEFGHIJKLMNOPQRSTUVWXYZ" & _"abcdefghijklmnopqrstuvwxyz" & _"0123456789" & _"+/"' Functions for encoding string to Base64Public Function base64_encode( byVal strIn )Dim c1, c2, c3, w1, w2, w3, w4, n, strOutFor n = 1 To Len( strIn ) Step 3c1 = Asc( Mid( strIn, n, 1 ) )c2 = Asc( Mid( strIn, n + 1, 1 ) + Chr(0) )c3 = Asc( Mid( strIn, n + 2, 1 ) + Chr(0) )w1 = Int( c1 / 4 ) : w2 = ( c1 And 3 ) * 16 + Int( c2 / 16 )If Len( strIn ) >= n + 1 Then w3 = ( c2 And 15 ) * 4 + Int( c3 / 64 ) Else w3 = -1End IfIf Len( strIn ) >= n + 2 Then w4 = c3 And 63 Else w4 = -1End IfstrOut = strOut + mimeencode( w1 ) + mimeencode( w2 ) + _mimeencode( w3 ) + mimeencode( w4 )Nextbase64_encode = strOutEnd FunctionPrivate Function mimeencode( byVal intIn )If intIn >= 0 Then mimeencode = Mid( Base64Chars, intIn + 1, 1 ) Else mimeencode = ""End IfEnd Function ' Function to decode string from Base64Public Function base64_decode( byVal strIn )Dim w1, w2, w3, w4, n, strOutFor n = 1 To Len( strIn ) Step 4w1 = mimedecode( Mid( strIn, n, 1 ) )w2 = mimedecode( Mid( strIn, n + 1, 1 ) )w3 = mimedecode( Mid( strIn, n + 2, 1 ) )w4 = mimedecode( Mid( strIn, n + 3, 1 ) )If w2 >= 0 Then _strOut = strOut + _Chr( ( ( w1 * 4 + Int( w2 / 16 ) ) And 255 ) )If w3 >= 0 Then _strOut = strOut + _Chr( ( ( w2 * 16 + Int( w3 / 4 ) ) And 255 ) )If w4 >= 0 Then _strOut = strOut + _Chr( ( ( w3 * 64 + w4 ) And 255 ) )Nextbase64_decode = strOutEnd FunctionPrivate Function mimedecode( byVal strIn )If Len( strIn ) = 0 Then mimedecode = -1 : Exit FunctionElsemimedecode = InStr( Base64Chars, strIn ) - 1End IfEnd Function
Kaydol:
Kayıtlar (Atom)