SQL Create

 

Bir veritabanı bir veya birden çok tablo içerir.

Veritabanı Oluştur

CREATE DATABASE ifadesi MySQL de veritabanı oluşturur.

Syntax

CREATE DATABASE veritabani_adi

Yukardaki ifade oluşan veritabanından bilgi sorgulaması için mysql_query() fonksiyonu kullanılır.

Bu fonksiyon MySQL bağlantısına istek ve sorgu gönderir.

Örnek

Aşağıdaki örnekte “my_db” adında bir veritabanı oluşturduk:

<?php

$con = mysql_connect(“localhost”,”serpito”,”abc123″);

if (!$con)

{

die(‘Bağlanamadı: ‘ . mysql_error());

}

if (mysql_query(“CREATE DATABASE my_db”,$con))

{

echo “veritabanı oluşturuldu”;

}

else

{

echo “veritabanı oluşturulmadı: ” . mysql_error();

}

mysql_close($con);

?>

Tablo Oluştur

CREATE TABLE ifadesi MySQL veri tablosu oluşturur.

Syntax

CREATE TABLE tablo_adi

(

satir_adi1 veri_tipi,

satir_adi 2 veri_tipi,

satir_adi 3 veri_tipi,

…….

)

CREATE TABLE ifadesi mysql_query() fonksiyonu fonksiyonunun muhattabı olarak yer alır ve sorgularda oluşturulan tablolar incelenir.

Örnek

Aşağıdaki örneğimizde, “adi” , “soyadi” ve “yas” olarak 3 sutunluk bir “arkadas” tablosu oluşturalım:

<?php

$con = mysql_connect(“localhost”,”serpito”,”abc123″);

if (!$con)

{

die(‘Baglamadi: ‘ . mysql_error());

}

// Veritabanı oluştur

if (mysql_query(“CREATE DATABASE my_db”,$con))

{

echo “Veritabanı yaratıldıs”;

}

else

{

echo “veritabanı oluşturulamadı: ” . mysql_error();

}

// my_db veritabanında tablo oluştur

mysql_select_db(“my_db”, $con);

$sql = “CREATE TABLE arkadas

(

adi varchar(15),

soyadi varchar(15),

yas int

)”;

mysql_query($sql,$con);

mysql_close($con);

?>

Önemli: Tablo eklemek için öncelikle bağlanılacak veritabanı seçilmeli.mysql_select_db() fonksiyonu ile veritabanı seçilir..

Not:varchar değeri için veritabanı alanı oluşturduğumuzda alanın maximum karakter uzunluğunu belirtmemiz gerekmektedir. Örnek; varchar(16).

MySQLVeri Türleri

Numerik Veri Türleri
Tanımı
int(size)
smallint(size)
tinyint(size)
mediumint(size)
bigint(size) Yanlızca integer(tamsayı) değeri tutar.Max. karakter genişliği parametre olarak alınır.
decimal(size,d)
double(size,d)
float(size,d) Sayıları kesirleri ile birlikte tutar. Max. karakter genişliği parametre olarak alınır.Ondalık sayı uzunluğu “d” parametresi ile tutulur.

Text Veri Türleri Tanımı
char(size) Sabit bir string uzunluğu tutar(harf, rakam,ve özel karakter).Parantez içinde sabit uzunluk tutulur.
varchar(size) Değişken bir string uzunluğu parametre olarak tutulur(harf, rakam,ve özel karakter).Parantez içinde sabit uzunluk tutulur.
tinytext Değişken bir stringi max.255 karakter uzunluğu ile tutar.
text
blob Değişken bir string I max. 65535 karakter uzunluğu ile tutar.
mediumtext
mediumblob Değişken bir stringi max. 16777215 karakter uzunluğu ile tutar.
longtext
longblob Değişken bir stringi max. 4294967295 karakter uzunluğu ile tutar.

Tarih Veri Türleri Tanımı
date(yyyy-mm-dd)
datetime(yyyy-mm-dd hh:mm:ss)
timestamp(yyyymmddhhmmss)
time(hh:mm:ss) Tarih ve zaman değerlerini tutar.

Karışık Veri Türleri Tanımı
enum(value1,value2,ect) ENUM ENUMERATED listesinin kisaltılmış halidir. () içinde 65535 değer tutabilir.Parantez içine geçersiz bir değer girildiğinde default boş değer atanır.
set SET, ENUM a benzer. Farkli olarak 64 değerlidir

Primary Keys ve Auto Increment Alanları

Her tabloda primar key(Birincil Anahtar) alanı bulunmalıdır.

Primary key tablodaki herhangi bir satıra tek bir kimlik verir.Her primary key tabloda da tek olmalıdır. Ayrıca primary key alanı kesinlikle boş “null” olamaz.Çünkü database sunucusu kayıtları almak için primary keyden değer isteyecektir.

Primary key alanı herzaman indexlenir.Bu istisnasız bir kuraldır!

Aşağıdaki örneğimizde , personID alanını primaryu key olarak tanımlıyoruz.Görelim;

Örnek

$sql = “CREATE TABLE person

(

personID int NOT NULL AUTO_INCREMENT,

PRIMARY KEY(personID),

FirstName varchar(15),

LastName varchar(15),

Age int

)”;

mysql_query($sql,$con);

SQL Connect

 

MySQL Veritabanına Bağlanma

Uygulamanız sırasında veritabanına erişmek ve bilgi almak için öncelikle veritabanına bağlanmanız gerekir.

PHP dilinde ,bu olay mysql_connect() fonksiyonu ile gerçekleşir.

Syntax

mysql_connect(sunucuadı,kullanıcıadı,şifre);

Parametre Tanım
Sunucuadı Opsiyonel. Bağlanılacak sunucuyu gösterir.Değer verilmezse default ayarı “localhost:3306” dır.
kullanıcıadı Opsiyonel. Bağlantı için bir kullanıcı adı tutar.
şifre Opsiyonel. Bağlantı için gereken şifreyi belirtir. Default değeri “” dir.

Not: Öncelikle türkçe karakterleri anlaşılırlığı sağlasın diye yazdığımı belirtmeliyim.PHP ve MySQL kodları diger tüm programlama dilleri gibi türkçe karakter içermemelidir.

Örnek

Aşağıdaki örneğimizde bağlantıyı bir değişkende ($con) tutuyoruz.. “die” bölümü bağlantı iptal edilirse kodun çalışmasını tutar:

<?php

$con = mysql_connect(“localhost”,”serpito”,”abc123″);

if (!$con)

{

die(‘veritabanına bağlanamadı: ‘ . mysql_error());

}

//işletilecek kod

?>

Bağlantıyı Kapatmak

