Forum Yorum  

Geri git   Forum Yorum >
(¯`·.(¯`·.Mulltimedia-Grafik.·´¯).·´¯)
> Webmaster > HTML-PHP-ASP-JAVA
Google
 
Kayıt ol Yardım Konularım Cevaplarım Ajanda Arama Bugünki Mesajlar Forumları Okundu Kabul Et

             
PHP Dersleri (Temel)
Görüntülemeler : 121 / Konudaki Cevap Sayısı : 19
Şu an bu konuyu görüntüleyen kullanıcı sayısı ( Kayıtlı üye ve Misafir)

Yeni Konu aç Cevapla
 
Seçenekler Stil
Alt 19-07-2008   #11
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

PHP - $_GET Metodu


$_GET Değişkeni
$_GET değişken get methoduyla veri alan formlardaki verileri ele alır, HTTP GET metodunun değişkenler dizisinin bir elemanıdır
Bir formdan gönderilen bilginin her kullanıcı tarafından erişilebilmesi için GET metodu kullanılır (Tarayıcınızın adres çubuğunda görülür) Gönderilen bilgi miktarının bir limiti vardır (max 100 karakter gibi)
Örnek
Kod:
<form action=”welcomephp” method=”get”>İsmi: <input name=”name” ******”text” />Yaş: <input name=”age” ******”text” /><input ******”submit” /></form>
Kullanıcı “Submit” butonuna bastığı anda , adres çubuğundaki URL şu şekilde görülür
Kod:
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak İçin Tıklayın...]
“welcomephp” dosyası $_GET değişkenini yakalar ve verileri işleme koyar:
Kod:
Merhaba <?php echo $_GET[”name”]; ?><?php echo $_GET[”age”]; ?> yaşındasın!
Neden $_GET kullanılır?
Not: $_GET değişkenini kullandığımızda bütün değişken isimleri ve değerleri URL de görüntülenirYani sifre işlemleri ve özel veri aktarımı için bu method güvenli değildir!

Not: The HTTP GET metod uzun ve büyük veriler için uygun değildirMaximum karakter sayısı 100 olması gerekir
$_REQUEST Değişkeni

$_REQUEST değişkeni $_GET, $_POST, and $_COOKIE değişkenlerinin bütün içeriğine sahiptir
$_REQUEST değişkeni GET ve POST metodlarının ikisi ile de gönderilen verilerin sonuçlarına ulaşabilir
Örnek
Kod:
Merhaba <?php echo $_REQUEST[”name”]; ?><br /> <?php echo $_REQUEST[”age”]; ?> yaşındasın!

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #12
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

PHP - $_POST Metodu

Kod:
$_POST değişkeni post metoduyla çekilen verilerin ele alınmasını sağlar$_POST Değişkeni$_POST değişkeni HTTP POST metodunun değişken dizisinin bir elemanıdır$_POST değişkeni method=”post” metoduyla bir formdan gönderilen verileri toplar POST metoduyla gönderilen bilgilerin büyüklük sınırı yoktur ve kullanıcı tarafından görülemezlerÖrnek
Kod:
<form action=”welcomephp” method=”post”>İsminizi Girin: <input ******”text” name=”name” />Yaşınızı Girin: <input ******”text” name=”age” /><input ******”submit” /></form>
Kullanıcı “Submit” butonuna tıkladığı zaman, adres çubuğundaki URL girilen bilgileri göstermez ,şu şekildedir:

Kod:
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak İçin Tıklayın...]
“welcomephp” dosyası $_POST değişkeninden alınan verileri yakalar ve çalıştırıldıktan sonra işleme koyar:

Kod:
Merhaba <?php echo $_POST[”name”]; ?><br /><?php echo $_POST[”age”]; ?> yaşındasın!
Neden $_POST kullanılır?
  • HTTP POST ile gönderilen bilgiler URL’de görülemezler
  • Değişkenlerin herhangi bir limiti yoktur
