ASP Syntax PHP Syntax

advertisement
ASP (ACTIVE SERVER PAGES)
Bilinmesi gerekenler:
HTML
Asp de kodlama Javascript veya VBscript ile
yapılır.
Server, script dili belirtilmezse varsayılan olarak
Vbscript’e göre yorumlar.
Asp sayfasının ilk satırında script dili belirtilir.
<%@ language="VBScript"%>
<%@ language="javascript"%>
Yüklenmesi gereken programlar:
IIS (Internet Information Server): IIS asp
kodlarının yorumlanmasını sağlar.
1. Program ekle/kaldır
2. Windows bileşeni yükle kaldır
3. IIS
4. Windows cd’sinden.
Sayfaların tasarlanması ve bazı işlemlerde
kolaylıklar sunması için görsel bir web tasarım
programı, dreamweaver veya Frontpage vb.
ASP Syntax
Asp kodları html sayfası içine yazılır.
1. Asp kodları <% …………………… %>
arasına yazılır.
<html>
<body>
<%
response.write("MERHABA!")
%>
</body>
</html>
<html>
<body>
<%="MERHABA!"%>
</body>
</html>
2. Açıklama Eklenmesi
Açıklamalar ‘(tek tırnak) işaretinden sonra
yazılabilir.
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
PHP (HYPERTEXT PREPROCESSOR)
Bilinmesi gerekenler:
HTML
Php’nin kod yapısı C gibidir.
Yüklenmesi gereken programlar:
1. Apache Server(http://httpd.apache.org/download.cgi)
2. PHP(http://www.php.net/downloads.php)
3. MySQL veri tabanı
(http://www.mysql.com/downloads/index.html)
Ya da bunların tamamının yüklenmesini sağlayan;
Easyphp, appserv gibi paket yazılımlar.
(http://www.easyphp.org)(http://www.appservnetwork.com)
Sayfaların tasarlanması yine dreamweaver veya Frontpage
gibi yazılımlarla yapılabilir.
NOT: Sunucular (Apache, IIS) 80 numaralı portu kullandıkları için aynı anda
çalışmazlar. Php sayfalarını denerken IIS’in durdurulması gerekir. Bunun için;
BaşlatÇalıştır net stop w3svc
Komutu kullanılır. IIS tekrar başlatmak için ise;
BaşlatÇalıştır net start w3svc
Komutu kullanılır.
PHP Syntax
Php kodları html sayfası içine yazılır.
1. Php kodları
<?php
…………….
?>
Arasına yazılır.
<html>
<body>
<?php
echo "Hello World";
?>
</body>
</html>
2. Açıklama Eklenmesi
<html>
<body>
<?php
//Açıklama satırı
/*
Birden çok
Satırlı açıklama
*/
?>
</body>
</html>
1
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Php Değişkenler
Değişkenler değerleri, rakamları, stringleri veya fonksiyon
sonuçlarını saklamak için kullanılır.
Asp Değişkenler
Php’de bütün değişkenler $ işareti ile başlar.
Değişkenler verileri saklamak için kullanılır.
<%
dim ad, numara
ad="Ali Osman"
Numara="027411033"
response.write("Benim adım: " & ad)
%>
$okul_ad = "Akören MYO";
<?php
$yazi = "Hello World!";
$sayi = 16;
?>
İsimlendirme kuralları:
1. Değişken isimleri harfler, rakamlar yada _ karakterinden
oluşabilir.
2. değişken isimleri $ işareti ile başlamalıdır.
3. değişken isimlerinde ve komutlarda büyük küçük harf
ayrımı vardır.
Değişkenlerin veri tipi belirtilmek zorunda değildir. Atanan
veriye göre otomatik olarak veri tipi belirlenir.
Değişkenlerin veri tipi belirtilmek zorunda
değildir. Atanan veriye göre otomatik olarak veri
tipi belirlenir.
Değişkenlerin Ömrü:
Bir asp sayfasında tanımlanan değişkenler
sayfa içindeki alt programlar tarafından da
kullanılabilir.
Alt program içinde tanımlanan değişkenler
sadece alt program içinde kullanılabilir.
Asp sayfasındaki değişkenler sadece o
sayfada kullanılabilir.
Oturum değişkenleri(Session Variables)
Siteye giren her kullanıcı için oturum
değişkeni oluşturulur ve o ziyaretçinin site içindeki
tüm sayfalarından erişilebilir.
Uygulama Değişkenleri(Application Variables)
Bütün kullanıcılarda geçerli olan değişkenlerdir.
Varsayılan olarak yayınlanan dizin ve
sayfaların çağrılması:
Varsayılan olarak yayınlanan dizin ve sayfaların
çağrılması:
Varsayılan olarak yayınlanan dizin:
C:\Inetpub\wwwroot
Easyphp kullanıldığında;
Varsayılan olarak yayınlanan dizin:
C:\Program Files\Easyphp\www
IIS çalışırken:
İnternet explorer’dan adres kısmına
http://localhost
http://127.0.0.1
Apache web server aktifken
İnternet explorer’dan adres kısmına
http://localhost
http://127.0.0.1
2
http://bilgisayar_adı
yazıldığında resimde gösterilen localstart.asp
sayfası çalıştırılır.
Site tasarlanırken
C:\Inetpub\wwwroot
İçerisine yeni klasör oluşturulur ve onun içine asp
sayfalar saklanır.
Sayfa çağrılırken
http://localhost/klasör_adı/sayfa_adı.asp
ile çağrılır.
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
http://bilgisayar_adı
yazıldığında resimde gösterilen index.php sayfası çalıştırılır.
Site tasarlanırken
C:\Program Files\Easyphp\www
İçerisine yeni klasör oluşturulur ve onun içine asp sayfalar
saklanır.
Sayfa çağrılırken
http://localhost/klasör_adı/sayfa_adı.asp
ile çağrılır.
Örnek:
Örnek:
<% for i=1 to 6 %>
<font size="<%= i %>">Akören MYO</font><br>
<% next %>
<?php
for ($i=1; $i<=5; $i++)
{
echo "<font size=".$i.">Merhaba!<br /></font>";
}
?>
FORMLAR
Form Nesneleri
3
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Nesne
Özellikler penceresi Görünümü
Adı
Özellikleri Örnek
kullanım/Açıklama
Form name
Action
Form
Method
Textfield adı
Char width
Max chars
Type
Textfield
Init val
Wrap
CheckBox
Checked Value
Initial State
CheckBox
RadioButton
Checked Value
Initial State
Radio
Button
List/menu
Type
Height
Allow Multiple
Initialy_
Selected
List/menu
Form adı aynı kalabilir.
Buraya form içerisindeki Submit form
özellikli butona tıklandığında çalışacak asp
sayfasının adını yazınız.
Burada web formuna yazılan bilgilerin
servera aktarılma şekli seçilir. Default değer
get’dir.
Kodla bilgi alırken kullanılacak ad
Ekranda gösterilecek karakter genişliği
Yazılabilecek maksimum karakter sayısı
Single line: tek satırlı metin kutusu
Multi Line: çok satırlı metin kutusu
Password: Metin kutusuna girilen bilgiler
yıldız”*” la kapatılır.
İçinde varsayılan olarak yazılması istenen
veri
Muti line seçildiğinde sona gelindiğinde alt
satıra geçilmesi
Check boxa verilecek ad
İşaretlendiğinde sunucuya göndereceği veri
Varsayılan olarak işaretli yada işaretsiz
olması
Radiobuttona verilecek ad
İşaretlendiğinde sunucuya göndereceği veri
Varsayılan olarak işaretli yada işaretsiz
olması
List/Menu adı
List
Menu
List seçildiğinde kutunun satır yüksekliği
List seçildiğinde kutu içinden birden çok
değer seçimine izin verilmesi
Varsayılan olarak seçili gelmesi istenen
değer seçilir.
List Values
Liste kutusunda veya açılan kutuda yer
alması istenenler ve karşılarında da seçilen
etiketin göndereceği değer (value) belirtilir.
Button name
Label
Action
Butonun kodlarda kullanılacak adı
Butonun üzerinde yazılması istenen etiket
Submit Form: Formdaki bilgileri form
özelliklerinde belirtilen action sayfasına
gönderilmesini sağlar.
Reset Form: Form nesnelerinin varsayılan
değerlerini almasını sağlar.
None: hiçbir işlem yapılmaz
Button
İpuçları:
 Formun olduğu .htm sayfası ile .asp sayfasını aynı klasör içine kaydediniz ve klasörü sunucuya yayımlaması için tanıtınız.
 Sunucuya bilgi aktarılırken kullanılan get ve post metodunda şu farklar vardır.
o
Get metodu ile bilgi aktarılırken gönder butonuna tıklandığında explorerın adres çubuğunda aktarılan veriler gösterilir. Bakınız:
o
Post metodunda adres çubuğunda bilgi görüntülenmez. Bakınız:
get metodu ile büyük formlardaki veriler aktarılmaz çünkü get metodu ile en fazla 8,192 karakter gönderilebilir.
Kredi kartı numarası gibi başkalarının eline geçmesi sakıncalı olan bilgilerin gönderilmesinde de get metodu kullanılmamalıdır. Çünkü güvenli
değildir.
List/menu nesnesi eklenip list seçilerek allow multiple özelliği onaylandığında formda bilgiler seçilip gönder butonuna basıldığında list kutusundan seçilen
değerler aralarına virgül konularak gönderilir. Bakınız:
Bu durumda Submit butonuna basılarak sunucuda liste kutusundaki değer okutularak bir
değişkene aktarılırsa çıkarma ve Bölme etiketlerine karşılık olarak verilen value lar aktarılır.
Çıkarma için value=”-“ Bölme için value=”/” yazılmış olsun bu durumda
Değişken=”-, /”
Olarak alınır.
o
o

4
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
1. Veri Girişi: (asp-php)
Formun ekran görünümü
Form sayfasının html kodları
2. REQUEST.FORM (asp)
Request.form komutu post metodu ile formdan gönderilen verilerin alınmasını sağlar. Bu metotla
gönderilen bilgide limit yoktur ve gönderilen bilgi gösterilmez.
<form name="form1" method="post" action="veri_oku.asp">
……
</form>
Bu kod sayfaya form eklenmesini sağlayan html komutudur. Görüldüğü gibi method post’dur bu durumda
veriyi almak için
Request.form(“form nesnesinin adı”)
Komutu kullanılmaktadır.
Yukarıda ekran görünümü ve kodları verilen formdan bilgileri alarak browserda gösteren asp sayfasının
kodları aşağıdaki gibidir.
5
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
3. REQUEST.QUERYSTRING (asp)
Form dan veriler get metoduyla gönderildiğinde bilgileri almak için request.querystring komutu kullanılır.
Get metoduyla bilgi gönderildiğinde, bilgiler browserın adres çubuğunda gösterilir.
Veri giriş sayfası yukarıdaki gibidir sadece formun metodu get yapılmıştır ve action kısmına bilgiyi get
metoduyla alacak olan sayfanın adıyazılmıştır.
6
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
4. $_POST (php)
Php’de veri giriş sayfasında belirtilen formdan gönderilen bilgileri almak için $_POST komutu kullanılır.
$_POST[“form nesnesinin adı”];
5. $_GET (php)
6. $_REQUEST (php)
PHP’de $_REQUEST değişkeni $_GET, $_POST, ve $_COOKIE komutlarının tümünü içerir.
Example
Welcome <?php echo $_REQUEST["name"]; ?>.<br />
You are <?php echo $_REQUEST["age"]; ?> years old!
7
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
ASP Operators
PHP Operators
Matematiksel Operatörler (Arithmetic Operators)
Operatör
Anlamı
Örnek
Sonuç
+
Toplama
S=3+4
S=7
-
Çıkarma
S=4-1
S=3
*
Çarpma
S=3*4
S=12
/
Bölme
S=9/3
S=3
^
Üs alma
S=2^3
S=8
Kalan
S=23 mod 10
S=3
Tam bölme
S=10\3
S=1
Mod
\
Matematiksel Operatörler (Arithmetic Operators)
Açıklama
Örnek
Sonuç
Operator
Description
Example
Result
Karşılaştırma Operatörleri (Comparison Operators)
Operatör
Anlamı
Örnek
Sonuç
=
Eşit
4=3
False
<
Küçük
4<3
False
>
Büyük
4>3
True
<=
Küçük eşit
4<=3
False
>=
Büyük eşit
4>=3
True
<>
Farklı
4<>3
True
&
Birleştir
Örnek
Ad=”Ali”
Soyad=”Ak”
A_s=ad&soyad
x=2
x+2
4
-
Çıkarma
Subtraction
x=2
5-x
3
*
Çarpma
Multiplication
x=4
x*5
20
/
Bölme
Division
15/5
5/2
3
2.5
%
Mod(Bölmede kalan)
Modulus (division
remainder)
5%2
10%8
10%2
1
2
0
++
Arttırma
Increment
x=5
x++
x=6
--
Azaltma
Decrement
x=5
x--
x=4
Atama Operatörleri (Assignment Operators)
=
Örnek
Example
Eşiti
Is The Same As
x=y
x=y
+=
x+=y
x=x+y
-=
x-=y
x=x-y
*=
x*=y
x=x*y
/=
x/=y
x=x/y
.=
x.=y
x=x.y
x%=y
x=x%y
%=
Karşılaştırma Operatörleri (Comparison Operators)
Açıklama
Örnek
Operator
Description
Example
String Operatör (String Operator)
Anlamı
Toplama
Addition
Operator
Mantıksal Operatörler (Logical Operators)
Operatör
Anlamı
Örnek
Sonuç
F and F
F
F and T
F
And
Ve
T and F
F
T and T
T
F or F
F
F or T
T
Or
Veya
T or F
T
T or T
T
Not true
False
Not
Değil
Not false
True
Operatör
+
Sonuç
A_s=Ali Ak
==
Eşit mi
5==8 returns false
!=
Eşit değil mi
5!=8 returns true
>
Büyük mü
5>8 returns false
<
Küçük mü
5<8 returns true
>=
Büyük eşit mi
5>=8 returns false
<=
Küçük eşit mi
5<=8 returns true
Mantıksal Operatörler (Logical Operators)
Operator Description Example
&&
ve
and
x=6
y=3
(x < 10 && y > 1) returns true
||
veya
or
x=6
y=3
(x==5 || y==5) returns false
!
Değil
not
x=6
y=3
!(x==y) returns true
8
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
KARŞILAŞTIRMA İFADELERİ
KARŞILAŞTIRMA İFADELERİ
Farklı durumlarda farklı kodların çalıştırılması
için karşılaştırma ifadeleri kullanılır.
Farklı durumlarda farklı kodların çalıştırılması
için karşılaştırma ifadeleri kullanılır.
Vbscript’de dört koşul ifadesi kullanılabilir:




If...Else İfadesi
Koşul sağlandığında veya sağlanmadığında bir kodun
çalışması gerekiyorsa fi komutu aşağıdaki gibi kullanılabilir.
if …then ……… koşul sağlandığında kod yada
kodların çalıştırılması için kullanılır.
if...then...else …… Koşul sağlandığında veya
sağlanmadığında belirli kod yada kodların
çalıştırılmasını için kullanılır.
if...then...elseif ………….. koşulun 2 den çok
olduğu durumlarda sağlayan koşula ait
işlemlerin yapılmasında kullanılır.
select case – çok durumlu koşullarda koşulun
sağlandığı duruma ait işlemlerin yapılmasını
sağlar.
Syntax
if (koşul)
koşul sağlandığında çalışacak kod;
else
koşul sağlanmadığında çalışacak kod;
Örnek
Aşağıdaki örnekte günlerden Cuma ise iyi hafta sonları
yazmakta değilse iyi günler yazmaktadır:
<html>
<body>
<?php
If....Then.....Else
$d=date("D");
if ($d=="Fri")
if i=10 Then msgbox "Merhaba"
echo "İyi hafta sonları!";
else
Burada else ifadesi kullanılmamıştır. Koşul sağlandığında tek
echo "İyi günler!";
bir komut çalışacaksa then’den sonra yazılabilir.
?>
</body>
Koşul
sağlandığında
birden
çok
komutun
çalışması </html>
istendiğinde her komut tek bir satıra yazılmalıdır ve if Koşul sağlandığında veya sağlanmadığında birden çok komut
ifadesinin sonunu belirtmek için end If kelimesi kullanılır:
çalışması gerekiyorsa komutlar { ….. } işaretleri arasına
yazılır:
if i=10 Then
msgbox "Merhaba"
i = i+1
end If
Koşul sağlanmadığında çalışması istenen kodlar else
kelimesinden sonra yazılır:
if i=10 then
msgbox "Merhaba"
else
msgbox "Güle güle"
end If
If....Then.....Elseif
Birden çok durum için karar verilmesi gerektiğinde if komutu
arka arkaya kullanılır:
if odeme="Peşin" then
msgbox "Peşin ödeme yapacaksınız!"
elseif odeme="Visa" then
msgbox "Visa ile ödeme yapacaksınız."
elseif odeme="posta" then
msgbox "Posta çeki ile ödeme yapacaksınız."
else
msgbox "Ödeme metodunuz belli değil."
end If
<html>
<body>
<?php
$d=date("D");
if ($d=="Fri")
{
echo "Merhaba!<br />";
echo "İyi hafta sonları!";
echo "Pazartesi görüşürüz!";
}
?>
</body>
</html>
ElseIf İfadesi
Birden çok durumlar arasında karar verirken if komutları arka
arkaya kullanılır.
Syntax
if (koşul)
koşul sağlandığında çalışacak kodlar;
elseif (koşul)
koşul sağlandığında çalışacak kodlar;
else
koşul sağlanmadığında çalışacak kodlar;
9
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Select Case
Switch İfadesi
Bir değişkenin alabileceği birçok durumdan birine karar
verilmesi gerekiyorsa select case komutu kullanılabilir:
Birçok komuttan birinin çalışması gerektiğinde php’de switch
ifadesi kullanılır.
select case odeme
case "Peşin"
msgbox "Peşin ödeme yapacaksınız!"
case "Visa"
msgbox "Visa ile ödeme yapacaksınız."
case "posta"
msgbox "Posta çeki ile ödeme yapacaksınız."
case Else
msgbox "Ödeme metodunuz belli değil."end
select
Syntax
switch (değişken)
{
case durum1:
değişken=durum1 ise çalışacak kodlar;
break;
case durum2:
değişken=durum2 ise çalışacak kodlar;
break;
default:
değişken durumlardan hiç birine uymazsa
çalışacak kodlar;
}
Değişken case ile belirtilen durumlardan birine uyup uymadığı
sırayla sınanır değişken hiçbir duruma uymazsa case else
ifadesinden sonraki kodlar çalışır.
Switch komutundan sonra değişkenin durumlara uyup
uymadığı sırayla kontrol edilir uyduğu durum varsa ilgili
kodlar çalıştırılır kodlar çalıştıktan sonra switch ifadesinden
çıkılması için break komutu kullanılır. Değişken durumlardan
hiçbirine uymuyorsa default: komutundan sonraki kodlar
çalışır.
<html>
<body>
<?php
switch ($x)
{
case 1:
echo "Bir";
break;
case 2:
echo "İki";
break;
case 3:
echo "Üç";
break;
default:
echo "Sayı 1-3 arasında değil";
}
?>
</body>
</html>
ASP DÖNGÜLER
PHP DÖNGÜLER
For…….next döngüsü:
Kaç defa çalışacağı belli olan döngülerde for…next döngüsü
kullanılır.
For i=2 To 10
kodlar
Next
for
Kaç defa çalışacağı belli olan döngülerde for…next döngüsü
kullanılır.
For ifadesinde i değişkeninin başlangıç ve bitiş değerleri
belirtilir, next ifadesinde i değişkeni 1 arttırılır.
Step
Step ifadesi sayaç değerinin artış değerinin değiştirilmesini
sağlar. Negatif girilirse başlangıç değerinden geriye doğru
sayılması sağlanabilir.
Syntax
for (başlangıç; koşul; artırım)
{
Çalışacak kodlar;
}
10
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
For i=2 To 10 Step 2
kodlar
Next
For i=10 To 2 Step -2
kodlar
Next
For…next döngüsünden çıkış
Exit For komutu ile döngü bitmeden de çıkılabilir.
Örnek
<html>
<body>
<?php
for ($i=1; $i<=5; $i++)
{
echo "Merhaba!<br />";
}
?>
</body>
</html>
For Each...Next Döngüsü
foreach
Bir For Each...Next döngüsü bir yığın verinin her bir değeri
için değişkenin değer almasını sağlar. Yığın bir dizidir.
Dizi içerisinden değer alınmasını sağlar.
dim arabalar(2)
arabalar (0)="Volvo"
arabalar (1)="Saab"
arabalar (2)="BMW"
Syntax
foreach (dizi as değişken)
{
Çalışacak kodlar;
}
For Each x in arabalar
document.write(x & "<br />")
Next
Do...Loop
Döngünün kaç defa çalışacağı belli değilse do..loop ifadesi
kullanılır.
While
While iken anlamındanır. While dan sonra yazılan koşul doğru
iken do…loop komutu arasındaki kodlar tekrarlanır. Koşulda
kullanılan değişken do…loop içinde otomatik olarak artmaz
yada azalmaz bu nedenle döngü içinde mutlaka değişkenin
değerini değiştiren kod yazılmalıdır.
Do While i>10
Kodlar
………………
i=i+2
Loop
Örnek
<html>
<body>
<?php
$dizi=array("one", "two", "three");
foreach ($dizi as $d)
{
echo "değer: " . $d . "<br />";
}
?>
</body>
</html>
while deyimi
Koşul sağlandığı sürece döngü çalışır. Ön koşullu döngüdür
yani döngüye girilmesi için şart sağlanıyor olmalıdır.
Syntax
while (koşul)
{
Çalışacak kodlar;
}
Okunuşu:i değişkeni büyük 10 iken döngü içindekileri tekrarla
Örnek
Burada while döngü başında yazıldığı için i değişkenin değeri 9 <html>
ise döngü içindeki komutlar hiç çalışmaz ve program loop’dan <body>
sonraki komuttan devam eder.
<?php
$i=1;
while($i<=5)
Kodlar
{
………………
echo "Sayı
i=i+1
$i++;
Loop While i>10
}
?>
</body>
Okunuşu:i değişkeni büyük 10 iken döngü içindekileri tekrarla
</html>
Do
" . $i . "<br />";
11
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Burada koşul döngü sonunda kontrol edilmiştir. Yani i
değişkeninin değeri 9 olsa dahi döngü içi bir kez çalışır.
do...while deyimi
Until
Until –e kadar anlamındadır. While da olduğu do yada loop
dan sonra kullanılabilir ve döngü değişkenin değeri döngü
içinde değiştirilmelidir.
Do Until i=10
Kodlar
………………
i=i+1
Loop
Anlamı: i eşit 10 olana kadar döngüyü tekrarla.
Eğer i değişkeninin değeri 10 ise döngü içindeki komutlar hiç
çalışmaz.
Do
Kodlar
………………
i=i+1
Loop Until i=10
Anlamı: i eşit 10 olana kadar döngüyü tekrarla.
koşul sağlandığı sürece döngü çalışır. Ancak son kontrollü
döngü olduğu için koşul sağlanmıyorsa bile döngü içi bir kez
çalıştırılmış olur.
Syntax
do
{
code to be executed;
}
while (condition);
Örnek
<html>
<body>
<?php
$i=0;
do
{
$i++;
echo "Sayı " . $i . "<br />";
}
while ($i<5);
?>
</body>
</html>
Eğer i değişkeninin değeri 10 olsa bile döngü içi bir defa
çalışır.
Do...Loop’dan çıkış
Not: Break komutu döngünün kırılmasını sağlar.
Exit Do komutu döngünün kırılarak(yazılan şart
sağlanmadan) çıkılmasını sağlar.
Do Until i=10
i=i-1
If i<10 Then Exit Do
Loop
12
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
DİZİLER
DİZİLER
Dim renk(3),isim(3,4)
array( )
Şeklide vbscript ile dizi tanımlanabilir. Yukarda üç elemanlı
bir renk dizisi ve iki boyutlu bir isim dizisi tanımlanmıştır.
array() komutu anahtar ve değerden oluşan bir dizi oluşturur.
Eğer anahtar belirtilmezse anahtar otomatik olarak atanır ve
anahtar değeri 0 dan başlayarak her bir değer için bir artar. e.
Diziye değer atanması:
Renk(0)=”red”
Renk(1)=”gren”
Renk(2)=”blue”
İsim(0,0)=”Ali”
isim(0,1)=”Ayşe”
………………
Şeklinde diziye değer atanabilir. Veya bir dizi aşağıdaki gibi
de oluşturularak değer girilebilir.
Syntax
array(key => value)
Parametre Açıklama
Parameter Description
key
value
Seçmeli. Sayısal veya karakterlerden oluşan bir
anahtar verilebilir. Eğer anahtar verilemzse 0,1,2
şeklinde otomatik olarak bir anahtar verilir.
Zorunlu. Kullanıcının istediği değerler.
<% aylar = Array("Ocak","Subat","Mart","Nisan","Mayıs","Haziran",
Temmuz","Agustos","Eylul","Ekim","Kasim","Aralik") %>
Burada aylar dizisine ay isimleri girilerek
oluşturulmuştur.<%=aylar(2)%> komutu ile dizinin 2.
elemanını ekrana yazdırırsak mart yazacaktır çünkü ocak
dizinin 0. elemanıdır. Bu durumu düzeltmek için ilk değer
boş bırakılabilir.
Örnek 1
<?php
$a=array("a"=>"ali","e"=>"elif","k"=>"kerem");
print_r($a);
?>
<%
Dim ay, ayadi
aylar = Array("yok","Ocak","Subat","Mart","Nisan","Mayıs","Haziran",
Temmuz","Agustos","Eylul","Ekim","Kasim","Aralik")
ay=month(date)
ayadi=aylar(ay)
response.write(ayadi)
%>
Yukarıdaki örnekte $a dizisi tanımlanmıştır. Bu dizide a
anahtarı ali değerini e anahtarı elif değerini k anahtarı kerem
değerini işaret etmektedir. Bu kodlar çalıştığında ekran çıktısı
aşağıdaki gibidir:
Burada 0. ay yok girilmiştir. Month(date) komutu ile
bulunulan ay (1,2,3.. şeklinde) ay değişkenine aktarılmış
sonrada bu sayı ile dizi indexlenerek ay adı bulunmuş ve
ekrana yazdırılmıştır.
Örnek 2
<?php
$a=array("mavi","yeşil","kırmızı");
print_r($a);
?>
Array ( [a] => ali [e] => elif [k] => kerem )
Dizinin yazdırılması:
<%
Rakamlar=array("sıfır","bir","iki","üç","dört","beş","altı",
"yedi","sekiz","dokuz")
For Each rakam in rakamlar
Response.write(rakam&"<br>")
Next
Response.Write("<hr>")'aynı dizi şu şekilde de yazdırılabilir
For i=0 to ubound(rakamlar)
Response.write(rakamlar(i)&"<br>")
next
%>
Split fonksiyonu:
Bütün halinde gelen, arada boşluk virgül, veya noktalı
virgül; gibi karakterlerle ayrılmış olan verilerin elemanlarına
ayrı ayrı kullanabilmek için split komutu ile dizi haline
getirilebilir.
<%
x=”sıfır,bir,iki,üç” ‘elemanlar , ile ayrılmış bir text
dizi=split(x,”,”)
response.write(dizi(0))’ekrana sıfırıncı eleman olan sıfırı yaz
%>
Ekran çıktısı aşağıdaki gibi olur:
Array ( [0] => mavi [1] => yeşil [2] => kırmızı )
Örnek 3
<?php
$a=array("bir","iki","üç");
echo "<pre>";
print_r($a);
echo "<pre>";
echo "<hr>";
foreach ($a as $i)
{
echo $i."<br>";
}
echo "<hr>";
for($x=0;$x<count($a);$x++)
{
echo $x.". değer= ".$a[$x]."<br>";
}
?>
13
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Dizi fonksiyonları
Dizi fonksiyonları
Fonksiyon
Açıklama
Function
Description
PHP
Array
Varyant elemanlı dizi oluşturur
array()
Dizi oluşturur.
3
Filter
Biri dizi içinden belli kriterlere uyan
elemanların seçilerek bir alt dizi
oluşturulmasını sağlar.
Bir değişken adının dizi olup olmadığını
test eder, dizi ise true olur.
Bir dizinin elemanlarını birleştirerek
string olarak döndürür.
array_change_key_case() Dizinin değerlerini büyük harfe 4
veya küçük harfe çevirir.
array_chunk()
Diziyi bölmeyi sağlar.
4
array_combine()
İki dizinin birleştirilmesini
5
sağlar 1. dizi anahtar 2. dizi
anahtara karşılık gelen değerler
olur.
LBound
Dizinin alt sınır indisini öğrenmeyi sağlar.
array_count_values()
Bir stringin diziye dönüştürülmesini
sağlar.
Dizideki elemanların sayısını
verir yani aynı elemana sahip
kaç anahtar olduğunu sayar.
4
Split
UBound
Bir dizinini üst sınırını öğrenmeyi sağlar.
array_diff()
Dizilerin karşılaştırılmasını
sağlar ilk diziyi diğerleri ile
karılaştırır ve diğer dizilerde
olmayan elemanlarını seçer.
4
array_diff_assoc()
Array_diff ile aynıdır ek olarak
aynı anahtarlı olanların frkını
verir.
4
array_diff_key()
İlk dizinin anahtarı farklı olan
elemanlarını seçer.
5
IsArray
Join
Php’de dizilerle ilgili yaklaşık 70 tane fonksiyon vardır.
14
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
TARİH SAAT FONKSİYONLARI(ASP)
TARİH SAAT FONKSİYONLARI(PHP)
Fonksion
Açıklama
Fonksiyon
Açıklama
CDate
String olan tarih veya saati tarih saat
formatına çevirir.
checkdate()
Verilen ay,gün,yıl’In geçerli 3
olup olmadığını test eder.
Date
Sistem tarihini öğrenmeyi sağlar
Bir tarih saat değişkenine yıl,ay,gün saat
vb. eklemeyi sağlar.
date_default_timezone_get() Varsayılan tarih bölgesini
verir.
5
DateAdd
İki tarihi çıkarmayı sağlar. Sonuç gün ay
yıl saat vb. olarak alınabilir.
date_default_timezone_set() Varsayılan bölgenin
ayarlanmasını sağlar.
5
DateDiff
date_sunrise()
Tarih değişkeninden gün ay veya yılı
almayı sağlar.
Returns the time of sunrise
for a given day / location
5
DatePart
date_sunset()
5
DateSerial
Yıl, ay, gün şeklinde yazılı tarihe ekleme
veya çıkarma yapılmasını sağlar.
Returns the time of sunset
for a given day / location
date()
Tarih döndürür.
Tarihten günün alınmasını sağlar.(1-31)
Tarih saatin veya
bileşenlerinin öğrenilmesini
sağlar.
3
DateValue
Day
getdate()
Tarihin dizi olarak alınmasını 3
sağlar.
Returns an array that
3
contains current time
information
Formats a GMT/UTC
3
date/time
FormatDateTime 0 dan 4 e kadar belirlenmiş formatta
tarih saat yazılmasını sağlar.
gettimeofday()
PHP
Hour
Bir saat değişkeninden saatin alınmasını
sağlar. (0-23)
IsDate
Bir stringin tarih olup olmadığının test
edilmesini sağlar.
gmdate()
Minute
Saat değişkeninden dakikanın alınmasını
sağlar(0-59)
gmmktime()
Month
Tarih değişkeninden ay’ın alınmasını
sağlar.(1-12)
Returns the Unix timestamp 3
for a GMT date
gmstrftime()
3
MonthName
Numarası verilen ay adının öğrenilmesini
sağlar.
Sistem tarih saatinin öğrenilmesini
sağlar.
Formats a GMT/UTC
time/date according to
locale settings
idate()
Tarih saat bileşnlerinin
integer olarak alınmasını
sağlar.
5
Second
Saat değişkeninden saniyenin alınmasını
sağlar.(0-59)
localtime()
4
Time
Sistem saatinin öğrenilmesini sağlar.
Timer
saat 12:00 AM’den beri kaç dk geçtiğinin
öğrenilmesini sağlar.
Returns an array that
contains the time
components of a Unix
timestamp
microtime()
Saat, dakika saniye eklindeki özel veriyi
forma sokar.
Returns the microseconds
for the current time
3
TimeSerial
mktime()
TimeValue
Zaman döndürür.
Returns the Unix timestamp 3
for a date
Weekday
Haftanın gününü rakam olarak döndürür.
1-7 arasında bir değer alır.
strftime()
Formats a local time/date
according to locale settings
3
WeekdayName
Sayı olarak verilen haftanın gününün
adını öğrenmeyi sağlar.
Yılın alınmasını sağlar.
strptime()
Parses a time/date
generated with strftime()
Parses an English textual
date or time into a Unix
timestamp
5
Now
Year
strtotime()
time()
3
Returns the current time as
3
a Unix timestamp
15
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
VBscript String Fonksiyonları
PHP String Fonksiyonları
Function Description
Function
Description
P
InStr
addcslashes()
Stringin istenilen karakterinden
önce “/” işareti eklenmesini
sağlar.
addcslashes(string,characters)
4
addslashes()
3
single quote (')
double quote (")
backslash (\)
NULL
Tanımlanmış bu karakterlerden
önce / işareti eklenmesini sağlar.
bin2hex()
String karakterlerinin asci
kodlarını hexadesimal olarak
yazar.
bin2hex(string)
3
chop()
String içindeki bazı karakterlerin
kaldırılmasını sağlar.
3
String1 içinde string2’nin aranmasını sağlar.
Arama ilk karakterden başlanarak yapılır.
InStr([start,]string1,string2[,compar
e])
Şeklinde kullanılır. Bir fonksiyon olduğu için
sonucu bir değişkene aktarılmalıdır.
InStrRev Instr ile aynıdır tek fark arama sondan başa
doğru yapılır bulunulan yer yine başlangıca göre
verilir.
LCase
Stringi küçük harfe çevirir.
LCase(string)
Left
Stringin solundan karakter alınmasını sağlar.
Left(string,length)
Len
Stringin kaç karakter uzunluğunda olduğunu
bulur.
chop(string,charlist)
Len(string|varname)
LTrim
"\0" - ASCII 0, NULL
"\t" - ASCII 9, a tab
"\n" - ASCII 10, a new line
"\x0B" - ASCII 11, a vertical tab.
"\r" - ASCII 13, a carriage return
" " - ASCII 32, an ordinary white
space
Stringin solundaki boşlukların silinmesini sağlar.
LTrim(string)
RTrim
Stringin solundaki boşlukların silinmesini sağlar.
RTrim(string)
Trim
Stringin her iki tarafındaki boşlukları siler.
Trim(string)
Mid
Replace
Right
Bir stringin içindeki kelime ya da karakterlerin
değiştirilmesini sağlar.
Replace(string,aranan,yerine konacak
[,start[,count[,compare]]])
chunk_split()
count_chars()
İstenilen karakterle istenilen uzunlukta string
oluşturulmasını sağlar.
String(number,character)
StrRevers Stringi ters çevirir.
e
StrReverse(string)
UCase
implode()
join()
4
Stringin bölünerek dizi yapılmasını 3
sağlar.
Tablonun tüm elemanlarını bir
stringe çevirir.
3
implode(separator,array)
join(separator,array)
3
implode ile aynı işi yapar.
Stringin solundaki ekranda
3
gösterilemeyen karakterleri siler.
ltrim(string,charlist)

"\0" - NULL

"\t" - tab

"\n" - new line

"\x0B" - vertical tab

"\r" - carriage return

" " - ordinary white space
nl2br()
String içindeki “\n” komutunu
<br/> yapar.
Örnekler:
txt="Bügün güzel bir gün!"
document.write(pos)%>
Çıktısı:
3
Stringde karakterlerin kaç defa
tekrarlandığının bulunmasını
sağlar.
ltrim()
UCase(string)
pos=InStr(txt,"gün")
3
explode(separator,string
,limit)
Stringi büyük harfe çevirir.
<%dim txt,pos
Stringin içine istenilen aralıklarla
istenilen karakterin eklenmesini
sağlar.
count_chars(string,mode)
explode()
Space(number)
String
3
chunk_split(string,lengt
h,end)
İstenilen sayıda boşluk oluşturulmasını sağlar.
StrComp İki stringin karşılaştırılmasını sağlar. Eşitse o
değilse -1 döndürür.
StrComp(string1,string2[,compare])
Asci kodu verilen karakterin
bulunmasını sağlar.
chr(ascii)
Bir stringin sağından belli sayıda karakter
alınmasını sağlar.
Right(string,length)
Space
chr()
Stringin istenilen karakterinden itibaren istenilen
sayıda karakter alınmasını sağlar.
Mid(string,başlangıç[,uzunl
uk])




3
nl2br(string)
number_format()
Sayıların 3 lü gruplanmasını
sağlar.
3
number_format(number,dec
imals,decimalpoint,separ
ator)
16
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
<%dim txt,uz
Txt=”ASP”
Uz=len(txt)
For i=1 to uz
Response.write(left(txt,i))
next
For i=1 to uz
Response.write(right(txt,i))
next
For i=1 to uz
Response.write(mid(txt,i,1))
Next%>
Çıktısı:
A
AS
ASP
P
SP
ASP
A
S
P
_____________________________________________________
dim txt
txt="bugun guzel bir gun!"
document.write(UCase(txt))
Çıktısı:
BUGUN GUZEL BİR GUN!
_____________________________________________________
dim txt
txt=" bugun guzel bir gun! "
document.write(Trim(txt))
Çıktısı:
"bugun guzel bir gun!"
_____________________________________________________
dim txt
txt="Bugün güzel bir gün!"
document.write(Replace(txt,"güzel","kötü"))
Çıktısı:
Bugün kötü bir gün
_____________________________________________________
StrComp(string1,string2[,compare]
)




-1 (if string1 < string2)
0 (if string1 = string2)
1 (if string1 > string2)
Null (if string1 or string2 is Null)
ord()
Karakterin ascii kodunu verir.
3
parse_str()
Stringin içindekideğişkenlerin
alınmasını sağlar.
3
parse_str(string,array)
print()
Stringi yazar.
3
printf()
Stringi formatlı yazmayı sağlar.
3
printf(format,arg1,arg2,arg++)
sscanf()
Parses input from a string
according to a format
4
str_ireplace()
Stringin istenilen karakterlerinin
değiştirilmemsini sağlar. (büyükküçük harfe duyarlı değildir)
5
str_ireplace(find,replace,stri
ng,count)
str_pad()
Stringin soluna sağına veya iki
tarafına belirtilen karakterlerin
eklenerek istenilen uzunluğa
tamamlanmasını sağlar.
4
str_pad(string,length,pad_stri
ng,pad_type)
str_repeat()
Stringin istenildiği kadar
tekrarlanmasını sağlar.
4
str_repeat(string,repeat)
str_replace()
Str_ireplace ile aynıdır. Ancak
büyük küçük harf duyarlıdır.
3
str_split()
Stringi parçalayarak diziye atar.
5
str_split(string,length)
str_word_count()
Stringin içindeki kelimeleri sayar. 4
strcasecmp()
İki stringi karşılaştırır. B-k harf
duyarsızdır.
İki stringi karşılaştırır. B-k harf
duyarlıdır.
3
stripos()
Bir stringin içindeki başka bir
stringin yerini öğrenmeyi sağlar.
(case-insensitive)
5
strlen()
Stringin uzunluğunu bulur.
3
strpos()
Bir stringin içindeki başka bir
stringin yerini öğrenmeyi sağlar.
(case-sensitive)
3
strtolower()
Stringi küçük harfe çevirir.
3
strtoupper()
Stringi büyük harfe çevirir.
3
trim()
Stringin heriki tarafındaki ekranda 3
gösterilmeyen karakterleri siler.
ucfirst()
ucwords()
Stringin ilk harfini büyüe çevirir. 3
Stringin her kelimesinin ilk harfine 3
büyüğe çevirir.
strcmp()
3
<?php
$str = "Hello world. It's a beautiful day.";
print_r (explode(" ",$str));
?>
Çıktısı:
Array
(
document.write(StrComp("VBScript","VBScript")) [0] =>
Output:
[1] =>
0
[2] =>
document.write(StrComp("VBScript","vbscript")) [3] =>
Output:
[4] =>
-1
[5] =>
document.write(StrComp("VBScript","vbscript",1 )
))
Output:
0
Hello
world.
It's
a
beautiful
day.
17
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
FileSystemObject Nesnesi
Dosya sistemi nesnesi sunucudaki dosya sistemine erişmek
için kullanılır. Bu nesne dosyaları, klasörleri ve klasör
yollarını yönetir.
PHP Dosya Sistemi Fonksiyonları
Function
Description
P
H
P
basename()
Yolda belirtilen dosya adını alır.
3
basename(path,suffix)
Aşağıdaki kodlar bir text dosyası açar(c:\test.txt) ve içine
merhaba yazar.
<%
dim fs,f_ad
set fs=Server.CreateObject("Scripting.FileSystemObject")
set f_ad=fs.CreateTextFile("c:\test.txt",true)
f_ad.WriteLine("Merhaba!")
f_ad.Close
set f_ad=nothing
set fs=nothing
%>
<?php
$path = "/testweb/home.php";
//Uzantısıyla birlikte dosya adını yaz
echo basename($path) ."<br/>";
//Dosya adını uzantı olmadan yaz
echo basename($path,".php");
?>
chgrp()
Dosyanın grubunu değiştirir.
3
chgrp(file,group)
<?php
chgrp("test.txt","admin")
?>
chmod()
Erişim izinlerini değiştirir.
3
chmod(file,mode)
Methods
Method
Description
CopyFile
Bir yada daha çok dosyayı bir
yerden başka bir yere kopyalar.
FileSystemObject.CopyFile
source,destination[,overwrite]
<%
dim fs
set
fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CopyFile
"c:\mydocuments\web\*.htm","c:\webpages\"
set fs=nothing
%>
CopyFolder
Bir yada daha çok klasörü bir
konumdan başka bir konuma
kopyalar.
<?php
// Read and write for owner, nothing for everybody
else
chmod("test.txt",0600);
// Read and write for owner, read for everybody else
chmod("test.txt",0644);
// Everything for owner, read and execute for
everybody else
chmod("test.txt",0755);
// Everything for owner, read for owner's group
chmod("test.txt",0740);
?>
chown()
Sahibini değiştirir.
<?php
chown("test.txt","charles")
?>
copy()
Dosya kopyalar.
<?php
echo copy("target.txt","source.txt");
?>
CreateFolder
dirname()
CreateTextFile
Text dosya oluşturur ve okumak
veya yazmak için bir dosya
sistemi nesnesi döndürür
FileSystemObject.CreateTextFile
(filename[,overwrite[,unicode]])
FolderObject.CreateTextFile
(filename[,overwrite[,unicode]])
Konunun başındaki örneğe bakınız.
DeleteFile
Bir veya daha çok belirlenmiş
dosyayı siler.
Yoldaki klasör adını döndürür.
3
disk_free_space() Returns the free space of a directory
fclose()
Açılan dosyayı kapatır.
4
3
feof()
Açılan dosyanın sonuna gelinip
gelinmediğini test eder.
3
fgetcsv()
Parses a line from an open file,
checking for CSV fields
3
fgets()
Returns a line from an open file
3
fgetss()
Returns a line, with HTML and PHP tags 3
removed, from an open file
file()
Reads a file into an array
3
file_exists()
Checks whether or not a file or
directory exists
3
FileSystemObject.CreateFolder(name)
<%
dim fs,f
set
fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.CreateFolder("c:\asp")
set f=nothing
set fs=nothing
%>
3
copy(file,to_file)
FileSystemObject.CopyFolder
source,destination[,overwrite]
<%
‘c:\mydocuments\web içindeki tüm klasörleri
‘c:\webpages klasörünün içine kopyala
dim fs
set
fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CopyFolder "c:\mydocuments\web\*","c:\webpages\"
set fs=nothing
%>
Yeni klasör oluşturur.
3
chown(file,owner)
file_get_contents( Reads a file into a string
)
4
file_put_contents Writes a string to a file
5
FileSystemObject.DeleteFile(filename[,force])
18
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
<%
dim fs
Set
fs=Server.CreateObject("Scripting.FileSystemObject")
fs.CreateTextFile("c:\test.txt",True)
if fs.FileExists("c:\test.txt") then
fs.DeleteFile("c:\test.txt")
end if
set fs=nothing
%>
fileatime()
Returns the last access time of a file
3
filectime()
Returns the last change time of a file
3
filegroup()
Returns the group ID of a file
3
fileinode()
Returns the inode number of a file
3
filemtime()
Returns the last modification time of a 3
file
fileowner()
Returns the user ID (owner) of a file
3
fileperms()
Returns the permissions of a file
3
filesize()
Returns the file size
3
filetype()
Returns the file type
3
flock()
fnmatch()
Locks or releases a file
3
Matches a filename or string against a 4
specified pattern
fopen()
Opens a file or URL
fpassthru()
Reads from an open file, until EOF, and 3
writes the result to the output buffer
fputcsv()
Formats a line as CSV and writes it to
an open file
5
fputs()
Alias of fwrite()
3
fread()
fscanf()
3
4
fseek()
Reads from an open file
Parses input from an open file
according to a specified format
Seeks in an open file
fstat()
Returns information about an open file 4
ftell()
Returns the current position in an open 3
file
ftruncate()
Truncates an open file to a specified
length
4
fwrite()
Writes to an open file
3
glob()
Returns an array of filenames /
directories matching a specified
pattern
4
is_dir()
is_executable()
Checks whether a file is a directory
Checks whether a file is executable
3
3
<%
dim fs,f
set
fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.GetFile("c:\test\test.htm")
Response.Write("The file was last modified on: ")
Response.Write(f.DateLastModified)
set f=nothing
set fs=nothing
%>
Çıktısı:
The file was last modified on 01/01/20 4:23:56 AM
is_file()
Checks whether a file is a regular file
3
is_link()
Checks whether a file is a link
3
is_readable()
Checks whether a file is readable
3
GetFileName
DeleteFolder
Belirlenmiş bir veya daha çok
klasörü siler.
FileSystemObject.DeleteFolder(foldername[,fo
rce])
<%
dim fs
set
fs=Server.CreateObject("Scripting.FileSystemObject")
if fs.FolderExists("c:\temp") then
fs.DeleteFolder("c:\temp")
end if
set fs=nothing
%>
DriveExists
FileExists
FolderExists
GetBaseName
Belirtilen sürücünün olup
olmadığını test eder.
Belirtilen dosyanın olup
olmadığını test eder.
Belirtilen klasörün olup
olmadığını test eder.
Belirlenen dosya yada klasörün
temel adını verir.
FileSystemObject.GetBaseName(path)
<%
dim fs
set
fs=Server.CreateObject("Scripting.FileSystemObject")
Response.Write(fs.GetBaseName("c:\winnt\cursors\3dga
rro.cur"))
set fs=nothing
%>
Çıktısı:
3dgarro
GetFile
Belirlenen yoldaki dosya
nesnesini alır.
FileSystemObject.GetFile(path)
Belirtilen yoldaki dosya yada
klasör adını döndürür.
FileSystemObject.GetFileName(path)
3
3
is_uploaded_file() Checks whether a file was uploaded via 3
HTTP POST
is_writable()
is_writeable()
Checks whether a file is writeable
Alias of is_writable()
4
3
link()
Creates a hard link
3
linkinfo()
Returns information about a hard link
3
lstat()
Returns information about a file or
symbolic link
3
mkdir()
Creates a directory
3
move_uploaded_f Moves an uploaded file to a new
ile()
location
4
FileSystemObject.GetFolder(path)
parse_ini_file()
pathinfo()
Parses a configuration file
Returns information about a file path
4
4
GetParentFolderName
pclose()
Closes a pipe opened by popen()
3
popen()
Opens a pipe
3
readfile()
Reads a file and writes it to the output 3
buffer
readlink()
Returns the target of a symbolic link
3
realpath()
rename()
Returns the absolute pathname
Renames a file or directory
4
3
GetFolder
Belirtilen yoldaki klasör
nesnesini döndürür.
Belirtilen yoldaki klasör adlarını
verir.
FileSystemObject.GetParentFolderName(path)
<%
dim fs,p
set
fs=Server.CreateObject("Scripting.FileSystemObject")
p=fs.GetParentFolderName("c:\winnt\cursors\3dgarro.c
ur")
19
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Response.Write(p)
set fs=nothing
%>
Output:
c:\winnt\cursors
MoveFile
Dosya yada dosyaları bir
konumdan başka bir konuma
taşır.
Klasör yada klasörleri bir
konumdan başka bir konuma
taşır.
MoveFolder
OpenTextFile
Dosyaya erişim için bir
textstream nesnesi döndürür.
rewind()
Rewinds a file pointer
3
rmdir()
Removes an empty directory
3
set_file_buffer()
Sets the buffer size of an open file
3
stat()
Returns information about a file
3
symlink()
Creates a symbolic link
3
tempnam()
tmpfile()
Creates a unique temporary file
Creates a unique temporary file
3
3
touch()
Sets access and modification time of a 3
file
umask()
Changes file permissions for files
3
unlink()
Deletes a file
3
Dosya Açma
FileSystemObject.OpenTextFile(fname,mode,create,format)
PHP’de dosya açmak için fopen() fonksiyonu kullanılır.
Dosya Açma
Dosya açmak için opentextfile komutu kullanılır. Bu
komutun parametreleri aşağıdaki gibidir:
FileSystemObject.OpenTextFile(fname,mode,create,format)
Parameter Description
fname
Gerekli. Açılacak dosyanın adı.
mode
Seçmeli. Dosyanın nasıl açılacağı
1=Okuma – Dosya okumak için açılır yazılamaz.
2=Yazma – Dosya yazmak için açılır.
8=Ekleme – Dosya yazmak için açılır işaretçi
dosyanın sonuna konulanır.
create
format
1. parametre açılacak olan dosyanın ismi 2. parametre
açılma modunu belirler.
<html>
<body>
<?php
$file=fopen("welcome.txt","r");
?>
</body>
</html>
Dosya aşağıdaki modlarda açılabilir:
Modes
r
Description
Sadece okuma, dosya başına konumlanılır.
r+
Okuma/Yazma. Dosyanın başına konumlanılır.
Seçmeli. Dosya formatı
w
Sadece yaz. Dosya açılır ve tüm içeriği silinir,
eğer dosya yoksa oluşturulur.
0=TristateFalse - Open the file as ASCII.
This is default.
-1=TristateTrue - Open the file as Unicode.
-2=TristateUseDefault - Open the file using
the system default.
w+
Okuma/Yazma. Dosya açılır ve tüm içeriği silinir,
eğer dosya yoksa oluşturulur.
a
Append(ekleme). Dosya sonuna yazılması için
açılır. Dosya yoksa oluşturulur.
Seçmeli. Dosya yoksa oluşturulsunmu. True
yapılırsa dosya yoksa oluşturulur. False yağılırsa
dosya yoksa oluşturulmaz.
a+
The TextStream Object
x
Sadece yazma. Dosya oluşturulur. Dosya varsa
FALSE döndürülür.
x+
Okuma/Yazma. Yeni dosya açılır. Dosya varsa
FALSE döndürülür.
Properties
Property
AtEndOfLine
Description
Okuma yaparken satır sonuna gelindiğinde
true değerini alır. Diğer durumlarda False
dır.
AtEndOfStream Dosya işaretçisi TextStream ın sonuna
geldiğinde True değerini alır. Değilse false
olur.
Column
Dosya işaretçisinin gösterdiği karakterin
sutun numarasını verir.
Line
Dosya işaretçisinin bulunduğu satır
numarasını verir.
Okuma/Append(ekleme). Dosya içeriği
korunarak yazmak için dosya sonuna
konumlanılır.
Örnek
<html>
<body>
<?php
$file=fopen("welcome.txt","r") or
exit("Unable to open file!");
?>
</body>
</html>
Methods
Method
Close
Read
Description
TextStream dosyasının kapatır.
Read(karakter sayısı)
Dosyadan bulunulan satırdan karakter
20
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
sayısı kadar veriyi okumayı sağlar.
Dosyanın tümünü okur.
Dosya işaretçisinin bulunduğu satırı
okumayı sağlar.
Skip
Skip(karakter sayısı)
Karakter sayısı kadar atlamayı sağlar.
SkipLine
Dosyada sonraki satıra atlamayı sağlar.
Write
TextStream dosyasına yazmayı sağlar.
WriteLine
Dosyaya satır yazarak alt satıra geçer.
WriteBlankLines TextStream dosyasına boş bir satır
yazmayı sağlar.
ReadAll
ReadLine
Dosyanın Kapatılması
fclose() fonksiyonu dosyayı kapatmak için kullanılır:
<?php
$file = fopen("test.txt","r");
//some code to be executed
fclose($file);
?>
Örnek
Bu örnekte c sürücüsündeki test.txt dosyasının tüm içeriği
okunarak exploreda gösterilmektedir.
<%
dim fs,f,t,x
set
fs=Server.CreateObject("Scripting.FileSystemObject")
set f=fs.CreateTextFile("c:\test.txt")
set t=fs.OpenTextFile("c:\test.txt",1,false)
x=t.ReadAll
t.close
Response.Write("Dosyanın içeriği..: " & x)
%>
Dosyanın Kapatılması
Dosyanın kapatılması için dosya.close komutu kullanılır.
Satır satır dosya okuma
Aşağıdaki örnekte sitenin yolu server.mappath komutu ile
öğrenilmektedir. Dosya okuma modunda açılarak while
not dosya.atendofstream komutu dosya sonuna kadar
okuma yapmak için bir döngü kurulmuştur.
Örnek
<%
set fs=server.CreateObject("Scripting.filesystemobject")
yol=server.MapPath("mesaj.txt")
set dosya=fs.opentextfile(yol,1)
do while not dosya.atendofstream
Response.Write(dosya.readline)
Response.Write("<br>")
loop
set dosya=nothing
set fs=nothing
%>
Dosya Sonu Testi
feof() fonksiyonu dosya sonuna gelinip gelinmediğini test
etmeyi sağlar. Uzunluğu bilinmeyen dosyayı okurken
döngülerde kullanılır.
Not: Dosya w, a, ve x modunda açılırsa okunamaz.
if (feof($file)) echo "Dosya Sonu";
Satır satır dosya okuma
fgets() fonksiyonu tek bir satır okumak için kullanılır.
Note: Bu fonksiyon çalıştıktan sonra işaretçi sonraki satıra
konumlanır.
Örnek
<?php
$file = fopen("welcome.txt", "r") or
exit("Unable to open file!");
//Output a line of the file until the end is
reached
while(!feof($file))
{
echo fgets($file). "<br />";
}
fclose($file);
?>
Uygulama 1:
Karakter Karakter dosya okuma
Aşağıdaki uygulamada kullanıcının veri girişi
yapacağı sayfanın tasarım görünümü gösterilmiştir. Burada fgetc() fonksiyonu tek bir karakter okumak için kullanılır.
kullanıcının giriş yapacağı formun altında da daha önce
girilmiş tüm mesaklar gösterilmektedir.
Note: dosya işaretçisi sonraki karaktere konumlanır.
Örnek
<?php
$file=fopen("welcome.txt","r") or
exit("Unable to open file!");
while (!feof($file))
{
echo fgetc($file);
}
fclose($file);
?>
21
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Yukarda tasarımı verilen sayfanın kodları aşağıdaki gibidir:
Aşağıda da formdan girilen bilgilerin dosyaya
kaydedilmesini sağlayan m_kaydet.asp sayfasının kodları
gösterilmektedir.
22
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Uygulama 2:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<title>Untitled Document</title>
</head>
<body>
Attributes:
<%
dosya=request.QueryString("dosya")
set fs=server.CreateObject("Scripting.FileSystemObject")
set d=fs.getfile(dosya)
Response.Write(d.attributes)
%>
<p>0 = Normal file<BR>
1 = Read-only file<BR>
2 = Hidden file<BR>
4 = System file<BR>
16 = Folder or directory<BR>
32 = File has changed since last backup<BR>
1024 = Link or shortcut<BR>
2048 = Compressed file</p>
<p>Oluşturulma tarihi(d.datecreated):<%= d.datecreated %></p>
<p>Son Erişim Tarihi(d.datelastaccessed):<%= d.datelastaccessed %></p>
<p>Son düzenleme Tarihi(d.datelastmodified):<%= d.datelastmodified %> </p>
<p>Sürücü(d.drive):<%= d.drive %></p>
<p>Dosya Adı(d.name):<%= d.name %> </p>
<p>Bulunduğu klasör (d.parentfolder):<%= d.parentfolder %> </p>
<p>Dosyanın yolu(d.path):<%= d.path %> </p>
<p>Dosaynın yolu-kısaltılmış(d.shortpath):<%= d.shortpath %> </p>
<p>Dosyanın Adı-kısaltılmış(d.shortname):<%= d.shortname %></p>
<p>Dosyanın türü(d.type):<%= d.type %></p>
<p>Dosyanın Boyutu(d.size):<%= d.size %></p>
<% set d=nothing
set fs=nothing %>
</body>
</html>
23
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
ASP Uyulama Nesnesi (Application Object)
Yayınlanmakta olan sitenin bütünü bir uygulamadır. Server çalıştığı sürece uygulama açıktır ve uygulama nesnesi
tüm kullanıcılar(sitede dolaşan) tarafından paylaşılır. Uygulama nesnesi değişkenlerde değer saklamak ve bunlara erişmek
için kullanılır, tüm sayfalarda ve kullanıcılarda geçerlidir.
Uygulama nesnesi çok sayıda sayfada kullanılan uygulamalara(veri tabanı bağalantısı bilgileri gibi) ait bilgileri
tutmak için kulanılır. Bunun anlamı tüm sayfalaradan bu bilgilere erişilebilir hemde bu bilgilerden biri değiştirildiğinde bu
değişiklik tüm sayfalara otomatik olarak yansıtılır.
Uygulama nesnesinin koleksiyonları, metodları ve olayları aşağıda tanımlanmıştır:
Koleksiyon(Collections)
Collection
Description
Contents
Uygulamada script komutları vasıtası ile eklenen tüm öğeleri
içerir.
<%
Application("tarih")="2001/05/05"
Application("yazar")="Saray"
for each x in Application.Contents
Response.Write(x & "=" & Application.Contents(x) & "<br />")
next
%>
Çıktısı:
tarih=2001/05/05
yazar=Saray
StaticObjects
Html komutları ile eklenen bütün nesneleri içerir.
Metod(Methods)
Method
Description
Contents.Remove
İçerik koleksiyonundan öğe siler.
Application.Contents.Remove(name|index)
<%
Application("test1")=("Bir")
Application("test2")=("İk")
Application("test3")=("Üç")
Application.Contents.Remove("test2")
Application.Contents.Remove(2)
for each x in Application.Contents
Response.Write(x & "=" & Application.Contents(x) & "<br />")
next
%>
Output:
test1=Bir
test3=Üç
Contents.RemoveAll()
Lock
İçerik koleksiyonundaki tüm öğeleri siler.
Diğer kullanıcıların uygulama nesnesindeki değişkenleri
düzenlemesini engeller.
Unlock
Kullanıcıların uygulama nesnesindeki değişkenleri
düzenlemesini aktif hale getirir.
Olay(Events)
Event
Description
Application_OnEnd
Tüm kullanıcıların oturumu kapatıldığında ve uygulama
sonlandırıldığında bu olay gerçekleşir.
Application_OnStart
İlk oturum oluşturulduğunda bu olay meydana gelir.
24
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Oturum Nesnesi (Session Object)
Kullanıcı siteye girdiğinde her kullanıcı için benzersiz
bir numara verilir. Bu numara kullanıcı browser penceresini
kapatıncaya kadar geçerlidir. Oturum nesnesinde kullanılan
değişkenler oturum boyunca devam eder. Bunun sayesinde
şifreli giriş yapılan sayfaların her birinde kullanıcının siteye
girerken girdiği kullanıcı adı ve şifre bilgileri her sayfada test
edilebilir, alış-veriş sitelerinde kullancıların farklı sayfalardan
ürün seçmeleri ve seçtiği ürünler üzerinde daha sonra işlem
yapma imkânı sağlanır.
PHP Session Variables(oturum değişkenleri)
Bir sitedeki sayfayı açtığınızda sunucuda bir oturum açmış
olursunuz. Sayfa kapatıldığında ise oturum sonlanır.
Kullanıcının oturum boyunca yaptığı işlemlerin takip
edilebilmesi için oturum değişkenleri kulalnılır. Özelikle üye
girişi ve alışveriş sitelerinde yaygın olarak kullanılır. Oturum
değişkenleri kullanıcının oturumu boyunca sunucuda saklı
kalır. Sunucu siteye giren her kullanıcı için benzersiz bir
numara oluşturur ve kullanıcının işlemlerini buna göre takip
eder.
Collections
Collection
Description
Contents
Uygulamada script komutları vasıtası ile
eklenen tüm öğeleri içerir.
Application.Contents(Key)
Session.Contents(Key)
StaticObjects
Html komutları ile eklenen bütün
nesneleri içerir.
Properties
Property
Description
CodePage
Dinamik içerik görüntülendiği zaman
kullanılacak olan karakter kümesini
tanımlar.
Bir bölge veya yeri tanımlayan bir
tamsayının atanmasını veya
ayarlanmasını sağlar. İçeriği tarih, saat
veya para birimi gibi olan nesnelerin
görünümü bölge veya yere bağlıdır.
LCID
<%
response.write("<p>")
response.write("Default LCID is: " &
Session.LCID & "<br />")
response.write("Date format is: " & date() &
"<br />")
response.write("Currency format is: " &
FormatCurrency(350))
response.write("</p>")
Session.LCID=1036
%>
SessionID
Her kullanıcı için benzersiz bir numara
döndürür. Benzersiz numara server
tarafından üretilir.
<%
Response.Write(Session.SessionID)
%>
Çıktısı:
772766038
Timeout
Oturumun süresini öğrenmeyi veya yeni
değer vermeyi sağlar.(dakika olarak)
<%
response.write("<p>")
response.write("Varsayılan zaman aşımı
süresi: " & Session.Timeout)
response.write("</p>")
Session.Timeout=30
response.write("<p>")
response.write("Şimdiki zaman aşımı süresi: "
& Session.Timeout)
response.write("</p>")
PHP’de oturumu başlatmak
Php’de kullanıcı bilgilerini oturumda saklamadan önce
oturumun başlatılması gerekir.
Note: session_start() fonksiyonu <html> iminden önce
yazılmalıdır.
<?php session_start(); ?>
<html>
<body>
</body>
</html>
Oturum değişkeninde değişken saklama
$_SESSION[] komutu kullanılarak oturumda değişkenler
saklanır ve değerleri okunur:
<?php
session_start();
// veri saklama
$_SESSION['gorunum']=1;
?>
<html>
<body>
<?php
//veriyi okuma
echo "Sayfa gorunumu=". $_SESSION['gorunum'];
?>
</body>
</html>
Çıktı:
Pageviews=1
Aşağıdaki örnekte basit bir sayaç yapılmıştır. İsset()
fonksiyonu sayac değişkeninin oluşturulup oluşturulmadığını
test eder. eğer sayac değişkeni varsa değeri 1 artırılır. Yoksa
oluşturularak ilk değerine 1 verilir.
<?php
session_start();
if(isset($_SESSION['sayac']))
25
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
%>
$_SESSION['sayac']=$_SESSION['sayac']+1;
Çıktısı:
Varsayılan zaman aşımı süresi: 20
Şimdiki zaman aşımı süresi: 30
Methods
else
$_SESSION['sayac']=1;
echo "Sayaç=". $_SESSION['sayac'];
?>
Oturumun sonlandırılması
Method
Description
Abandon
Dosya1.asp:
Kullanıcı oturumunu sonlandırır.
<%
Session("name")="Ali"
Session.Abandon
Response.Write(Session("name"))
%>
Çıktı:
Ali
Bazı oturum verilerini silmek için unset() veya
session_destroy() fonsiyonu kullanılır.
Unset() fonksiyonu istenilen oturum değişkenini siler:
<?php
unset($_SESSION['sayc']);
?>
Dosya2.asp:
<%
Response.Write(Session("name"))
%>
Çıktı:
(yok)
Contents.Remove
İerik koleksiyonundan bir öğeyi siler.
Session.Contents.Remove(name|index)
<%
Session("test1")=("Bir")
Session("test2")=("İk")
Session("test3")=("Üç")
Session.Contents.Remove("test2")
Session.Contents.Remove(2)
for each x in Session.Contents
Response.Write(x & "=" & Session.Contents(x)
& "<br />")
next
%>
Tüm oturum değişkenleri silmek için session_destroy()
fonksiyonu çağrılmalıdır:
<?php
session_destroy();
?>
Note: session_destroy() fonksiyonu oturumu sıfırlar ve
oturumda saklanan bütün veriler kaybolur.
Çıktı:
test1=Bir
test3=Üç
Contents.RemoveAll() İçerik koleksiyonundaki oturuma ait
tüm öğeleri siler.
Events
Event
Description
Session_OnEnd
Oturum sonlandığında bu olay
gerçekleşir.
Session_OnStart
Oturum başladığında bu olay gerçekleşir.
Örnek Uygulama 1: global.asa dosyası kullanılarak
sitedeki aktif kullanıcıların ve ziyaret eden kullanıcıların
sayısını öğrenmek.
Global.asa
<SCRIPT LANGUAGE=VBScript RUNAT=Server>
Sub Application_OnEnd()
End Sub
Session.Timeout=1
Sub Application_OnStart()
Application("SuankiZiyaretciSayisi") = 0
Application("toplamziyaret") = 0
End Sub
26
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Sub Session_OnEnd()
Application("SuankiZiyaretciSayisi") =
Application("SimdikiZiyaretciSayisi") -1
End Sub
Sub Session_OnStart()
Application("SuankiZiyaretciSayisi") =
Application("SimdikiZiyarteciSayisi") +1
Application("toplamziyaret") = Application("toplamziyaret")
+1
End Sub
</SCRIPT>
Bu sayfayı siteklasörünün içine global.asa olarak kaydedin.
Şimdide aktif ziyaretçi sayısını ve toplam ziyaretçi sayısını
sayfamıza eklemek için kullanacağımız komutları yazalım:
<%
Response.Write "<h4> Su Anda Sitemizde " &Application
("SuankiZiyaretciSayisi" ) & " Kisi Surf Yapmaktadir...
</h4>"
Response.Write "<h4>Simdiye Kadar Sitemizi "
&Application("toplamziyaret" )&" Kisi Ziyaret
Etmistir...</h4>"
%>
Örnek Uygulama 2:
Şimdide sitemize bir üyelik girişi yapalım ve giriş yapmayanların
tüm sayfalara girmesini engelleyelim:
Kullanıcı girişi formu ve kodları
Uye_giris.asp
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1254"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=iso-8859-9">
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="">
<p>Kullanıcı Adı...:
<input name="kad" type="text" id="kad">
</p>
<p> ifre...............:
<input name="sifre" type="text" id="sifre">
<input type="submit" name="Submit" value="Giri ">
</p>
27
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
</form>
<%
kullanici_ad=array ("user","ali","fazıl","mehmet") 'tanımlı
kullanıcı adları
sifre=array("u123","a123","f123","m123") 'kullanıcı adları
için tanımlı ifreler user için u123 vb.
g_ad=request.Form("kad") 'formdan girilen ad
g_sifre=request.Form("sifre") 'formdan girilen ifre
session.Contents("gecerli")=0 ' tüm sayfalarda giri yapılıp
yapılmadı ının testi için oturumda kullanıcak gecerli anahtarı.
for i=0 to ubound(kullanici_ad)
if kullanici_ad(i)=g_ad and sifre(i)=g_sifre then
session.Contents("gecerli")=1
session.Contents("s_ad")=g_ad
session.Contents("s_sifre")=g_sifre
end if
next
if session.Contents("gecerli")=1 then
response.Redirect("index.asp")
%>
</body>
</html>
Burada form ve asp kodları aynı sayfa içine yazılmıştır. Formun
altında yer alan kodlarda:
Kullanici_ad dizisinde kullanıcı adları sifre dizisinde de şifreler
tanımlanmıştır. Formdan girilen kullanıcı adı ve şifre g_ad ve
g_sifre değişkenlerine aktarılmıştır. For döngüsünde girilen
kullanıcı adı ve şifrenin dizilerde olup olmadığı test edilmektedir,
eğer varsa oturumda tanımlanmış olan gecerli değişkenine 1
verisi s_ad değişkenine kullanıcı adı s_sifre değişkenine şifre
bilgisi aktarılmaktadır böylece tüm sayfalarda gerektiğinde
kullanıcı adı ve şifre verisine erişilebilir. Bundan sonra yapılacak
iş sitede yer alan tüm sayfaların başında gecerli değişkenini test
etmek ve değeri 1 değilse uy_giris.asp sayfasına yönlendirme
yapmaktır. Sayfaların başına eklenecek kod aşağıdaki gibi
olabilir:
<% if session.Contents("gecerli")=0 then
response.Redirect("uye_giris.asp") %>
ASP Cookies(kişi-çerez)
PHP Cookies(kişi-çerez)
Cookie Nedir?
Cookie Nedir?
Cookie kullanıcıyı tanımlamak için kullanılır. Cookie küçük bir A cookie is often used to identify a user. A cookie is a small
dosyadır
bu
dosya
sunucu
tarafından
kullanıcının file that the server embeds on the user's computer. Each
bilgisayarına gömülür.
time the same computer requests a page with a browser, it
28
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
will send the cookie too. With PHP, you can both create and
retrieve cookie values.
Cookie nasıl oluşturulur?
"Response.Cookies" komutu ile cookie oluşturulur.
How to Create a Cookie?
Note: Response.Cookies komutu <html> komutundan önce
kullanılır.
The setcookie() function is used to set a cookie.
Aşağıdaki örnekte ad isimli bir cookie oluşturularak içine ali
değeri atanmıştır:
Note: The setcookie() function must appear BEFORE the
<html> tag.
<%
Response.Cookies("ad")="Ali"
%>
Syntax
setcookie(name, value, expire, path, domain);
Example
Cookie ye ne zaman sonlandırılacağını belirten bir özellikde
atanabilir:
<%
Response.Cookies("ad")="Ali"
Response.Cookies("ad").Expires=#May 10,2008#
%>
In the example below, we will create a cookie named "user"
and assign the value "Alex Porter" to it. We also specify that
the cookie should expire after one hour:
<?php
setcookie("user", "Alex Porter",
time()+3600);
?>
<html>
Cookie değeri nasıl okunur?
<body>
</body>
"Request.Cookies" komutu cookie nin değerini öğrenmek için </html>
kullanılır.
Aşağıdaki örnekte ad cookie sindeki veri adi değişkenine
aktarılarak yazdırılmaktadır:
<%
adi=Request.Cookies("ad")
response.write("adi=" & adi)
%>
Çıktı:
Note: The value of the cookie is automatically URLencoded
when sending the cookie, and automatically decoded when
received (to prevent URLencoding, use setrawcookie()
instead).
How to Retrieve a Cookie Value?
The PHP $_COOKIE variable is used to retrieve a cookie
value.
Adi=Ali
In the example below, we retrieve the value of the cookie
named "user" and display it on a page:
Cookie ile anahtarlar
Eğer cookie çok sayıda değer içeriyorsa buna cookie
anahtarlara sahip denir.
<?php
// Print a cookie
echo $_COOKIE["user"];
// A way to view all cookies
print_r($_COOKIE);
?>
Aşağıda buna bir örnek verilmiştir:
<%
Response.Cookies("kullanici")("ad")="Ali"
Response.Cookies("kullanici ")("soyad")="Eser"
Response.Cookies("kullanici ")("sehir")="Turkey"
Response.Cookies("kullanici ")("yas")="25"
%>
Tüm cookie leri okuma
<html>
<body>
In the following example we use the isset() function to find
out if a cookie has been set:
<html>
<body>
<?php
if (isset($_COOKIE["user"]))
echo "Welcome " . $_COOKIE["user"] . "!<br
/>";
else
echo "Welcome guest!<br />";
?>
29
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
<%
dim x,y
for each x in Request.Cookies
response.write("<p>")
if Request.Cookies(x).HasKeys then
for each y in Request.Cookies(x)
response.write(x & ":" & y & "=" &
Request.Cookies(x)(y))
response.write("<br />")
next
else
Response.Write(x & "=" & Request.Cookies(x) & "<br
/>")
end if
response.write "</p>"
next
%>
</body>
</html>
</body>
</html>
How to Delete a Cookie?
When deleting a cookie you should assure that the expiration
date is in the past.
Delete example:
<?php
// set the expiration date to one hour ago
setcookie("user", "", time()-3600);
?>
Eğer browser cookie yi desteklemiyorsa?
What if a Browser Does NOT Support Cookies?
Eğer browser cookie leri desteklemiyorsa bilgileri bir
sayfadan diğerine aktarmak için diğer yöntemler
kullanılmalıdır. Bu aşağıdaki iki yolla yapılabilir:
If your application deals with browsers that do not support
cookies, you will have to use other methods to pass
information from one page to another in your application.
One method is to pass the data through forms (forms and
user input are described earlier in this tutorial).
1. URL’ye parametre ekleme
The form below passes the user input to "welcome.php"
when the user clicks on the "Submit" button:
URL’ye parametreler şu şekilde eklenir:
<a href="giris.asp?ad=Ali&soyad=Eser">
Giriş sayfası</a>
Gönderilen parametreleri giris.asp sayfasında okumak için
kullanılacak kodlar:
<%
ad=Request.querystring("ad")
soyad=Request.querystring("soyad")
response.write("<p>Merhaba " & ad & " " &
soyad & "!</p>")
response.write("<p>Siteme hoşgeldiniz!</p>")
%>
2. Form kullanımı
You can use a form. The form passes the user input to
"welcome.asp" when the user clicks on the Submit button:
<html>
<body>
<form action="welcome.php" method="post">
Name: <input type="text" name="name" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>
Retrieve the values in the "welcome.php" file like this:
<html>
<body>
Welcome <?php echo $_POST["name"]; ?>.<br />
You are <?php echo $_POST["age"]; ?> years
old.
</body>
</html>
<form method="post" action="welcome.asp">
First Name: <input type="text" name="fname"
value="">
Last Name: <input type="text" name="lname"
value="">
<input type="submit" value="Submit">
</form>
Retrieve the values in the "welcome.asp" file like this:
<%
fname=Request.form("fname")
lname=Request.form("lname")
30
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
response.write("<p>Hello " & fname & " " &
lname & "!</p>")
response.write("<p>Welcome to my Web
site!</p>")
%>
31
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
SQL Nedir?









SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
SQL
‘in açılımı Structured Query Language
veri tabanına erişmeyi sağlar.
bir ANSI stabdardı programlama dilidir
veritabanı içinde sorgulama yapabilir
veri tabanından veri getirebilir
veri tabanına yeni kayıt ekleyebilir
veritabanından kayıt silebilir
veritabanında kayıtgüncelleyebilir
öğrenilmesi kolaydır
SQL standardı
SQL bir ANSI (American National Standards Institute) standardı dilidir. Veri tabanına erişimi ve yönetimi sağlar. SQl veri
tabanı prıgramlarında kullanılır.( Access, DB2, Informix, MS SQL Server, Oracle, Sybase, vb.)
Maalesef çok farklı sürümlerde SQL dili vardır ancak bunlarda ANSI satandart dilini destekler. Bunların da asıl anahtar
kelimeleri benzer işlevleri içerir. ( SELECT, UPDATE, DELETE, INSERT, WHERE, ve diğerleri gibi).
Tablo
Bir veritabanı genellike bir daha çok tablo içerir. Her tablonun adı ile tanımlanır. Tablo verilerin tutulduğu kayıtları içerir.
Sorgu
Bir sorgu aşağıdaki gibidir:
SELECT Soyad FROM Kisiler
SQL Veri işleme (Data Manipulation Language -DML)
SQL sorguları çalıştıran bir sintaksdır. SQL dili aynı zamanda update, insert, ve delete kelimelerini kullanan yazımlarda içerir.

SELECT – veri tabanı tablosundan veri seçmeyi sağlar
Syntax
SELECT column_name(s)
FROM table_name
Not: SQL deyimleri büyük küçük harf duyarlı değildir.
SELECT Soyad,Ad FROM Persons

UPDATE – tabloda veri günceller
Syntax
UPDATE Tablo_Adı
SET Sütun_adı = new_value
WHERE sütun_adı = deger
Örnek: UPDATE Kisiler SET ad = 'Ayşe'
WHERE soyad = 'Evren'

DELETE – tablodan veri siler
32
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Syntax
DELETE FROM table_name
WHERE column_name = some_value
Örnek: DELETE FROM Kisiler WHERE soyad = 'Evren'

INSERT INTO – tabloya yeni kayıt ekler
Syntax
INSERT INTO tablo_adı
VALUES (değer1, değer2,....)
Verilerin tabloda hangi alanlara eleneceğide yazılabilir:
INSERT INTO Tablo_adı (sütun1, sütun2,...)
VALUES (değer1, dğer2,....)
Örnek:
INSERT INTO Kisiler
VALUES ('Ali', 'Çınar', 'Meram
24', 'Konya')
SQL Veri Tanımlama Dili (Data Definition Language - DDL)
Veri tanımlama dili tablo oluşturmak veya silmek için veri tabanına erişimi sağlar.

CREATE TABLE – yeni bir tablo oluşturur
CREATE DATABASE database_name
‘veri tabanı oluşturur.
CREATE TABLE table_name
(
column_name1 data_type,
column_name2 data_type,
.......
)
CREATE TABLE Person
(
LastName varchar,
FirstName varchar,
Address varchar,
Age int
)
CREATE TABLE Person
(
LastName varchar(30),
FirstName varchar,
Address varchar,
Age int(3)
)
Data Type
Description
integer(size)
int(size)
smallint(size)
tinyint(size)
Hold integers only. The
maximum number of digits
are specified in parenthesis.
decimal(size,d) Hold numbers with fractions.
numeric(size,d) The maximum number of
digits are specified in "size".
The maximum number of
digits to the right of the
decimal is specified in "d".
char(size)
Holds a fixed length string
(can contain letters,
numbers, and special
characters). The fixed size is
specified in parenthesis.
varchar(size)
Holds a variable length
string (can contain letters,
numbers, and special
characters). The maximum
size is specified in
parenthesis.
date(yyyymmdd) Holds a date

ALTER TABLE – tabloyu değiştirmeyi sağlar.
ALTER TABLE table_name
ADD column_name datatype
ALTER TABLE table_name
DROP COLUMN column_name

DROP TABLE – veritabanı veya tabloyu silmeyi sağlar.
33
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
DROP TABLE tablo_adı
DROP DATABASE veritabanı_adı

CREATE INDEX – indeks oluşturur (arama anahtarı)
CREATE UNIQUE INDEX index_name
ON table_name (column_name)
CREATE INDEX index_name
ON table_name (column_name)
CREATE INDEX PersonIndex
ON Person (LastName)
CREATE INDEX PersonIndex
ON Person (LastName DESC)
CREATE INDEX PersonIndex
ON Person (LastName, FirstName)

DROP INDEX – indeks siler
Syntax for Microsoft SQLJet (and Microsoft Access):
DROP INDEX index_name ON table_name
Syntax for MS SQL Server:
DROP INDEX table_name.index_name
Syntax for IBM DB2 and Oracle:
DROP INDEX index_name
Syntax for MySQL:
ALTER TABLE table_name DROP INDEX index_name
34
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
ASP sayfasından veri tabanına erişim
1.
2.
3.
4.
5.
6.
7.
Veri tabanına ADO bağlantısı oluştur
Veri tabanı bağlantısını aç
ADO kayıt kümesi(recordset) oluştur
Kayıt kümesini(recordset) aç
Kayıt kümesinden istediğin veriyi seç al.
Kayıt kümesini kapat
Bağlantıyı kapat
ADO nedir?





ADO bir Microsoft teknelojidir
ADO - ActiveX Data Objects
ADO bir Microsoft Active-X componentidir
ADO IIS ile otomatik olarak kurulur
ADO veri tabanı içinde veriye erişmeyi sağlayan bir
proglamlama arayüzüdür
DSN-siz veri tabanı bağlantısı oluşturma
Öreneğin c sürücüsünde bulunan ornek.mdb veri tabanına
erişmek için aşağıdaki kodlar kullanılabilir:
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/ornek.mdb"
%>
ODBC veri tabanı bağlantısı oluşturma
ODBC’de veri1 adıyla oluşturulmuş olan bir veri tabanına
bağlantı oluşturmak için aşağıdaki kodlar kullanılabilir:
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Open "veri1"
%>
MS Access veri tabanını ODBC de tanımlama
1.
2.
3.
4.
5.
6.
7.
Denetim masası/yönetimsel araçlar/veri kaynakları
(ODBC) penceresini aç
System DSN sekmesini seç.
Sistem dsn tabından ekle butonuna tıkla
Veri kaynağı oluştur penceresinden Microsoft Access
Driver’ı seç. Son u tıkla.
Sonraki pencerede veri kaynağı adı kısmına erişim için
kullanılacak DSN(Data Source Name) ismini ver.
seç butonuna tıklayarak veri tabanını seç.
Tamam butonunu tıkla.
ADO ile tablo kayıt kümesi oluşturma
PHP sayfasından mysql veri tabanına erişim
MySQL nedir?
Mysql ilişkisel bir veri tabanı yönetim sistemidir. Verileri
saklamak için farklı veri tabanları ve bu veri tabanlarında
talolar oluşturma imkanı sağlar. Veri tabanında işlemler için
SQL dilini kullanılmasını sağlar. Bir İsveç firması tarafından
geliştirilmiştir ve bu gelişim sürdürülmektedir. Çok hızlı,
güvenilir ve kullanımı kolaydır. Birçok programlama dili
tarafından mysql veri tabanına erişilebilir. 60000'in üzerinde
tablo, 5 milyarın üzerinde satır ile çalıştığı söylenen MySQL
sistemler bulunuyor.
MySQL'DE KULLANICILAR ve YETKİLENDİRME

MySQL'de tüm kullanıcılar ve yetkileri, "mysql" isimli
bir veritabanında tutulur.

Bir
kullanıcı
iki
parçadan
oluşur
:
kullanici_ismi@bilgisayar_ismi
(hostname).
Bu
ikiliyi
MySQL
tek
bir
kullanıcı
olarak
algılar.
Yani
ahmet@localhost ile ahmet@penguen aynı kullanıcılar
değildir (localhost ve penguen aynı makinalar olsa dahi).

Bir kullanıcının 4 yetki seviyesi vardır. Her yetki
seviyesi için mysql isimli veritabanında birer tablo bulunur.

Hiyerarşik olarak bu tablolar en genelden özele
doğru tanımlama yapar.

User tablosu : Bağlanan kullanıcının sunucuya
bağlanma hakkı olup olmadığını kontrol eder. Eğer erişim
hakkı varsa, kullanıcı tabloda kendisi için belirtilen yetkilere
sahip olur.

Db
tablosu
:
Hangi
kullanıcıların
hangi
veritabanlarına
hangi bilgisayarlardan
ulaşabileceğini
belirler. Eğer kullanıcının ilgili veritabanına erişim hakkı
varsa, tabloda kendisi için belirtilen yetkilere sahip olur.

Tables_priv tablosu : Aynı db tablosu gibi çalışır,
ancak veritabanları yerine içindeki tablolara erişimi
düzenler.

Columns_priv tablosu : Aynı db ve tables_priv
tabloları gibi çalışır, ancak veritabanlarının içindeki
tabloların içindeki kolonlara erişimi düzenler.
mysql veritabanı
|
|
user
|
|
db
|
|
tables_priv
|
|
columns_priv
Veri abanı bağlantısı oluşturulduktan sonra kayıt kümesi
oluşturulabilir.
Veri Tabanı adını ornek.mdb kabul edelim ve bu veri
tabanındaki uyeler tablosuna bağlanmak için bu kodlar
35
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
kullanılabilir:
phpMyAdmin
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "c:/ornek.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "uyeler", conn
%>
ADO ile SQL kayıt kümesi oluşturma
Ornek.mdb veri tabanındaki uyeler tablosuna SQL ile
erişmek için:
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "ornek.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from uyeler", conn
%>
Kayıt kümesindeki verileri listelemek
Kayıt kümesi açıldıktan sonra bu kümeden veri alınabilir:
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "ornek.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from uyeler", conn
for each x in rs.fields
response.write(x.name)
response.write(" = ")
response.write(x.value)
next
%>
Bu kodlar sadece 1. kaydı göstermektedir. Tablodaki tüm
kayıtları göstermek için:
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "ornek.mdb"
set rs=Server.CreateObject("ADODB.recordset")
rs.Open "Select * from uyeler", conn
do until rs.eof
for each x in rs.fields
response.write(x.name)
response.write(" = ")
response.write(x.value)
next
Response.Write("<hr>")
rs.movenext
loop
rs.close
conn.close
%>

phpMyAdmin, özellikle MySQL'in web-veritabanı
çözümlerde kullanımında her geçen gün defacto standart
haline gelen yönetim arayüzüdür.

Web üzerinden çalıştığı için bir ek istemci programa
ihtiyaç duymaksızın, herhangi bir bilgisayardan uzaktaki
MySQL sunucuyu yönetilebilir.

"Root"
olarak
tüm
bir
MySQL
sunucusunu
yönetebileceğiniz gibi sadece belirli bir veritabanını da
yönetebilirsiniz. phpMyAdmin hangi kullanıcı ismi ile
veritabanına bağlanırsa, onun haklarına sahip olur.

Birden fazla MySQL sunucusunu da, her birinin kendi
ayarlarıyla tek bir phpMyAdmin ile yönetebilirsiniz.

Türkçe de dahil olmak üzere 45+ dilde kullanılabilir.

Her
türlü
kayıt
ekleme,
silme,
değiştirme;
veritabanı/tablo yaratma; kullanıcı açma/yetkilendirme;
kısacası aklınıza gelen her şeyi phpMyAdmin ile SQL
komutlarına ihtiyaç duymaksızın yapabilirsiniz.

Veritabanının içeriğini SQL komutlarından oluşan bir
dosyaya boşaltabilir, daha sonra o dosyadan veritabanını
istediğiniz başka herhangi bir sunucuda oluşturabilirsiniz.

Bu hazır tanımlanmış işlemlerin dışında her tür SQL
komutunu kendiniz yazarak çalıştırabilir, phpMyAdmin'i
tam bir SQL istemcisi gibi kullanabilirsiniz.
MySQL veritabanına bağlanma
Veriler üzerinde işlem yapabilmek için önclikle veritabanına
bir bağlantı kurulmalıdır. PHP ile bağlantı için
mysql_connect() fonksiyonu kullanılır.
Mysql_connect(sunucuadı,kullanıcıadı,sifre);
Parametre Açıklam
sunuadı
Seçmeli Varsayılan değeri "localhost:3306"
kullanıcıadı Seçmeli Kullanıcı adını tanımlamayı sağlar.
password
Seçmeli tanımalanan kullanıcının şifresini belirtir.
Örnek
Aşağıdaki örnekte bağlantı değişkeni $bag’dır. Eğer bağlantı
başarısız olursa die kısmı çalışır ve scripti sonlandırır:
<?php
$bag = mysql_connect("localhost","root","");
if (!$bag)
{
die('Bağlanılamadı: ' . mysql_error());
}
// kodlar
?>
Bağlantıyı kapatma
Scriptin sonunda bağlantı kapatılmalıdır. Bağlantıyı kapatmak
için on as the script ends. To close the connection before,
mysql_close() fonksiyonu kullanılır.
<?php
$bag = mysql_connect("localhost","root","");
if (!$bag)
{
36
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
Seçilen verileri gösterme
Uyeler tablosundan uye adı S ile başlayan kayıtları bir
tabloda göstermek için kullanılacak kodlar:
<html>
<body>
<%
set
conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
conn.Open "ornek.mdb"
set rs=Server.CreateObject("ADODB.recordset")
sql="SELECT Uye_ad, Sifre FROM uyeler
WHERE Uye_ad LIKE 'S%'"
rs.Open sql, conn
%>
<table border="1" width="100%">
<tr>
<%for each x in rs.Fields
response.write("<th>" & x.name & "</th>")
next%>
</tr>
<%do until rs.EOF%>
<tr>
<%for each x in rs.Fields%>
<td><%Response.Write(x.value)%></td>
<%next
rs.MoveNext%>
</tr>
<%loop
rs.close
conn.close%>
</table>
</body>
</html>
Verileri Sıralama
Sıralama yapmak için SQL cümlesinde ORDER BY deyimini
kullanmak yeterlidir. Bu şekilde açılan kayıt kümesinde
kayıtlar sıaralı olarak yer alacaktır.
die('Bağlanılamadı: ' . mysql_error());
}
// kodlar
mysql_close($bag);
?>
Veri tabanı oluşturma
CREATE DATABASE deyimi veri tabanı oluşturmak için
kullanılır.
Syntax
CREATE DATABASE veritabanı_adı
bu deyimi çalıştırmak için mysql_query() fonksyonu kullanılır.
Bu fonksiyon mysql bağlantısına sorgu veya komut
göndermek için kullanılır.
Örnek
Aşağıdaki kodlarla deneme adlı veri tabanı oluşturulmaktadır:
<?php
$bag = mysql_connect("localhost","root","");
if (!$bag)
{
die('Bağlanılamadı: ' . mysql_error());
}
if (mysql_query("CREATE DATABASE
deneme",$bag))
{
echo "Veri tabanı oluşturuldu";
}
else
{
echo "Veri tabanı oluşturulurken hata
oluştu: " . mysql_error();
}
mysql_close($bag);
?>
Select * from uyeler [where ……..] order by Uye_ad,…
Tablo oluşturma
Tabloya kayıt ekleme
Kayıt eklemek için iki ayrı sayfa kullanılacaktır. 1. sayfada
kullanıcı uye ad ve sifre girecek 2. sayfada ise girilen bilgiler
alınarak SQL komutu kullanılarak tabloya eklenecektir. 1
sayfanın(k_gir.asp) ekran görünümü ve kodları aşağıdaki
gibidir:
CREATE TABLE deyimi mysql de tablooluşturmak için
kullanılır.
Sintaks
CREATE TABLE tablo_adı
(
sütun_adı veri_tipi,
sütun_adı veri_tipi,
sütun_adı veri_tipi,
.......
)
CREATE TABLE deyimini mysql_query() fonksiyonunu
kullanarak çalıştırmalıyız.
Örnek
Aşağıdaki örnekte kisiler adlı 3 sütunlu bir tablo
oluşturulmaktadır. Sütun adları ad, soyad ve yas ‘tır:
37
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
İkinci sayfanın(kaydet.asp) kodları aşağıdaki gibidir:
<?php
$bag = mysql_connect("localhost","root","");
if (!$bag)
{
die('Bağlanılamadı: ' . mysql_error());
}
// Veritabanı oluştur
if (mysql_query("CREATE DATABASE
deneme",$bag))
{
echo "Veritabanı oluşturuldu";
}
else
{
echo "Hata : " . mysql_error();
}
// deneme veritabanında tablo oluştur
mysql_select_db("deneme", $bag);
$sql = "CREATE TABLE kisiler
(
Ad varchar(15),
Soyad varchar(15),
Yas int
)";
mysql_query($sql,$bag);
mysql_close($bag);
?>
Açıklama: tablo oluşturulmadan veritabanı seçilmelidir. Veri
tabanını seçmek için mysql_select_db() fonksiyonu
kullanılır.
Not: alan veri türü varchar yapıldığında parantez içerisinde
maksimum uzunluk belirtilir. Ör: varchar(15).
MySQL Veri Tipleri
Mysql’de kullanılabilecek veri türleri:
Sayısal veri tipleri
Açıklama
int(size)
smallint(size)
tinyint(size)
mediumint(size)
bigint(size)
Sadece tamsayıları tutar. Parantez
içinde maksimum hane sayısı
belirtilir.
decimal(size,d)
double(size,d)
float(size,d)
Gerçel sayıları tutar. Maksimum
hane sayısı siz parametresinde
belirtilir.ondalık kısımdaki hane
sayısı d parametresinde belirtilir.
Kayıt Güncelleştirme
Metinsel veri türleri
Kayıt güncelleme için yine 2 sayfa yapmamız gerekmektedir. char(size)
Birinci sayfa tablodaki kayıtları listeleyecek ve güncellemek
istediğimiz kaydın sçilmesini sağlayacaktır. Seçilen kaydın
ID’si diğer sayfaya aktarılacak ve bu sayfada seçilen kaydın
bilgilerini veri düzenlememize imkan sağlamak için textfield varchar(size)
içerisinde gösterecektir. Burada düzenlemeler yapıldıktan
sonra güncelle butonuna tıklandığında aynı sayfada yer alan
güncelleme kısmı çalışacak ve veriler tabloya yazılacaktır.
Açıklama
Birinci sayfa(gun1.asp):
tinytext
Maksimum 255 karakter
uzunluğunda metin saklar.
<html>
text
blob
Değişken uzunlukta metin saklar.
maksimum 65535 karakter
Sabit uzunlukta metin tutar(harfler,
rakamlar, ve özel karakterler).
Size parametresinde uzunluk
belirtilir.
Değişken uzunlukta metin
saklanmasını sağlar(harfler,
rakamlar, ve özel karakterler).
Meksimum karakter sayısı size
parametresinde belirtilir.
38
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
<body>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
yol=server.MapPath("kisi_2000.mdb")
conn.Open yol
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM uyeler",conn
%><h2>List Database</h2>
<table border="1" width="100%">
<tr>
<%
for each x in rs.Fields
response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
mediumtext
mediumblob
Değişken uzunlukta metin saklar.
Maksimum 16777215 karakter
longtext
longblob
Değişken uzunlukta metin saklar.
Maksimum 4294967295 karakter
Tarih veri türleri
Açıklama
date(yyyy-mm-dd)
Tarih veya saat tutar.
datetime(yyyy-mm-dd
hh:mm:ss)
timestamp(yyyymmddh
hmmss)
time(hh:mm:ss)
Karışık(misc.) veri
Açıklama
türü
enum(value1,value2,ect ENUM kısa sıralanmış listedir. Can
)
store one of up to 65535 values
listed within the ( ) brackets. If a
value is inserted that is not in the
list, a blank value will be inserted
set
SET ENUM gibidir. However, SET
can have up to 64 list items and can
store more than one choice
<% do until rs.EOF %>
<tr>
<form method="post" action="gun2.asp">
<%
for each x in rs.Fields
if lcase(x.name)="id" then%>
<td>
<input type="submit" name="id" value="<%=x.value%>">
</td>
<%else%>
<td><%Response.Write(x.value)%></td>
<%end if
next
%>
</form>
<%rs.MoveNext%>
</tr>
<%
loop
conn.close
%>
Birincil anahatarlar ve otomatik artırmalı alanlar
Her tablo bir birincil anahtar içermelidir. Birincil anahtar
tabloda satırları(kayıt) tanımlamak için kullanılır. Tablodaki
her birincil anahtar benzersiz olmalıdır. Bunun yanında
birincil anahtar alanı boş(null) olamaz çünkü veritabanı
motoru kaydın yerleşimi için bir değere ihtiyaç duyar.
Birincil anahtar daima indeksdir. Bu kural dışına çıkılamaz.
Birincil anahtara göre indeks yapılır böylece veritabanı
motoru hızlıca satıra konumlanabilir.
Aşağıdaki örnekte kişiID alanı birincil anahtardır. Birincil
anahtar sıklıkla ID içerir ve otomatik artan(auto increment)
olarak ayarlanır. Otomatik artan alan her kayıt eklendiğinde
değeri 1 artar. Böylece anahtar alan boş değer içermez.
Örnek
$sql = "CREATE TABLE kisiler
(
kisiID int NOT NULL AUTO_INCREMENT,
PRIMARY KEY(kisiID),
Ad varchar(15),
Soyad varchar(15),
Yas int
)";
mysql_query($sql,$con);
</table>
</body>
UYGULAMA 1: Kütüphane işlemleri için bir veritabanı
</html>
oluşturalım. İnternet üzerinden kütüphanelerde ne tür işlemler
yapıldığını düşünerek gerek li tabloları, sorguları ve gerekli
işlemlerin web üzerinden yapılmasını sağlayan siteyi yapalım.
Site Adımız: Kütüphane
Veri tabanı adı: Kutuphane
Tablolar: 1. Kitap
Alanlar ve veri türleri:
İkinci sayfa(gun2.asp):
<html>
<body><h2>Update Record</h2>
<%
ID
varchar(30)
39
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
set conn=Server.CreateObject("ADODB.Connection")
K_ad
varchar(200)
conn.Provider="Microsoft.Jet.OLEDB.4.0"
Yazari
varchar(100)
yol=server.MapPath("kisi_2000.mdb")
Icindekiler
blob
conn.Open yol
T_adet
int(3)
cid=cint(Request.Form("id"))
M_adet
tinyint(3)
if Request.form("Uye_ad")="" then
Yer
varchar(20)
K_türü
varchar(50)
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM uyeler WHERE ID=" & cid ,conn
Bu tablo kütüphanemizdeki tüm kitapların listesini tutacaktır.
Kitap arama, içindekilere göre arama, mevcut durumu gibi
işlemler bu tablo üzerinden yapılacaktır.
Bu tabloya kayıt girilmesi ziyaretçiler tarafından yapılmayacaktır.
Ancak tüm bilgilerin personel tarafından girilmesi gerekmektedir.
Bu durumda bu tabloya kayıt girişi için gerekli php sayfası admin
kısmında yer almalıdır. Biz yinede kayıt girişinin nasıl olduğunu
görmek için gerekli sayfayı yapalım.
Veri tabanını ve tabloyu PhpMyAdmin aracılığıyla oluşturalım
name="<%=x.name%>"
Kayıt girişi: Kayıt girişi için 2 sayfa kullanılacaktır. Birincisi
%>
<form method="post">
<table>
<%for each x in rs.Fields%>
<tr>
<td><%=x.name%></td>
<td><input
value="<%=x.value%>"></td>
kayit_gir.php ikincisi kitap_kaydet.php sayfasıdır.
Kitap_gir.php sayfasının ekran görünümü:
<%next%>
</tr>
</table>
<br /><br />
<input
name="submit" type="submit"
id="submit"
value="Kaydı
Güncelle">
</form>
<%
else
sql="UPDATE uyeler SET "
sql=sql & "Uye_ad='" & Request.Form("Uye_ad") & "',"
sql=sql & "Sifre='" & Request.Form("Sifre") & "'"
sql=sql & " WHERE ID=" & cid
on error resume next
conn.Execute sql
if err<>0 then
response.write("No update permissions!")
else
response.write("Record " & cidx & " was updated!")
end if
end if
conn.close
%></body>
</html>
Kayıt Silme
Birinci sayfa(sil1.asp)
<html>
<body>
<%
Kitap_kaydet.php
<?php
$barkod=$_POST["barkod"];
$k_adi=$_POST["kad"];
$yazari=$_POST["yazar"];
$icindekiler=$_POST["icindekiler"];
$t_adet=$_POST["tad"];
$m_adet=$_POST["mad"];
$yeri=$_POST["yer"];
$turu=$_POST["tur"];
$vt=mysql_connect("localhost","fazil","123");
if (!$vt){die('Bağlantı Kurulamadı '.mysql_error());
mysql_select_db("kutuphane",$vt);
$sql = "INSERT INTO kitap (ID, K_ad, Yazari, Icindek
K_türü)
VALUES ('$barkod', '$k_adi', '$yazari', '$icindekile
'$yeri', '$turu')";
mysql_query($sql,$vt);
mysql_close($vt);
40
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
yol=server.MapPath("kisi_2000.mdb")
conn.Open yol
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM uyeler",conn
%><h2>List Database</h2>
<table border="1" width="100%">
<tr>
<%
for each x in rs.Fields
response.write("<th>" & ucase(x.name) & "</th>")
next
%>
</tr>
<% do until rs.EOF %>
<tr>
<form method="post" action="sil2.asp">
<%
for each x in rs.Fields
if x.name="ID" then%>
<td>
<input name="ID" type="submit" id="ID"
value="<%=x.value%>">
</td>
<%else%>
<td><%Response.Write(x.value)%></td>
<%end if
?>
Kitap_listele.php
Bu sayfa veri tabanında kayıtlı tüm kitapları
listelemektedir. Kodları aşağıdaki gibidir:
<?php
$bag=mysql_connect("localhost","fazil","123");
if (!$bag){die ('Bağlanılamadı'.mysql_error());}
mysql_select_db("kutuphane",$bag);
$veriler=mysql_query("select * from kitap");
echo "<table border='1' align='center' width='600'>";
echo "<tr>";
while ($alan = mysql_fetch_field($veriler))
{
echo "<th>".$alan->name . "</th>";
}
echo "</tr>";
while($row = mysql_fetch_array($veriler))
{
echo "<tr>";
echo "<td>".$row['ID'] . "</td><td>" . $row['K_ad'].
"</td><td>" . $row['Yazari']. "</td><td>"
. $row['Icindekiler']. "</td><td>" . $row['T_adet'].
"</td><td>" . $row['M_adet']. "</td><td>"
. $row['Yer']. " </td><td> " . $row['K_türü']."<td>";
echo "</tr>";
}
echo "</table>";
echo "<hr>";
mysql_close($bag);
?>
Duzenle_Sil.php
Düzenle_sil sayfasının ekran görünümü aşağıdaki gibidir.
Düzenle sütunundaki resme tıklandığında düzenle.php sayfası
açılmaktadır. Sil sütunudaki resme tıklandığında ilgili kayıt
silinmektedir.
next
%>
</form>
<%rs.MoveNext%>
</tr>
<%
loop
conn.close
%>
</table></body>
</html>
İkinci sayfa(sil2.asp)
<html>
<body><h2>Delete Record</h2>
<%
set conn=Server.CreateObject("ADODB.Connection")
conn.Provider="Microsoft.Jet.OLEDB.4.0"
yol=server.MapPath("kisi_2000.mdb")
conn.Open yol
<?php
$bag=mysql_connect("localhost","fazil","123");
if (!$bag){die ('Bağlanılamadı'.mysql_error());}
mysql_select_db("kutuphane",$bag);
$veriler=mysql_query("select * from kitap order by ID");
echo "<table border='1' align='center' width='600' cellpadding='3'
cellspacing='0'>";
echo "<tr>";
echo "<th>Düzenle</th>";
echo "<th>Sil</th>";
while ($alan = mysql_fetch_field($veriler))
{
echo "<th>".$alan->name . "</th>";
}
echo "</tr>";
while($row = mysql_fetch_array($veriler))
41
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
cid=cint(Request.Form("id"))
if Request.form("Uye_ad")="" then
set rs=Server.CreateObject("ADODB.Recordset")
rs.open "SELECT * FROM Uyeler WHERE ID=" & cid ,conn
%>
<form method="post" action="">
<table>
<%for each x in rs.Fields%>
<tr>
<td><%=x.name%></td>
<td><input name="<%=x.name%>"
value="<%=x.value%>"></td>
<%next%>
</tr>
{
echo "<tr>";
echo "<td align='center' valign='middle'><a
href='duzenle.php?id=".$row['ID']."'><img src='edit.png'
width='25' height='25' alt='Düzenle'></a></td>";
echo "<td align='center' valign='middle'><a
href='sil.php?id=".$row['ID']."'><img src='editdelete.png'
width='25' height='25' alt='Sil'></a></td>";
echo "<td>".$row['ID'] . "</td><td>" . $row['K_ad'].
"</td><td>" . $row['Yazari']. "</td><td>"
. $row['Icindekiler']. "</td><td>" . $row['T_adet'].
"</td><td>" . $row['M_adet']. "</td><td>"
. $row['Yer']. " </td><td> " . $row['K_türü']."<td>";
echo "</tr>";
}
echo "</table>";
mysql_close($bag);
?>
Duzenle.php
</table>
<br /><br />
<input type="submit" value="Delete record">
</form>
<%
else
sql="DELETE FROM uyeler"
sql=sql & " WHERE ID=" & cid
on error resume next
conn.Execute sql
if err<>0 then
response.write("No update permissions!")
else
response.write("Record " & cid & " was deleted!")
end if
end if
conn.close
%></body>
</html>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-88599">
<title>Untitled Document</title>
<style type="text/css">
<!-.style1 {
font-size: 12px;
font-weight: bold;
}
-->
</style>
</head>
42
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
<body>
<?php
$bag=mysql_connect("localhost","fazil","123");
if (!$bag){die ('Ba lanılamadı'.mysql_error());}
mysql_select_db("kutuphane",$bag);
$sorgu="select * from kitap where ID='".$_REQUEST["id"]."'";
$veriler=mysql_query($sorgu);
$kayit=mysql_fetch_assoc($veriler);
?>
<form action="duzenle_kaydet.php" method="post"
enctype="multipart/form-data" name="form1">
<table width="443" border="1" align="center" cellpadding="5"
cellspacing="0">
<tr>
<th scope="col"><div align="left"
class="style1">Barkod</div></th>
<th scope="col"><div align="left">
<input name="barkod" type="text" id="barkod" value="<?php echo
$kayit['ID']; ?>" size="50">
<input name="bar" type="hidden" id="bar" value="<?php echo
$kayit['ID']; ?>">
</div></th>
</tr>
<tr>
<td><div align="left" class="style1">Kitap Adı </div></td>
<td><div align="left">
<input name="kad" type="text" id="kad" value="<?php echo
$kayit['K_ad']; ?>" size="50">
</div></td>
</tr>
<tr>
<td><span class="style1">Yazarı</span></td>
<td><input name="yazar" type="text" id="yazar" value="<?php
echo $kayit['Yazari']; ?>" size="50"></td>
</tr>
<tr>
<td><span class="style1"> çindekiler</span></td>
<td><p>
<textarea name="icindekiler" cols="50" rows="8"
id="icindekiler"><?php echo $kayit['Icindekiler']; ?></textarea>
</p>
</td>
</tr>
<tr>
<td><span class="style1">Toplam Adet </span></td>
<td><input name="tad" type="text" id="tad" value="<?php echo
$kayit['T_adet']; ?>" size="10"></td>
</tr>
<tr>
43
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
<td><span class="style1">Mevcut Adet </span></td>
<td><input name="mad" type="text" id="mad" value="<?php echo
$kayit['M_adet']; ?>" size="10"></td>
</tr>
<tr>
<td><span class="style1">Yeri</span></td>
<td><input name="yer" type="text" id="yer" value="<?php echo
$kayit['Yer']; ?>" size="50"></td>
</tr>
<tr>
<td><span class="style1">Türü</span></td>
<td><input name="tur" type="text" id="tur" value="<?php echo
$kayit['K_türü']; ?>" size="50"></td>
</tr>
</table>
<p
align="center">        &nb
sp; 
<input type="image" name="Submit" value="Submit" src="kaydet.gif">
</p>
</form>
</body>
</html>
Duzenle_kaydet.php
<?php
$barkod=$_POST["barkod"];
$k_adi=$_POST["kad"];
$yazari=$_POST["yazar"];
$icindekiler=$_POST["icindekiler"];
$t_adet=$_POST["tad"];
$m_adet=$_POST["mad"];
$yeri=$_POST["yer"];
$turu=$_POST["tur"];
$vt=mysql_connect("localhost","fazil","123");
if (!$vt){die('Bağlantı Kurulamadı '.mysql_error());}//die kodları
sonlandırır.
mysql_select_db("kutuphane",$vt);
$sql = "UPDATE kitap SET
ID='$barkod',K_ad='$k_adi',Yazari='$yazari',
Icindekiler='$icindekiler',T_adet='$t_adet',M_adet='$m_adet',Yer
='$yeri',K_türü='$turu'
WHERE ID='".$_REQUEST["bar"]."'";
mysql_query($sql,$vt);
mysql_close($vt);
?>
Sil.php
<?php
$bag=mysql_connect("localhost","fazil","123");
if (!$bag){die('bağlanamadı'.mysql_error());}
mysql_select_db("kutuphane",$bag);
$silid=$_REQUEST["id"];
$sorgu="DELETE FROM kitap WHERE ID='".$silid."'";
mysql_query($sorgu);
mysql_close($bag);
?>
44
Akören Ali Rıza Ercan M.Y.O. Öğr. Gör. Fazıl SARAY
45
Download