PHP kodu işlemi tamamladığı anda başlantı kapanır. Bağlantıyı kapamak için mysql_close() fonksiyonu kullanılır.

<?php

$con = mysql_connect(“localhost”,”serpito”,”abc123″);

if (!$con)

{

die(‘Veritabanına bağlanamadı: ‘ . mysql_error());

}

// işletilecek kod

mysql_close($con);

?>

SQL Giriş

PHP , esnek bir web yazılım dilidir . Günümüzün gelişmiş birçok yazılım dilleri gibi birden fazla veritabanı (database) ile uyumlu halde çalışabilmektedir . Türkiye şartlarında düşünürsek , yazılım sektöründe PHP ile akla gelen ilk veritabanı MySQL olduğu için , ayrıca ORACLE , SQL ve diğerlerine nazaran PHP ile daha kullanışlı görünen veritabanı olduğu için , MYSQL derslerini yayınlamayı uygun buldum. MySQL genellikle PHP ile birlikte kullanılan ücretsiz bir veritabanı sunucusudur.

MySQL Nedir?

MySQL bir veritabanıdır.Veritabanı , bilgileri saklayan yapıları tanımlar.

Bir veritabanında , HTML tabloları gibi satır, sütun içeren tablolar bulunur.

Veritabanı , kategorilere göre veri saklamak için en uygun sistemdir. Bir şirketin örnek bir veritabanında “Müşteri” , “Ürün” , “Çalışanlar” ve “Sipariş” tabloları bulunur.

Veritabanı TablolarıOrtalama bir veritabanı genellikle bir veya birden fazla tablo içerir.Her tablo (“müşteri” veya “Sipariş” gibi) isimlendirilir. Her tablo veri kayıtlarını saklar.Aşağıda “insanlar” adında örnek bir tablo yaptık, inceleyelim :

Soyisim isim adres Şehir
Veli Uyanık Çankaya 10/2 Ankara
Cengiz Hayıf Cebeci 10/23 Ankara
Galip Bölük Strrazburg 20 Ankara

Sorgular

Sorgu, bir soru veya istek anlamındadır.

MySQL kayıtlarında , veritabanına yaptığımız sorgularda özel bilgileri, bir kayıtlı tablo kümesine sorgu yapabiliriz.

Aşağıdaki sorguya bakalım:

SELECT Soyisim FROM insanlar

Bu sorgu insanlar tablosunudaki Soyisim satırını bulur ve kayıtlı verileri döndürür:

Soyisim
Veli
Cengiz
Galip

MySQL Veritabanı İndirin

MySQL veritabanı sunucunuz PHP ile birlikte yüklememişse , ki PHP Kurulum yazımda kullanabileceğiniz PHP Web sunucuları hakkında detaylı bilgiler bulunur , aşağıdaki linkte , MySQL resmi web sitesinden veritabanınızı indirin: http://www.mysql.com/downloads/index.html

PHP – Error Handling

 

PHP dilinde hata ayıklama yöntemleri gayet basit ve güvenlidir.”php.ini” dosyasındaki error handling ayarını “1” değerine dönüştürerek , proje dosyalarınızda bulunan hataları tarayıcınızdan izleyebilme imkanına sahipsiniz.eryaman escort
arayınıcı bir nevi derleyici olarak kullanabilir ve hatalarını en kısa sürede düzenleme imkanına sahip olursunuz.

PHP Hata Ayıklama

Kod yazarken ve uygulama geliştirirken ,hataları takip ve düzenleme işlemleri çok önemlidir.Kodlarınız hatalı çalışıyor ise ,profesyonel anlamda ankara escort
size büyük bir kayıp olarak dönecektir,,ayrıca projenizin güvenliği çok büyük zarara uğrayacaktır.

Bu dersimizde PHP de hata ayıklama ve düzenleme yöntemleri hakkında yapılması gereken işlemleri göreceğiz.

Şimdi farklı hata ayıklama metodları görelim:
• Basit “die()” koşulu
•Özel hata ve hata tetikleyiciler
• Hata gösterme

Basit Hata Ayıklama: die() fonksiyonu kullanma
İlk örneğimizde ,herhangi bir text dosyasını açan bir script yazalım:

<?php
$file=fopen(“herhangibirtextdosyasi.txt”,”r”);
?>

“herhangibirtextdosyasi.txt” dosyasi bulunamadığı kartal escort
takdirde tarayıcımızda aşağıdaki gibi bir hata görürüz:

Warning: fopen(herhangibirtextdosyasi.txt) [function.fopen]: failed to open stream:No such file or directory in C:\webfolder\test.php on line 2

Bu hatadan kurtulmak için , dosyanın varlığını kontrol etmemiz gerekiyor,aşağıdaki scriptimizi görelim:

<?phpif(!file_exists(“herhangibirtextdosyasi.txt”))

{

die(“Dosya bulunamadı”);

}

else

{

$file=fopen(“herhangibirtextdosyasi.txt”,”r”);

}

?>

Dosya bulunamadığı takdirde aşağıdaki gibi bir uyarı alınacaktır;

Dosya Bulunamadı

Bu örneğimizdeki kodun güvenilirliği ,önceki örneğimizden çok daha fazladır.Çünkü yapılacak işlemde hata basit bir hata ayıklama yöntemiyle beklenmeyen hatalardan kurtulduk.

Her nekadar basit yöntemimiz ile geçerlilik kazandırdıysak da,her zaman aynı şekilde hatalardan kurtuluşu sağlanamaz.Bunun için alternatif olacak özel bir hata ayıklama scriptimizi yazalım:

Özel Hata AyıklamaÖzel bir hata ayıklama metodumuzu çok basitce tasarlayabiliriz. Öncelikle fonksiyonun yapısını incelemekte fayda var;

error_function(error_level,error_message,error_file,error_line,error_context)

Parameter Description
error_level Gerekli. Kullanıcı tanımlı hataları özelleştirir.Değer olmalıdır. Must be a value number.
error_message Gerekli. Kullanıcı tanımlı hata mesajını belirler
error_file Gerekli.Hata oluşan dosyayı belirtir.
error_line Opsiyonel. Hatalı kod satırını işaret eder.
error_context Opsiyonel.Hatalı kod içeriğini belirler ve parçayı gösterir.

Hata Rapor Aşamaları

Kullanıcının tanımlarıyla belirli hatalar istenilen şekilde gösterilebilir ve isimlendirilebilir.