$_REQUEST Değişkeni
$_REQUEST değişkeni $_GET, $_POST, and $_COOKIE değişkenlerinin bütün içeriğine sahiptir
$_REQUEST değişkeni GET ve POST metodlarının ikisi ile de gönderilen verilerin sonuçlarına ulaşabilir
Örnek

Kod:
Merhaba <?php echo $_REQUEST[”name”]; ?><br /><?php echo $_REQUEST[”age”]; ?> yaşındasın!

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #13
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

PHP - Include


Server Side Includes-Sunucu Taraflı İçerik
Server işleme koymadan evvel herhangi bir dosyayı ,include() yada require() fonksiyonları ile PHP dosyanızıa include-içe aktarım edilebilir
Bu iki fonksiyon , fonksiyon oluşturma üst-başlık, alt-başlık ve nesne oluşturmak ve kullanma işlemlerini birçok sayfada içeriğin yeniden tanımlanmasına gerek kalmadan gerçekleştirebilir
Bu özellik programcı açısından zamandan çok büyük bir tasarruf sağlar Bunun anlamı projelerinizde standart bir üst-başlık ve menu dosyaları oluşturup kullanacağınız içerikte kullanmanız size büyük kolay sağlayacaktırÜst-başlık dosyanızı güncelleyeceğiniz zaman yanlızca dosyanın kendisinde değişikliğinizi yaparak ,include() ve require() fonksiyonları ile kullandığınız her yerde aynı değişiklik sağlanacaktırTabiki include ettiğiniz bütün içerikler de aynı şekilde kullanım kolaylığına sahiptir
include() Fonksiyonuinclude() fonksiyonu aktarım yapılan dosyanın bütün text içeriğini kopyalar ve içeriğine alır


Örnek 1
Farzedin ki “headerphp” adında standart bir üst-başlık dosyamız varBunu herhangi bir dosyamız içinde include ederek , şu şekilde kullanabiliriz:
Kod:
<html><body><?php include(”headerphp”); ?><h1>Sayfama hosgeldiniz</h1><p>Benim sitem bu işte…</p><br /><div style="z-index:3" class="smallfont" align="center"><!-- google_ad_section_start(weight=ignore) -->Search Engine Optimization by <a onclick="urchinTracker ('/outgoing/http_www_crawlability_com_vbseo_');" rel="nofollow" href="http://wwwcrawlabilitycom/vbseo/">vBSEO</a> 310<!-- google_ad_section_end --></div>
<script src="http://wwwgoogle-analyticscom/urchinjs" ******"text/javascript">
</script>
<script ******"text/javascript">
_uacct = "UA-2742989-1";
urchinTracker();
</script>
</body></html>
require() Fonksiyonu
require() fonksiyonu include() fonksiyonu ile tıpatıp aynıdır, sadece hata ayıklama ve hata bildirimde biraz farklılıkları vardır
include() fonksiyonun uyarı verdiği bir durumda require() fonksiyonu “fatal error” ölümcül hata verebilirFark ne olursa olsun,işlem istemci tarafından iptal edilir
include() fonksiyonu ile alınan ve oluşan bir hatalı kod görülünce Şu şekilde bir hata görülür;
PHP kodu:
Örnek 2
Şimdi ise , stantart bir menu dosyamızı oluşturalım ve diğer içeriklerimizin erişimini bu dosyada sağlayalım:
<html>
Kod:
<body><a href=”http://wwwkodadiwebcom/defaultphp”>Anasayfa</a> |<a href=”[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak İçin Tıklayın...] kodadiwebcom/aboutphp”>Hakkımızda</a> |<a href=”[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak İçin Tıklayın...] kodadiwebcom/contactphp”>İletişim</a>
“defaultphp”, “aboutphp”, ve “contactphp” dosyaları “menuphp” dosyasının include ile çekmesi gerekiyor “defaultphp” dosyamızı görelim :
Kod:
<?php include(”menuphp”); ?><h1>Sayfama hosgeldiniz</h1><p>içerik yazi,,ıvır zıvır…… </p></body></html>
Tarayıcımızda “defaultphp” dosyasının kaynak koduna bakacak olursak,Aşağıdaki gibi ifadelerle karşılaşağız:
Kod:
<html><body><a href=”defaultphp”>Anasayfa</a> |<a href=”aboutphp”> Hakkımızda</a> |<a href=”contactphp”> İletişim</a><h1>Anasayfama hoşgeldiniz</h1><p>Some text</p></body></html>
require() Fonksiyonu
require() fonksiyonu include() fonksiyonu ile tıpatıp aynıdır, sadece hata ayıklama ve hata bildirimde biraz farklılıkları vardır
include() fonksiyonun uyarı verdiği bir durumda require() fonksiyonu “fatal error” ölümcül hata verebilirFark ne olursa olsun,işlem istemci tarafından iptal edilir
include() fonksiyonu ile alınan ve oluşan bir hatalı kod görülünce Şu şekilde bir hata görülür;
PHP kodu:
Kod:
<html><body><?phpinclude(”wrongFilephp”);ec ho “Selamlar!”;?></body></html>
Hata Mesajı:
Kod:
Warning: include(wrongFilephp) [functioninclude]:failed to open stream:No such file or directory in C:\home\website\testphp on line 5Warning: include() [functioninclude]:Failed opening ‘wrongFilephp’ for inclusion(include_path=’;C:\php5\pear’)in C:\home\website\testphp on line 5Selamlar!
“echo” ifadesinin işlendiğine dikkat edin,bunun sebebi include() fonksiyonunun hata durumunda script uygulamasını durdurmamasıdırŞimdi aynı kodu require() fonksiyonu kullanarak işletelim;
PHP kodu:
Kod:
<html><body><?phprequire(”wrongFilephp”);ec ho “Selamlar!”;?></body></html>
Hata Mesajı
Kod:
Warning: require(wrongFilephp) [functionrequire]:failed to open stream:No such file or directory in C:\home\website\testphp on line 5Fatal error: require() [functionrequire]:Failed opening required ‘wrongFilephp’(include_path=’;C:\php5\pear ’ )in C:\home\website\testphp on line 5
require() fonksiyonu “echo” ifadesini işletmez,fatal error durumunda uygulamayı derhal sona erdirir
Uzun lafın kısası; geniş çaplı ve büyük projelerinizde include() fonksiyonu yerine require() fonksiyonunu kullanmanızı öneririm,bu şekilde gözden kaçan hataları daha rahat yakalamanız kolaylaşır,küçük hatalar ilerde baş ağrıtabilir

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #14
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

PHP - Upload PHP ile ,sunucuya dosya yüklemek mümkündür
Dosya-Yükle Formu oluşturma
Kullanıcılara dosya yükleme olanağı vermek kullanımı ve proje değerini attırıcı bir etkendir
Şimdi aşağıdaki dosya yükleme formuna göz gezdirelim:
Kod:
<html><body><form action=”upload_filephp” method=”post”enc******”multipart/form-data”><label for=”file”>Dosya Adı:</label><input ******”file” name=”file” id=”file” /><br /><input ******”submit” name=”submit” value=”Gönder” /></form></body></html>
Yukardaki formda dikkat edilecek noktaları belirleyelim:
  • <form> tagının attribute değerine bakacak olursak, enc******”multipart/form-data” form onay işleminde dosya upload işleminin belirteci olarak görev alır
  • <input> tagında ******”file” attribute değeri post metoduyla gönderilecek bir dosyanin varlığını gösterir Not: Kullanıcılara dosya yükleme izni vermek aslında büyük riskleri ortaya çıkarırSadece güvenilir kullanıcılara izni vermenizde büyük yarar var