Değer Sabit Tanımı
2 E_WARNING Ölümcül hata değil. run-time hatası denir.
8 E_NOTICE Run-time notları. Script normal olarak çalışır ,hata olşturabilecek noktaları gösterir.
256 E_USER_ERROR Kullanıcı sebebli ölümcül hata. E_ERROR a benzer. trigger_error() yapılandırılmasıyla oluşur.
512 E_USER_WARNING Ölümcül hata değil. E_WARNING e benzer. trigger_error() yapılandırılmasıyla oluşur.
1024 E_USER_NOTICE E_NOTICE e benzer. trigger_error() yapılandırılmasıyla oluşan notlardır.
4096 E_RECOVERABLE_ERROR Yakalanabilir ölümcül hatadır. E_ERROR a benzer, kullanıcının tanımladığı ayıklamalar ile engellenebilir.
8191 E_ALL Bütün hata ve uyarıları gösterir.

Bir fonksiyon tanımlayarak hata ayıklamamızı gerçekleştirelim;

function customError($errno, $errstr){

echo “<b>Hata:</b> [$errno] $errstr<br />”;

echo “Script sonu”;

die();

}

Yukardaki kod, basit bir hata ayıklama fonksiyonudur.Tetiklendiği anda, hata seviyesini ve hata mesajını yakalar, ve tarayıcıya yayınlatır.

Hata ayıklamayı gerçekleştirdik,, şimdi işe hata ayıklamanın ne zaman tetikleneceğini belirlemek gerekiyor;

Hata Ayıklayıcı YapılandırmakDefault hata ayıklayıcısı yapısını inceledik. Şimdi ise kodu çalışma zamanının herhangi bir anında hata ayıklamayı tetiklenecek şekilde yeniden düzenleyelim;Hata ayıklamayı ,sadece belirl hatalarda tetiklenmesini gerçekleştirebiliriz, fakat bu örneğimiz bütün tanımlanmış hataları gösteren bir script yazacağız.

set_error_handler(“customError”);

Örnek

Örneğimizi inceleyim;

<?php//hata ayıklayıcı fonksiyon

function customError($errno, $errstr)

{

echo “<b>Hata:</b> [$errno] $errstr”;

}

//Hata ayıklayıcıyı yapılandır

set_error_handler(“customError”);

//hatayı tetikle

echo($test);

?>

Kodun çıktısı aşağıdaki gibi olacaktır.

Custom error: [8] Undefined variable: test

Hatayı tetiklemeBir script içinde kullanıcı girdileri olan bölümlerinde hata tetikleme çok gerekli olacaktır.PHP dilinde , bu işlemi trigger_error() fonksiyonu ile gerçekleştirebiliriz.ÖrnekBu örneğimizde “test” değişkeninin değeri 1 ve altında bir değerde olmazsa hata oluşacaktır; Görelim;

<?php$test=2;

if ($test>1)

{

trigger_error(“Değer 1 veya daha az olmalıdır”);

}

?>

Kodun çıktısı şu şekilde olacaktır.

Notice: Değer 1 veya daha az olmalıdırin C:\webfolder\test.php on line 6

Hata script içerisinde istenilen herhangi bir yerde tetiklenebilir, ve ikinci bir parametre eklenerek tetikleme işlemi özelleştirilebilir;

Muhtemel Hata Türleri;
•E_USER_ERROR – Kullanıcı tanımlı işletim hatası. Kodun işletilmesi iptal edilir.
•E_USER_WARNING – Kullanıcı tanımlı işletim sırasında oluşan hata.İşletim durdurulmaz
•E_USER_NOTICE – Default. Kullanıcı tanımlı hata notu. Script hata oluşturabilir diye yorumlar fakat normal şekilde çalışmasına devam eder.

Örnek

Örneğimizde , “test” değişken değeri 1 den fazla olursa E_USER_WARNING meydana gelir. Hata oluşması durumunda E_USER_WARNING ile tanımladığımız notu script yayınlar:

<?php//hata ayıklayıcı fonksiyon

function customError($errno, $errstr)

{

echo “<b>Error:</b> [$errno] $errstr<br />”;

echo “Script sonu”;

die();

}

//hata ayıklayıcı fonksiyon yapılandırıldı

set_error_handler(“customError”,E_USER_WARNING);

//hatayı tetikle

$test=2;

if ($test>1)

{

trigger_error(“Değer 1 veya daha az olmalı”,E_USER_WARNING);

}

?>

Kodumuzun çıktısı şu şekilde olur.

Error: [512] Değer 1 veya daha az olmalı .Script sonu

Hata Bildirimi

Hata mesajlarını e-mail aracılığıyla rapor etmek en güvenli yoldur.

Hata Mesajı E-mail ile göndermek

Aşağıdaki örneğimizde tanımladığımız hata oluştuğu zaman hatanın e-mail ile bildirilmesini uyguluyoruz;

<?php//Hata ayıklayıcı fonksiyon

function customError($errno, $errstr)

{

echo “<b>Hata:</b> [$errno] $errstr<br />”;

echo “yöneticiye rapor edildi”;

error_log(“Hata: [$errno] $errstr”,1,

[email protected]”,”From: [email protected]”);

}

//hata ayıklayıcı kur

set_error_handler(“customError”,E_USER_WARNING);

//hata tetikle

$test=2;

if ($test>1)

{

trigger_error(“Değer 1 veya daha az olmalı”,E_USER_WARNING);

}

?>

The output of the code above should be something like this:

Error: [512] Değer 1 veya daha az olmalıYöneticiye rapor edildi

Aşağıdaki görünümde bir mail yönetici mail adresine gönderildi.

Error: [512] Değer 1 veya daha az olmalı

Bu yöntem tüm hatalar için kullanışlı olmayabilir.Kullanıcı tanımlı hatalarin bildirimi yönetilebilir ve mudahele edilebilir olduğu için uygundur.

PHP – İstisna Yönetimi

 

İstisna yönetimi , özel bir hata oluştuğu zaman kodun akışını değiştirebilir.

Exception(İstisna) Nedir?

PHP 5 ile birlikte hataları kontrol etmek için nesneye yönelik bir yaklaşım ortaya çıktı.

Hata ayıklama durumları hata oluştuğu anda işletilecek kodun normal akışını değiştirerek yönetilmesini sağlamaktadır.Buna ististan yönetimi adı verilir.
İstisna tetiklendiği anda şu aşamalar gerçekleşir;
•Varolan kod durumu kaydedilir.
•Kod işletimi önceden tanımladan hata ayıklama bloğuna atlayacaktır.
•Duruma göre , hata ayıklama sonunda , ya en son işletilen kod bloğuna yeniden dönerek devam edecek, yada hata ayıklama bloğunda belirtilen aşamadan devam edecektir.

Şimdi farklı hata ayıklama yöntemlerini inceleyelim:
•Basit istisna kullanımı
•Özel istisna ayıklayıcı tasarlamak
•Çoklu istisnalar
•Tekrarlı istisna göndermek
•Yüksek seviye istisna ayıklayıcı ayarlamak

Note: İstisnalar yanlızca hatalı oluşması durumunda kullanılmalıdır.Ayrıca kodun herhangi bir noktasına atlaması için kullanılmamalıdır.

Basit Exception(İstisna)

Bir istisna fırlatıldığında , devamındaki kod çalışmaya devam etmez, PHP gönderilen parçada “catch” ifadesi arar. “catch” ifadesi throw edilen istisnayı yakalar..

Eğer istisna hedefte yakalanamazsa , fatal error(ölümcül hata) oluşur.Hata notu “Uncaught Exception” – “Yakalanamayan istisna” olarak görülür.

Şimdi yakalanmayan bir istisna tasarlayalım;

<?php

//istisna fonksiyonu tanımlayalım

function checkNum($number)

{

if($number>1)

{

throw new Exception(“Değer 1 veya birden az olmalı”);

}

return true;

}

//istisnayı tetikle

checkNum(2);

?>

Yukarıdaki kodu çalıştırırsak , aşağıdaki gibi bir hata ile karşılaşırız:

Fatal error: Uncaught exception ‘Exception’

with message ‘ Değer 1 veya birden az olmalı ‘ in C:\webfolder\test.php:6

Stack trace: #0 C:\webfolder\test.php(12):

checkNum(28) #1 {main} thrown in C:\webfolder\test.php on line 6

Throw ve catch İfadeleri

Yukarıdaki gibi hatalarla uğraşmamak için ,uygun bir istisna yönetimi tasarlamamız gerekir.

Uygun bir istisna aşağıdaki ifadeleri içerir:
1. Try – istisna tanımlanan fonksiyon “try” bloğunda bulunur.İstisna gönderilmezse,kod çalışmaya devam etmez.İstisna tetiklenirse , try bloğundan fırlatılır ve adrese yönelir.
2. Throw -İstisnanın tetiklediği bloktur.Her throw ifadesi en az bir catch ifadesine sahip olmalıdır.
3. Catch – “catch” bloğu istisnanın yakalandığı ve tetiklendiği şekilde çalıştırıldığı bloktur.

Bir İstisna yi geçerli bir kod ile tetikleyelim:

<?php

//istisna fonksiyonu oluşturalım

function checkNum($number)

{

if($number>1)

{

throw new Exception(“Değer 1 veya daha az olmalıdır.”);

}

return true;

}

// “try” bloğunda istisnayı tetikleyelim

try

{

checkNum(2);

//istisna fırlatıldığında,bu kod çalışmayacaktır.

echo ‘Bunu görüyorsanız,değer 1 den kucuk demektir’;

}

//İstisna yakala

catch(Exception $e)

{

echo ‘Message: ‘ .$e->getMessage();

}

?>

Kod aşağıdaki gibi bir hata mesajı yayınlayacaktır:

Message: Değer 1 veya daha az olmalıdır

Örnek Açıklaması:

Yukardaki kod, istisya fırlatır ve yakalar;
1. checkNum() fonksiyonu yaratıldı. Fonksiyon değerin 1 den büyük yada küçük olduğunu denetler.Ve istisna fırlatılır.
2. checkNum() fonksiyonu try bloğunda çağırıldı.
3. checkNum() daki istisna fırlatıldı
4. “catch” bloğu istisnayı ele alır ve istisna bilgilerini içeren $e nesnesini yaratır.
5. İstisna nesnesi tarafından getMessage() fonksiyonu ile hata mesajı yayınlanır.

Custom Exception(İstisna) Sınıfları Oluşturmak

Özel istisna sınıfları oluşturmak son derece basittir. PHP de oluşacak hataları yönetmek için fonksiyonlar içeren sınıf oluşturuyoruz.

Özel istista sınıfımız PHP istisna yönetim sınıfından kalıtılır,ve tüm özelliklerini kullanabilir.Ayrıca kendimize göre de fonksiyon ekleyebiliriz.

İstisna sınıfı oluşturalım:

<?php

class customException extends Exception

{

public function errorMessage()

{

//Hata mesajı

$errorMsg = ‘Error on line ‘.$this->getLine().’ in ‘.$this->getFile()

.’: <b>’.$this->getMessage().'</b>geçersiz e-mail adresi’;

return $errorMsg;

}

}

$email = “[email protected]”;

try

{

//denetle

if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

{

//email adresi geçersiz ise istisna fırlat

throw new customException($email);

}

}

catch (customException $e)

{

//özel mesajı yayınla

echo $e->errorMessage();

}

?>

Örneğimizi Açıklayalım;

Yukardaki kod örneğimiz özel bir istisna sınıfı ile , istista fırlatır ve yakalar.
1. customException() sınıfı PHP öntanımlı “Exception” sınıfından kalıtılmış bir istisna sınıfıdır.
2.errorMessage() function oluşturulur.e-mail adresi yanlış ise bir hata mesajı döndürür.
3.$email string yapısında tanımlanan geçerli bir email adresini tutar.
4.“try” blogu çalıştırılı ve e-mail adresi geçersiz ise istisna gönderilir.
5. “catch” bloğu istista yöntemini yakalar ve hata mesajını yayınlar.

Çoklu İstisnalar

Birden fazla istisnaları yönetmek ve uygulamak PHP script I için mümkündür.

Birkaç if..else bloğu ve switch kullanarak çoklu istisnaları uygulayabiliriz.Bu istisnalar, farklı istisna sınıflarını kullanabilir ve farklı hata mesajları yayınlayabilirler:

<?php

class customException extends Exception

{

public function errorMessage()

{

//hata mesajı

$errorMsg = ‘Error on line ‘.$this->getLine().’ in ‘.$this->getFile()

.’: <b>’.$this->getMessage().'</b> geçersiz e-mail adresi’;

return $errorMsg;

}

}

$email = “[email protected]”;

try

{

//denetle

if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE)

{

// email adresi yanlış ise istisna gönder

throw new customException($email);

}

// “birisi” ni mail adresinde arar

if(strpos($email, “örnek”) !== FALSE)

{

throw new Exception(“$email örnek bir mail adresidir”);

}

}

catch (customException $e)

{

echo $e->errorMessage();

}

catch(Exception $e)

{

echo $e->getMessage();

}

?>

Örneği Açıklayalım:

Yukardaki kod iki durumda ve iki istisna fırlatma işlemini yorumlar ve denetler;

customException() sınıfı PHP Exception sınıfndan kalıtılır.Kalıtılan Exception sınıfın bütün methodlarını ve özelliklerini kullanabilir.(Class Konusunda daha detaylı işleyeceğiz)