Upload Scripti Oluşturmak“upload_filephp” dosyasında dosya aktarım için gerekli scriptleri oluşturduk,şimdi inceleyelim;
Kod:
<?phpif ($_FILES[”file”][”error”] > 0){echo “Hata: ” $_FILES[”file”][”error”] “<br />”;}else{echo “Yükle: ” $_FILES[”file”][”name”] “<br />”;echo “Tür: ” $_FILES[”file”][”type”] “<br />”;echo “Boyut: ” ($_FILES[”file”][”size”] / 1024) ” Kb<br />”;echo “Yükleme Yeri: ” $_FILES[”file”][”tmp_name”];}?>
PHP $_FILES değişkeni kullanarak,uzak bağlantı kurulan istemci bilgisayara dosya aktarımı sağlanabilir
Scriptlerde kullandığımız parametrelere bakalım:
  • $_FILES[”file”][”name”] - aktarılan dosyanın adı
  • $_FILES[”file”][”type”] - dosyanın türü(uzantısı)
  • $_FILES[”file”][”size”] - byte olarak dosyanın boyutu
  • $_FILES[”file”][”tmp_name”] - dosyanın server üzerinde yüklendiği temp klasörünün adı
  • $_FILES[”file”][”error”] - Dosya yükleme sonrası oluşam hata kodu
Dosya yüklemeni basit bir metodunu yazdık Güvenlik sebebiyle,daha fazla ayrıntı ve kısıtlamalar eklemenizi tavsiye ederim
Upload KısıtlamalarıBu script örneğimizde dosya yükleme işlemine bir kaç sınırlama daha getirdikKullanıcı yanlızca “gif” veya “jpeg” uzantılı dosyalar yükleyebilir ve yüklenecek dosya boyutu maximum 20 kb ile sınırladık:
Kod:
<?phpif ((($_FILES[”file”][”type”] == “image/gif”)|| ($_FILES[”file”][”type”] == “image/pjpeg”))&& ($_FILES[”file”][”size”] < 20000)){if ($_FILES[”file”][”error”] > 0){echo “Hata: ” $_FILES[”file”][”error”] “<br />”;}else{echo “Dosya Adi: ” $_FILES[”file”][”name”] “<br />”;echo “Dosya Tipi: ” $_FILES[”file”][”type”] “<br />”;echo “Boyut: ” ($_FILES[”file”][”size”] / 1024) ” Kb<br />”;echo “Saklandığı Yer: ” $_FILES[”file”][”tmp_name”];}}else{echo “Geçersiz Dosya file”;}?>
Yüklenen Dosyayı KaydetmekÖnceki örneklerimizde yüklenen dosyalarımızı sunucu üzerinde geçici bir klasörde sakladık

Geçici olarak kopyalanan dosya script sona erdiği anda kaybolurDosyamızı yerleştirmek için başka bir hedefe yönlendirmemiz gerekir;
Kod:
<?phpif (($_FILES[”file”][”type”] == “image/gif”)|| ($_FILES[”file”][”type”] == “image/pjpeg”)&& ($_FILES[”file”][”size”] < 20000)){if ($_FILES[”file”][”error”] > 0){echo “Hata Kodu: ” $_FILES[”file”][”error”] “<br />”;}else{echo “Dosya Adı: ” $_FILES[”file”][”name”] “<br />”;echo “Dosya Tipi: ” $_FILES[”file”][”type”] “<br />”;echo “Boyutu: ” ($_FILES[”file”][”size”] / 1024) ” Kb<br />”;echo “Geçici Dosya: ” $_FILES[”file”][”tmp_name”] “<br />”;if (file_exists(”upload/” $_FILES[”file”][”name”])){echo $_FILES[”file”][”name”] ” dosyası zaten yüklenmiş “;}else{move_uploaded_file($_FILES[”file”][”tmp_name”],“upload/” $_FILES[”file”][”name”]);echo “yerleştirildiği hedef: ” “upload/” $_FILES[”file”][”name”];}}}else{echo ” geçersiz dosya”;}?>
Yukarıdaki scriptimiz dosyanin önceden var olup olmadığını kontrol ederEğer yoksa dosyayı belirlenen hedefe kopyalar,
Not: Örneğimiz yüklenen dosyayı “upload” adında bir klasörde saklıyor

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #15
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