errorMessage() oluşturuldu .Verilen email adresinin yanlış olması durumunda bu fonksiyon hata mesaını yayınlar.
$email değişkeni String tabanlıdır ve “birisi” stringini tutar.
“try” bloğu çalıştırılır ve ilk durumda istisna fırlatılmaz.
İkinci koşulda “birisi” Stringini gördüğü anda istisnayı tetikler.
“catch” bloğu istisnayı yakalar ve hata mesajını doğrular.customException yakalanmaz ise , sadece basit istisna yakalanır ve catch bloğunda tutulur.

Exceptions(İstisna) nın Tekrar Fırlatılması

Bazı durumlarda , bir istisna fırlatıldığında ,normal olan yoldan farklı bir şekilde istisnayı tutmanı gerekebilir. Böyle durumlarda bir “catch” bloğuyla ikinci tekrarda istisna fırlatabilirsiniz .

Script sistem hatalarını kullanıcıdan saklayabilir.Bu hatalar kullanıcıyı ilgilendirmez ama programcı için çok önemlidir.Bu durumu kolaylaştırmak için bir kullanıcıya tekrar istisna fırlatarak samimi bir mesajla kullanıcıya gösterebilirsiniz:

<?php

class customException extends Exception

{

public function errorMessage()

{

//hata mesajı

$errorMsg = $this->getMessage().’ is not a valid E-Mail address.’;

return $errorMsg;

}

}

$email = “[email protected]”;

try

{

try

{

// “birisi” ni mail adresinde denetle

if(strpos($email, “example”) !== FALSE)

{

//mail geçersiz ise istisna fırlat

throw new Exception($email);

}

}

catch(Exception $e)

{

//tekrar fırlat

throw new customException($email);

}

}

catch (customException $e)

{

//özel mesajı yayınla

echo $e->errorMessage();

}

?>

Örneği Açıklayalım:

Yukardaki kod email adresinin “birisi ” stringini içerip içermediğini denetler ,içeriyor ise istisna tekrar gönderilir:
1. customException() sınıfı PHP Exception sınıfndan kalıtılır.Kalıtılan Exception sınıfın bütün methodlarını ve özelliklerini kullanabilir
2.errorMessage() oluşturuldu .Verilen email adresinin yanlış olması durumunda bu fonksiyon hata mesaını yayınlar.
3. $email değişkeni String tabanlıdır ve “birisi” stringini tutar.
4. “try” bloğu içindeki birbaşka try bloğu koşulu denetler ve tekrar istisna gönderir
5.E-mail içeriğinde “birisi” stringi bulunduğunda istisna tetiklenir
6. “catch” bloğuistisnayı yakalar ve tekrar bir “customException” gönderir
7. “customException” yakalanır ve hata mesajı yayınlar

İstisna yakalanamazsa , try bloğunun dışına çıkar ve üst blokta aramaya başlar.

Üst Seviye İstisna Yakalayıcı Tasarlamak

set_error_handler() fonksiyonu ile kullanıcı tanımlı fonksiyonları kullanarak yakalanamayan istisnaları yakalar.

<?php

function myException($exception)

{

echo “<b>Exception:</b> ” , $exception->getMessage();

}

set_exception_handler(‘myException’);

throw new Exception(‘Yakalanamayan İstisna oluştu);

?>

Yukarıdaki kodun çıktısı şu şekilde görülür:

Exception: Yakalanamayan İstisna oluştu

İstisna Kuralları
• İstisnalar açısından yakalanabilirliği kolaylaştırmak için try bloğunun içinde olabilir.
•Her try yada “throw” bloğu en az bir adet catch bloğuyla ilişkilendirilmeli
•Birden fazla catch bloğu farklı istisna sınıflarını yakalamak için kullanılabilir.
•İstisnalar try bloğunun içinde bulunan catch bloğuna fırlatılabilir.

Basit bir kural: Bişey fırlatıyorsanız , onu yakalamalısınız.

PHP – Filtreler

 

PHP filtresi , kullanıcı girdileri gibi güvensiz kaynaklardan alınan verileri filtreleme işlemini gerçekleştirir.

PHP Filtre Nedir?

Güven vermeyen kaynaklardan alınan verileri filtreleme yapmamız gerekir.

Verileri doğrulama, test etme ve filtreleme tüm web uygulamalar için escort ankara
önemli bir aşamadır.

Php filter özelliği , kolay kullanıma sahip bir şekilde diyazn edilmiştir.

Neden Filtre Yapmalıyız?

Çoğunlukla tüm web uygulamaları harici veri girişleri üzerine işlem yapmaktadır.Genellikle kullanıcıdan yada başka bir ankara escort bayan
uygulamadan alınan veriler kullanılır. Filtreleme yaparak projelerimize güvenilir ve doğru bir veri giriği sağlarız.

Dışardan alınan tüm verileri filtreleme yapmanız tavsiyemdir!!

İnput filtreleme web uygulamaları için en önemli güvenlik aşamasıdır.

Harici Veri Ne Demektir?
•Formdan alınan veriler
•Çerezler(Cookies)
•Web Servis Verileri
•Sunucu Değişkenleri
•Veritabanı sorgu sonuçları

Fonksiyon ve Filtreler

Bir değişkeni filtrelemek için aşağıdaki filter fonksiyonlar ankara escort
kullanılır:
•filter_var() – özel bir filter ile bir değişkeni filtreler
•filter_var_array() – Birden fazla veriyi , aynı veya farklı filtreler ile filtreler
•filter_input – Bir girilen veriyi alır ve filtreler
•filter_input_array – Birden fazla girdileri alır , aynı veya farklı filtreler ile filtreler

Aşağıdaki örnekte, integer sayıyı filter_var() fonksiyonu ile filtreliyoruz,bakalım;

<?php

$int = 123;

if(!filter_var($int, FILTER_VALIDATE_INT))

{

echo(“integer geçersiz”);

}

else

{

echo(“integer geçerli”);

}

?>

Yukardaki kod, “FILTER_VALIDATE_INT” özelliğini kullanarak değişkeni filtreler.İnteger sayının geçerli olduğunu belirttikten sonra , ekrana “integer geçerli” yazdırır.

Eğer integer değişkenimiz yerine “123abn” gibi bir değer deneseydik, ekran çıktımız, “integer geçersiz” yazılacaktı.

Doğrulama ve Sterilize Etme

İki filter türü vardır;

Filtre Doğrulama:
•Kullanıcı girdilerini doğrulamak için kullanılır
•Katı format format kuralları (URL yada E-Mail değerleri gibi)
•Başarı halinda beklenen durum döner, aksi takdirde FALSE değeri döndürür.

Filtreleri Siterilize Etme
•string içinde izin verilen veya izinsiz karakterleri ayırır
•Veri format kuralı yok
•Herzaman string döndürür

Seçenekler ve Flag
•Seçenekler ve Flaglar filtrelere eklenerek özelleştirir.
•Farkli filtreler farklı seçeneklere ve flaglara sahiptir.

Aşağıdaki örneğimizde , bir integer(tamsayı) değerini fiter_var() fonksiyonu min_range ve max_range secenekleri ile doğrulayalım:

<?php$var=300;

$int_options = array(

“options”=>array

(

“min_range”=>0,

“max_range”=>256

)

);

if(!filter_var($var, FILTER_VALIDATE_INT, $int_options))

{

echo(“Integer geçersiz”);

}

else

{

echo(“Integer geçerli”);

}

?>

Yukarda tasarladığımız kod örneğinde options dizisi ile ilişkili seçenekleri kullandık.Seçenek değil de sadece bir flag kullanıyor ise dizi kullanmamıza gerek yoktur.

integer değeri “300” , bu değer verilen özelliklere(min_range , max_range) uymadığı için “integer geçersiz” çıktısını göreceğiz.

Input(girdi) Doğrulama

Tasarladığımız formdan alına verileri doğrulayalım.Öncelikle girilen verilerde aradığımız veri özelliklerini arayıp ve onaylamamız gerekir.

Daha sonra , verileri filter_input() fonksiyonu ile filtreleyim.

Aşağıdaki örnekte, input verisi olan “mail” stringi PHP dosyasına gönderiliyor; şöyleki:

<?phpif(!filter_has_var(INPUT_GET, “email”))

{

echo(“Girilen veri türü yanlış”);

}

else

{

if (!filter_input(INPUT_GET, “email”, FILTER_VALIDATE_EMAIL))

{

echo “E-Mail geçersiz”;

}

else

{

echo “E-Mail geçerli”;

}

}

?>

Örneği Açıklayalım;

Örneğimizde bir “email” değişkenini GET metodu kullanarak gönderiyor.
•“email” girdi verisi “GET” metoduyla tanımlanan verü türüne uyuyor mu kontrol ediyor.
•İnput değişkeni uyuyorsa, email adresinin doğruluğunu kontrol ediyor.

Input Sterilize

Formdan gelen URL adresini sadeleştirelim.

Önce aranılan verinin bulunduğunu kontrol ediyoruz;

Girilen veriyi filter_input() fonksiyonu ile sterilize ediyoruz.

Örneğimizde , “url” verisi PHP sayfasına gönderiliyor:

<?phpif(!filter_has_var(INPUT_POST, “url”))

{

echo(“Girilen veri türü yanlış”);

}

else

{

$url = filter_input(INPUT_POST,

“url”, FILTER_SANITIZE_URL);

}

?>

Örneği Açıklayalım;

“POST” metoduyla , alınan verimizi sayfaya gönderiyoruz.:
•girdi verisinin varlığını kontrol ediyoruz.
•veri bulundu ise,URL değerinin siterilize ediyoruz, URL standartlarına uymayan karakterleri temizleyerek URL değerini gönderiyoruz.

“http://www.serpito.com/” şeklinde bir “url” değeri sterilize edildikten sonra , şu şekilde kayıt edilir:

http://www.serpito.com/

Çok Girdileri Filtreleme

Formlar çoğunlukla birden fazla veri alan input alanları kullanılır. filter_var() veya filter_input() fonksiyonlarını her input alanında tekrar tekrar kullanmanın anlamı yoktur.

Bu örneğimizde filter_input_array() fonksiyonu ile çok input değerlerinini filtreleyelim:

<?php$filters = array

(

“name” => array

(

“filter”=>FILTER_SANITIZE_STRING

),

“age” => array

(

“filter”=>FILTER_VALIDATE_INT,

“options”=>array

(

“min_range”=>1,

“max_range”=>120

)

),

“email”=> FILTER_VALIDATE_EMAIL,

);

$result = filter_input_array(INPUT_GET, $filters);

if (!$result[“age”])

{

echo(“Yaş değeri 1 ve 120 arasında olmalı.<br />”);

}

elseif(!$result[“email”])

{

echo(“E-Mail geçersiz.<br />”);

}

else

{

echo(“Kullanıcı girdisi geçerli”);

}

?>

Örneği Açıklayalım;

Yukarıdaki örneğimizde 3 input bölümü(name , age, email) buluyor ve bu girdiler GET metoduyla gönderiliyor;
• özelleştirilecek olan input değişkenleri içeren bir dizi oluşturuyoruz.
• filter_input_array() fonksiyonu çağrılıyor,
•“age” ve “email” değişkenleri $result kümesinde içerikleri kontrol edilir. filter_input_array() fonksiyonu çağrılır ve filtreleme gerçekleşir.

filter_input_array() fonksiyonun ikinci parametresi bir dizi veya tekil bir filter ID’e sahip olabilir.

Filtre Geri Çağırma

Programcı tarafından tanımlanan bir fonksiyonu FILTER_CALLBACK filtresi ile yeniden filtreleme yapabiliriz.

Şimdi kendi fonksiyonumuzu tanımlayalım ve varolan PHP fonksiyonu içinde kullanalım.

Aşağıdaki örneğimizde , tanımlanan fonksiyonu yeniden filtreleyerek “_” karakteri ile isimlendiriyoruz:

<?phpfunction convertSpace($string)

{

return str_replace(“_”, ” “, $string);

}

$string = “Serpito_çok_yakışıklı_biri!”;

echo filter_var($string, FILTER_CALLBACK,

array(“options”=>”convertSpace”));

?>

Kodumuzun ekran çıktısı şu şekilde olur:

Serpito çok yakışıklı biri!

Örneğimizi Açıklayalım:

Örneğmiz tüm “_” karakterlerini space’e (yani boşluk) dönüştürüyor .
•Dönüşüm için bir fonksiyon tasarla
•filter_var() fonksiyonunu FILTER_CALLBACK filtresi ile birlikte dizi işleminde kullanılıyor.

PHP – Güvenli Email

 

Önceki dersimizde güvenlik düşünülmeden hazirlanmış email gönderme formunu açıkladık.İnternet ne kadar verimli ve yararlı bir platform olsa da güvenlik düşünülmesi gereken en önemli konulardan biridir

E-mail Sızmalarıİlk olarak bir önceki dersimizde uyguladığımız e-mail formunu tekrar ele alalım:

<html>

<body>

<?php

if (isset($_REQUEST[’email’]))