PHP - Çerezler
Cookie - 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ırTarayı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
Kod:
setcookie(isim, deger, suresi, dosya_yolu, domain);
Örnek:
Aşağıdaki örnekte,user isminde Ali Parlak imzasıyla bir çerez oluşturacağızAynı zamanda çerezimize 1 saat geçerlilik süresi -ömür verelim:
Kod:
<?phpsetcookie(”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;
Kod:
<?php//çerezi yazdirecho $_COOKIE[”user”];// Butun çerezleri gormenin yoluprint_r($_COOKIE);?>
Sıradaki örnekte , çerez gönderilip gönderilmediğini kontrol eden isset() fonksiyonunu yakından inceleyelim;
Kod:
<html><body><?phpif (isset($_COOKIE[”user”]))echo “Hosgeldiniz ” $_COOKIE[”user”] “!<br />”;elseecho “Hosgeldin Misafir!<br />”;?></body></html>
Çerez Nasıl Silinir?Çerez silerken kesinlikle çerezin geçerlilik süresi geçmiş olmalı

Örnek silme işlemi:
Kod:
<?php// 1 saat oncesine geçerlilik süresi biten çerezlersetcookie(”user”, “”, time()-3600);?>

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #16
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

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ırSession 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ızPHP’ de Session da aynı bu şekildedirBilgisayar sizin kim oldugunuzu bilir,ve uygulamalarınıza ne zaman başladığınızı ve sona erdirdiğinizi takip ederAma 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 silinirEğ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ştirirUID numarası aynı zamanda çerezlere de kaydedilir veya URL’ e yerleştirilir
Session BaşlatmakSession bilgilerini kaydetmeden önce, Session başlatmak gerekirNot: session_start() fonksiyonu <html> tagından önce yazılmalıdır:

Kod:
<?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;

Kod:
<?php session_start();
//session verilerini yerlestir
$_SESSION[’views’]=1;
?>
<html>
<body>
<?php
// session verilerini duzenle
echo “Sayfa gösterimi=” $_SESSION[’views’];
?>
</body>
</html>
Çıktı:
Kod:
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:

Kod:
<?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ğızSession dahilinde oluşan belirli bir değişkeni silmek için unset() fonksiyonunu kullanıyoruz;

Kod:
<?phpunset($_SESSION[’views’]);?>
Session’a ait tüm verileri yoketmek için session_destroy() fonksiyonunu kullanıyoruz:
Kod:
<?phpsession_destroy();?>
Not: session_destroy() tüm session u sıfırlar ,böylece kaydedilen tüm veriler yokolur

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #17
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

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
Kod:
Syntaxmail(to,subject,message,headers,parameters)
Kod:
ParametreTanımıtoGereklidir E-mailin hangi adres veya adreslere ulaşacağını belirtmelisinizsubjectGereklidir Gönderilen mesajın konusunu ele tutan değişkendir Not: Bu satırda yeni satır “\n” karakterleri içeremezmessageGereklidir Gönderilecek mesajı tutan değişkendirher satır(\n) karakterleriyle satır atlamalıdır Toplam mesaj büyüklüğü 70 karakteri geçmemelidirheadersOpsiyonelDiger 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ırparametersOpsiyonel Ö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 “phpini” 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ırAş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;
Kod:
<?php$to = “birisi@examplecom”;$subject = “Test mail”;$message = “Merhaba! Bu basit bir deneme mailidir”;$from = “atilla@serpitocom”;$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:
Kod:
<html><body><?phpif (isset($_REQUEST[’email’])){//email gönder$email = $_REQUEST[’email’] ;$subject = $_REQUEST[’subject’] ;$message = $_REQUEST[’message’] ;mail( “herhangibiri@examplecom”, “Subject: $subject”,$message, “From: $email” );echo “Mail formumuzu kullandığınız için teşekkür ederiz”;}else{echo “<form method=’post’ action=’mailformphp’>Email: <input name=’email’ ******’text’ /><br />Subject: <input name=’subject’ ******’text’ /><br />Message:<br /><textarea name=’message’ rows=’15′ cols=’40′></textarea><br /><input ******’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

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #18
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

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ırBuna 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ırAyrı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şurHata notu “Uncaught Exception” - “Yakalanamayan istisna” olarak görülür
Şimdi yakalanmayan bir istisna tasarlayalım;
Kod:
<?php//istisna fonksiyonu tanımlayalımfunction checkNum($number){if($number>1){throw new Exception(”Değer 1 veya birden az olmalı”);}return true;}//istisnayı tetiklecheckNum(2);?>
Yukarıdaki kodu çalıştırırsak , aşağıdaki gibi bir hata ile karşılaşırız:
Kod:
Fatal error: Uncaught exception ‘Exception’with message ‘ Değer 1 veya birden az olmalı ‘ in C:\webfolder\testphp:6Stack trace: #0 C:\webfolder\testphp(12):checkNum(28) #1 {main} thrown in C:\webfolder\testphp 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 blokturHer 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:
Kod:
<?php//istisna fonksiyonu oluşturalımfunction checkNum($number){if($number>1){throw new Exception(”Değer 1 veya daha az olmalıdır”);}return true;}// “try” bloğunda istisnayı tetikleyelimtry{checkNum(2);//istisna fırlatıldığında,bu kod çalışmayacaktırecho ‘Bunu görüyorsanız,değer 1 den kucuk demektir’;}//İstisna yakalacatch(Exception $e){echo ‘Message: ‘ $e->getMessage();}?>
Kod aşağıdaki gibi bir hata mesajı yayınlayacaktır:
Kod:
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 denetlerVe 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 kullanabilirAyrıca kendimize göre de fonksiyon ekleyebiliriz
İstisna sınıfı oluşturalım:
Kod:
<?phpclass 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 = “birisi@kodadiwebcom”;try{//denetleif(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){//email adresi geçersiz ise istisna fırlatthrow new customException($email);}}catch (customException $e){//özel mesajı yayınlaecho $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şturulure-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ç ifelse bloğu ve switch kullanarak çoklu istisnaları uygulayabilirizBu istisnalar, farklı istisna sınıflarını kullanabilir ve farklı hata mesajları yayınlayabilirler:
Kod:
<?phpclass 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 = “birisi@kodadiwebcom”;try{//denetleif(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){// email adresi yanlış ise istisna gönderthrow new customException($email);}// “birisi” ni mail adresinde ararif(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:
Kod:
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ırKalı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ğrularcustomException 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 saklayabilirBu hatalar kullanıcıyı ilgilendirmez ama programcı için çok önemlidirBu durumu kolaylaştırmak için bir kullanıcıya tekrar istisna fırlatarak samimi bir mesajla kullanıcıya gösterebilirsiniz:
Kod:
<?phpclass customException extends Exception{public function errorMessage(){//hata mesajı$errorMsg = $this->getMessage()’ is not a valid E-Mail address’;return $errorMsg;}}$email = “birisi@kodadiwebcom”;try{try{// “birisi” ni mail adresinde denetleif(strpos($email, “example”) !== FALSE){//mail geçersiz ise istisna fırlatthrow new Exception($email);}}catch(Exception $e){//tekrar fırlatthrow new customException($email);}}catch (customException $e){//özel mesajı yayınlaecho $e->errorMessage();}?>
Örneği Açıklayalım:
Kod:
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ırKalı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
Kod:
İ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
Kod:
<?phpfunction myException($exception){echo “<b>Exception:</b> ” , $exception->getMessage();}set_exception_handler(’myExceptio n’ );throw new Exception(’Yakalanamayan İstisna oluştu);?>
Yukarıdaki kodun çıktısı şu şekilde görülür:
Kod:
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

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 19-07-2008   #19
Profil Bilgileri
MİNİK
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

PHP - Filtreler
Kod:
PHP filtresi , kullanıcı girdileri gibi güvensiz kaynaklardan alınan verileri filtreleme işlemini gerçekleştirirPHP Filtre Nedir?Güven vermeyen kaynaklardan alınan verileri filtreleme yapmamız gerekirVerileri doğrulama, test etme ve filtreleme tüm web uygulamalar için önemli bir aşamadırPhp filter özelliği , kolay kullanıma sahip bir şekilde diyazn edilmiştirNeden Filtre Yapmalıyız?Çoğunlukla tüm web uygulamaları harici veri girişleri üzerine işlem yapmaktadırGenellikle kullanıcıdan yada başka bir uygulamadan alınan veriler kullanılır Filtreleme yaparak projelerimize güvenilir ve doğru bir veri giriği sağlarızDışardan alınan tüm verileri filtreleme yapmanız tavsiyemdir!! İnput filtreleme web uygulamaları için en önemli güvenlik aşamasıdırHarici Veri Ne Demektir?
  • Formdan alınan veriler
  • Çerezler(Cookies)
  • Web Servis Verileri
  • Sunucu Değişkenleri
  • Veritabanı sorgu sonuçları
Fonksiyon ve FiltrelerBir değişkeni filtrelemek için aşağıdaki filter fonksiyonlar 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;
Kod:
<?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:
Kod:
<?php$var=300;$int_options = array(“options”=>array(“min_range”=>0,“m ax_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ıkSeç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:
Kod:
<?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;
Kod:
Ö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:
Kod:
<?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;
Kod:
“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
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak İçin Tıklayın...] şeklinde bir “url” değeri sterilize edildikten sonra , şu şekilde kayıt edilir:
Kod:
[Üye Olmadan Linkleri Göremezsiniz. Üye Olmak İçin Tıklayın...]
Ç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:
Kod:
<?php$filters = array(“name” => array(“filter”=>FILTER_SANITIZE_STRING),“age ” => array(“filter”=>FILTER_VALIDATE_INT,“options ”=>arr ay(“min_range”=>1,“max_range”=>120)),“em ail”=> 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;
Kod:
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:
Kod:
<?phpfunction convertSpace($string){return str_replace(”_”, ” “, $string);}$string = “Doğan_çok_yakışıklı_biri!”;echo filter_var($string, FILTER_CALLBACK,array(”options”=>”convertSpa ce”)); ?>
Kodumuzun ekran çıktısı şu şekilde olur:
Kod:
Doğan çok yakışıklı biri!
Örneğimizi Açıklayalım:
Kod:
Ö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

 

www.Frmyorum.com
MİNİK isimli Üye şimdilik offline konumundadır  
Alt 01-09-2009   #20
Profil Bilgileri
baymanken07
Standart Cevap: PHP Dersleri (Temel)



PHP Dersleri (Temel)

paylaşım için tşkler

 

www.Frmyorum.com
baymanken07 isimli Üye şimdilik offline konumundadır  
Cevapla
Tags: , ,



Seçenekler
Stil

Gitmek istediğiniz klasörü seçiniz

Benzer Konular
Konu Konuyu Başlatan Forum Cevap Son Mesaj
Akide Dersleri... Arzu Dini Sohbet 0 06-05-2008 04:02
Temel Elektronik Dersleri MİNİK Elektronik Projeler 0 08-04-2008 08:12
PhotoShop Dersleri! DR.MATRİX Photoshop Eğitimi 4 21-02-2008 09:18
PHP Dersleri DR.MATRİX HTML-PHP-ASP-JAVA 0 20-02-2008 05:28
Temel Elektronik Dersleri DR.MATRİX Elektronik Projeler 0 02-02-2008 12:26

Bütün Zaman Ayarları WEZ -9 olarak düzenlenmiştir. şu Anki Saat: 06:13 .

Reklam Verin | Arşiv | Yudumla | Sitemap | Sitemap.html | Tags | Frmyorum| Sporcu ve ünlü resimleri| Albüm Dinle| İndir - Yükle - Şarkı|

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353