{

//send email

$email = $_REQUEST[’email’] ;

$subject = $_REQUEST[‘subject’] ;

$message = $_REQUEST[‘message’] ;

mail(“[email protected]”, “Subject: $subject”,

$message, “From: $email” );

echo “Email formumuzu kullandığınız için teşekkürler”;

}

else

//if “email” is not filled out, display the form

{

echo “<form method=’post’ action=’mailform.php’>

Email: <input name=’email’ type=’text’ /><br />

Konu: <input name=’subject’ type=’text’ /><br />

Mesaj:<br />

<textarea name=’message’ rows=’15’ cols=’40’>

</textarea><br />

<input type=’submit’ />

</form>”;

}

?>

</body>

</html>

Yukarıdaki kodumuzun sorunu,yetkilendirilmemil kullanıcıların ,mail başlıklarına fazla,zaman zaman da zararlı olan verilerin girmelerini engellememekti.

Aşağıdaki textin e-mail input bölümüne girildiğini düşünelim,, sonuç ne olacak sizce?

[email protected]%0ACc:[email protected]

%0ABcc:[email protected],[email protected],

[email protected],[email protected]

%0ABTo:[email protected]

mail() fonksiyonu yukardaki texti normal bir veri olarak işleme koyacaktır. Kullanıcı submit butonuna bastığı anda yukarda yazan tüm adreslere mail gönderilecektir!

E-mail Sızmalarını DurduralımE-mail sızmalarını engellemenin en iyi yolu input onaylama yapmaktır.Aşağıdaki kod örneğimiz ,önceki örneğimiz ile aynı yapıya sahiptir,fakat bu örneğimizde input-girdi alanlarımızı onaylayıcı kodlar ekledik:

<html>

<body>

<?php

function spamcheck($field)

{

if(eregi(“to:”,$field) || eregi(“cc:”,$field))

{

return TRUE;

}

else

{

return FALSE;

}

}

// “email” alanı doldurulmuş ise ,gönder

if (isset($_REQUEST[’email’]))

{

//e-mail adresinin doğruluğunu kontrol et

$mailcheck = spamcheck($_REQUEST[’email’]);

if ($mailcheck==TRUE)

{

echo “Geçersiz girdi”;

}

else

{

// email gönder

$email = $_REQUEST[’email’] ;

$subject = $_REQUEST[‘subject’] ;

$message = $_REQUEST[‘message’] ;

mail(“[email protected]”, “Subject: $subject”,

$message, “From: $email” );

echo “Formumuzu kullandığınız için teşekkürler”;

}

}

else

//”email” alanımız doldurulmamış ise formu yeniden yükle

{

echo “<form method=’post’ action=’mailform.php’>

Email: <input name=’email’ type=’text’ /><br />

Konu: <input name=’subject’ type=’text’ /><br />

Mesaj:<br />

<textarea name=’message’ rows=’15’ cols=’40’>

</textarea><br />

<input type=’submit’ />

</form>”;

}

?>

</body>

</html>

PHP- Email

 

PHP yazacağımız yardımıyla direct olarak e-mail gönderebilir

mail() Fonksiyonu

mail() fonksiyonu yazılan kod içinde e-mail gonderen bir fonksiyondur.

Syntax
mail(to,subject,message,headers,parameters)

Parametre Tanımı
to Gereklidir. E-mailin hangi adres veya adreslere ulaşacağını belirtmelisiniz
subject Gereklidir. Gönderilen mesajın konusunu ele tutan değişkendir. Not: Bu satırda yeni satır “\n” karakterleri içeremez.
message Gereklidir. Gönderilecek mesajı tutan değişkendir.her satır(\n) karakterleriyle satır atlamalıdır. Toplam mesaj büyüklüğü 70 karakteri geçmemelidir.
headers Opsiyonel.Diger ek basliklar hakkındaki bilgileri tutan değişkendir, From, Cc, ve Bcc gibi. Ek başlıklar CRLF (\r\n) karakterleriyle birbirinden ayrılmalıdır.
parameters Opsiyonel. Özel ve ek olarak programa parametre gönderir.

Not: mail fonksiyonunun çalışması ve erişilebilir olması için sistemde yüklü olan PHP nin mail ayarı ve seçeneği izin verilmiş olmalıdır. “php.ini” ayar dosyasında gerekli düzenlemelerin yapılmış olması gerekir.

Basit Bir E-Mail İşlemi
E-mail göndermenin en basit yolu text mail yollamaktır.Aşağıdaki örnekte; öncelikle değişkenleri($to, $subject, $message, $from, $headers ) tanımlıyoruz, ardından mail göndermek için tanımlanan değişkenleri kullanıyoruz;

<?php

$to = “[email protected]”;

$subject = “Test mail”;

$message = “Merhaba! Bu basit bir deneme mailidir.”;

$from = “[email protected]”;

$headers = “Kimden: $from”;

mail($to,$subject,$message,$headers);

echo “Mail Gönderildi.”;

?>

Mail Form
PHP kullanarak, web sitenize bir iletişim formu oluşturabilirsiniz. Aşağıdaki örnekten formda yazılan mail ,belirli bir e-mail adresine gönderiliyor:

<html><body>

<?php

if (isset($_REQUEST[’email’]))

{

//email gönder

$email = $_REQUEST[’email’] ;

$subject = $_REQUEST[‘subject’] ;

$message = $_REQUEST[‘message’] ;

mail( “[email protected]”, “Subject: $subject”,

$message, “From: $email” );

echo “Mail formumuzu kullandığınız için teşekkür ederiz”;

}

else

{

echo “<form method=’post’ action=’mailform.php’>

Email: <input name=’email’ type=’text’ /><br />

Subject: <input name=’subject’ type=’text’ /><br />

Message:<br />

<textarea name=’message’ rows=’15’ cols=’40’>

</textarea><br />

<input type=’submit’ />

</form>”;

}

?>

</body>

</html>

Örneğimizi aşama aşama inceleyelim;
•İlk olarak, email girdi bölümünün dolu olduğunu kontrol et
•Doldurulmamış ise ( sayfa ilk defa açılıyor gibi sıfırdan formu göster)
• Mesaj girdileri doldurulduktan sonra;formdan e-maili gönder
•Girdiler dolu ise ,sayfa yeniden yüklenir,e-mail formu yeniden sıfırlanır,ve maili gönderir

PHP – Sessions

PHP dilinde Session , bir kullanıcı için ayar değişiklikleri ve hakkındaki bilgileri , almak ve özelleştirmek için kullanılır.Session değişkenleri ,sadece tek kullanıcı hakkında veri tutar ve işlem yapabilir ayrıca bütün sayfalar dahilinde tek kullanıcı hakkında uygulama yapar.

PHP Session Değişkenleri

Bir proje üzerinde çalışırken , proje açarsınız, bazı gerekli değişiklikleri yaparsınız ve sonrasında uygulamayı kapatırsınız.PHP’ de Session da aynı bu şekildedir.Bilgisayar sizin kim oldugunuzu bilir,ve uygulamalarınıza ne zaman başladığınızı ve sona erdirdiğinizi takip eder.Ama internet üzerinde bu konuda bir sorun meydana gelir; Web sunucusu sizi ve neler yaptığınızı tanıyamaz, çünkü HTTP adresi bu durumu sağlayamaz.

PHP Session , server üzerinde yapılan son uygulamayı,bilgileri(Örn; kullancı adi, alışveriş bilgileri…) yerleştirerek bu sorunu ortadan kaldırır.

Session bilgileri kullanıcı siteden ayrıldıktan sonra silinir.Eğer sürekli bir takip isterseniz veritabanına verileri kaydetmeniz mümkündür.

Session her ziyaretçi için bir id(UID) numarası atar ve bütün bilgileri bu id e göre yerleştirir.UID numarası aynı zamanda çerezlere de kaydedilir veya URL’ e yerleştirilir.

Session BaşlatmakSession bilgilerini kaydetmeden önce, Session başlatmak gerekir.Not: session_start() fonksiyonu <html> tagından önce yazılmalıdır:

<?php session_start(); ?>

<html>

<body>

</body>

</html>

Yukarda yazılan kod kullanıcıya ait bir Session açar ve kullanıcı hakkındaki bilgileri önceki konumuzda anlattığımız gibi UID numaralarına göre kaydetmeye başlar.

Session Değişkenini Yerleştirmek$_SESSION değişkenini yerleştirmenin ve düzenleme yapmanın yolu örneğimizdedir, buyrun bakalım hemen;

<?php session_start();

//session verilerini yerlestir

$_SESSION[‘views’]=1;

?>

<html>

<body>

<?php

// session verilerini duzenle

echo “Sayfa gösterimi=”. $_SESSION[‘views’];

?>

</body>

</html>

Çıktı:

Sayfa gösterimi=1

Yukardaki örnekte , basit bir sayfa gösterim sayacı tasarladık. isset() fonksiyonu ile “views” değişkeninin kaydedildiğini kontrol edelim. “views” değişkeni yapılandırıldıysa ,sayacımızı arttırabiliriz. Eğer değişkenimiz yoksa,”views” adıyla yeniden yapılandırıyoruz ve değerini 1 olarak atıyoruz:

<?php

session_start();

if(isset($_SESSION[‘views’]))

$_SESSION[‘views’]=$_SESSION[‘views’]+1;

else

$_SESSION[‘views’]=1;

echo “Gösterim=”. $_SESSION[‘views’];

?>

Session YoketmekSession’ımızı yoketmek veya sona erdirmek için unset() yada session_destroy() fonksiyonlarını kullanacağız.Session dahilinde oluşan belirli bir değişkeni silmek için unset() fonksiyonunu kullanıyoruz;

<?php

unset($_SESSION[‘views’]);

?>

Session’a ait tüm verileri yoketmek için session_destroy() fonksiyonunu kullanıyoruz:

<?phpsession_destroy();?>

Not: session_destroy() tüm session u sıfırlar ,böylece kaydedilen tüm veriler yokolur.

PHP – Çerezler

 

php cookiesCookie – Türkçesi ile çerez , kullanıcıyı ayırt etmeye yarar.

Cookie-Çerez Nedir?

Cookie kullanıcıyı ayırt etmenin en sağlam yoludur. Cookie, sunucu makinanın kullanıcı bilgisayarına yerleştirdiği küçük boyutta dosyalardır.Tarayıcının bir sayfayı açtığı her tekrar da sunucu çerezlerini tekrar gönderir. PHP ile , çerez değerlerini hem oluşturur hem de düzenleyebilirsiniz.

Cookie-Çerez Nasıl Oluşturulur? Çerez oluşturmanin işlevi setcookie()’ dir.

Not: setcookie() fonksiyonu <html> tagından önce yazılmalıdır.

Syntax

setcookie(isim, deger, suresi, dosya_yolu, domain);

Örnek:

Aşağıdaki örnekte,user isminde Ali Parlak imzasıyla bir çerez oluşturacağız.Aynı zamanda çerezimize 1 saat geçerlilik süresi -ömür verelim:

<?php

setcookie(“user”, “Ali Parlak”, time()+3600);

?>

<html>

<body>

</body>

</html>

Not: Çerez değeri gönderildiğinde , otomatik olarak URLencode edilir ,ve çerez ulaştığında yine otomatik olarak decode edilir. (URLencoding işlemini engellemek için , setrawcookie() işlevi kullanılabilir).

Dipnot: Encode – Kodlamak, decode – kodu çözmek

Çerez Değerleri Nasıl Düzenlenir?$_COOKIE değişkeni çerez değerlerini düzenleyebilir.
Aşağıdaki örneğimizde , “user” adlı çerezi düzenleyerek sayfaya yazdıran bir kod yazalım;

<?php

//çerezi yazdir

echo $_COOKIE[“user”];

// Butun çerezleri gormenin yolu

print_r($_COOKIE);

?>

Sıradaki örnekte , çerez gönderilip gönderilmediğini kontrol eden isset() fonksiyonunu yakından inceleyelim;

<html>

<body>

<?php

if (isset($_COOKIE[“user”]))

echo “Hosgeldiniz ” . $_COOKIE[“user”] . “!<br />”;

else

echo “Hosgeldin Misafir!<br />”;

?>

</body>

</html>

Çerez Nasıl Silinir?Çerez silerken kesinlikle çerezin geçerlilik süresi geçmiş olmalı.

Örnek silme işlemi:

<?php

// 1 saat oncesine geçerlilik süresi biten çerezler

setcookie(“user”, “”, time()-3600);

?>

Ya Tarayıcı Çerezleri Desteklemiyorsa?Tarayıcı uygulamalarınız , kullanılan tarayıcı ile uyumlu değilse ,sayfalar arası bilgi aktarım formları kullanmalısınız.Form konularından hatırlayacağınız gibi kullanıcı girdileri form ile kayıt altına alınabilir. Aşağıdaki form örneğinde kullanıcı Submit butonuna bastigin anda “welcome.php” dosyasına gönderilen veriler değişkenler tarafından tutulur.

<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>

“welcome.php” dosyasındaki kullanıcı bilgilerini düzenleyelim;

<html>

<body>

Merhaba <?php echo $_POST[“name”]; ?>.<br />

<?php echo $_POST[“age”]; ?> yaşındasın

</body>

</html>