Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

İnternet Programlama - 2

Benzer bir sunumlar


... konulu sunumlar: "İnternet Programlama - 2"— Sunum transkripti:

1 İnternet Programlama - 2
PHP ve HTML

2 PHP ve HTML PHP scriptlerinin içine rahatlıkla HTML etiketlerini dahil edebiliriz. PHP bu açıdan çok kullanışlı bir dildir. Sadece HTML değil javaScript, XML, WML, veya başka bir görsel dil yazılabilir. Program satırlarını istersek HTML etiketlerinin içinde çok rahat kullanabiliriz.HTML veya diğer etiketleri PHP de kullanmak için iki yöntem vardır. Birincisi <?php ?> işaretlerinin dışına HTML etiketlerini yazabiliriz. İkincisi <?php ?> işaretlerinin içine HTML etiketlerini yazabiliriz.

3 PHP ve HTML İkinci yöntemde print veya echo fonksiyonlarından birisini kullanmak zorundayız. Aksi takdirde PHP bize hata yanıtı vererek programın akışını kesecektir. Birinci yöntemde bu zorunluluk yoktur. Çünkü PHP birinci yöntemde yani <?php ?> işaretlerinin dışındaki hiçbir şeyi yorumlamaz ve yazdıklarımızı aynen hiç değiştirmeden ekrana yazar ve hiçbir hata mesajı vermez.

4 PHP ve HTML <h1> Merhaba Dünya </h1> <?php echo"<h1> Merhaba Dünya </h1>\n"; ?>

5 PHP ve HTML <html><head><title>Merhaba Dünya programı</title></head> <body> <?php echo " Merhaba Dünya \n"; ?> </body></html>

6 PHP ve HTML <?php print "<html>\n"; print "<head>\n"; print "<title>Burası Başlıktır.</title>\n"; print "</head>\n"; print "<body>\n"; print "<h3> Merhaba Dünya </h3>\n"; print "</body>\n"; print "</html>\n"; ?>

7 PHP ve HTML Bu örneğimizde HTML Tag’leri her seferinde print fonksiyonu kullanılarak yazılması sağlanmıştır. Yukarıdaki örneğimizde her HTML Tag’ı print fonksiyonu kullanılarak yazıldığından bu zor bir yöntemdir. Az sayıda Tag yazmak için bu kullanışlı olabilir. Fakat eğer çok sayıda bu tür HTML Tag’ını PHP satırlarının içine yazacaksak o zaman alternatif bir yöntemimiz daha var.

8 PHP ve HTML <html> <head> <title> Çok sayıda yazı ve HTMLTag'ı </title> </head> <body> <h3> Çok sayıda yazı ve HTMLTag'ı </h3> <?php $str = <<<OHB Bu araya istenildiği kadar yazı yazılabilir ya da HTML Tag'ı yazılabilir. <h1>Çok sayıda yazı ve HTML Tag'ı</h1> OHB; echo ("$str"); ?> </body></html>

9 PHP ve HTML

10 PHP ve HTML Yukarıdaki örneğimizde OHB ile OHB; arasına istediğimiz kadar HTML Tag’ını yazmamız mümkündür. Bu yöntemi kullanmak için öncelikle <<<OHB tırnaklar birleşik ve hiç boşluk bırakılmadan OHB yazıyoruz. Burada OHB öylesine yazılmış anlamı olamayan fakat sadece bir belirteç olarak değerlendirilmeli. Bunların yerine istediğimiz bir kelimeyi de yazabiliriz bunu biz belirliyoruz. Yani bu TAMAM da olabilir. Önemli olan yazdığımızı en son satırda da yazmak ve sonrada noktalı virgül ile sonlandırmaktır. Örneğin TAMAM; gibi.

11 PHP ve HTML Yukarıdaki örneğimiz HTML Tag’lerini yazmakta bize son derece kolay bir yazım sağlamaktadır. Eğer istersek bu HTML Tag’lerinin arasına değişkenlerde yazılabilir. Bu metot bize bu kolaylığı da sağlamaktadır.

12 PHP ve HTML <?php $aciklama = " Merhaba Dünya"; echo <<<TAMAM <html><head><title> $aciklama </title></head> <body> <h3>$aciklama </h3> <h1>$aciklama </h1> </body></html> TAMAM; ?>

13 PHP ve HTML

14 PHP ve HTML Bu örneğimizde $aciklama=" Merhaba Dünya"; satırı HTML Tag’leri içinde ekrana yazılması sağlanmıştır. Bu yöntem daha çok Formlarla iş yaptığımızda ya da HTML sayfalarına değişken değerleri yazmada kullanabiliriz, kullanım alanı oldukça geniştir.

15 PHP ve HTML <html><head><title>PHP değişkenlerine giriş.</title></head><body> <!-Bu HTML içindeki açıklama satırıdır --> <?php $yaz=" Merhaba Dünya"; echo $yaz ; /* yukarıdaki $yaz değişkenin tuttuğu değer echo ile burada ekrana yazılacak. */ ?> </body></html>

16 PHP ve HTML Bu örneğimizde ilk defa $yaz diye bir satır oluşturduk. Bu PHP için bir değişken anlamına gelir. Bu değişkenin tuttuğu Merhaba Dünya değeri echo fonksiyonu ile ekrana yazdırılmıştır. Aşağıdaki örneğimiz de olduğu gibi çok farklı şekillerde PHP kodlarının arasına istediğimiz kadar HTML Tag’ını yazmamız mümkündür. Bu daha çok program kodlarını yazan kişinin inisiyatifindedir.

17 PHP ve HTML <html><head><title> PHP</title></head><body> <h3> PHP kodlarının dışındaki yazı 1</h3> <?php echo "Merhaba Dünya 1"; ?> <h3> PHP kodlarının dışındaki yazı 2</h3> echo "Merhaba Dünya 2"; ?> </body></html>

18 PHP ve HTML

19 PHP ve HTML <html> <head> <title> <?php echo "PHP Dersi"; ?> </title> </head> <body> <h1> <?php echo "PHP kodları yazı1"; ?></h1> <h2><?php echo "PHP kodlarının içindeki yazı2 "; ?></h2> <h3><?php echo "PHP kodlarının içindeki yazı3 "; ?></h3> </body></html>

20 PHP ve HTML

21 PHP ve HTML Bu son örneğimizden PHP kodlarının tamamen HTML Tag’lerinin içine dahil edilebileceğini rahatlıkla görebiliyoruz. Bu kodları browserde çağırırsak ekrana istediğimiz satırları yazdığını görebiliriz. Aynı şekilde browserde görüntülenen sayfanın kaynağını incelediğimizde yukarıdaki yazıların HTML Tag’lerinin içinde olduğunu görebiliriz.

22 PHP ve HTML nl2br() ve wordwrap()fonksiyonu nl2br() fonksiyonu bir metinde geçen yeni satır sonu (\r\n) işaretlerini HTML için <br/> yeni satır işaretine çevirir.

23 PHP ve HTML wordwrap()fonksiyonu bir metni belli bir uzunlukta keser. Örneğin metin çok uzunsa belirlediğimiz bir uzunlukta dilediğimiz bir kesme işareti ile kalan satırı yeni bir satırda gösterebiliriz.

24 PHP ve HTML Nokta (.) Operatörü Metinleri ya da değişkenlerden gelen verileri birleştirmek için nokta operatöründen yararlanabiliriz. Çoğu zaman bu tür ihtiyaçlarla sıklıkla karşılaşılır. İki sayıyı birleştirmek için bir örnek verelim.

25 PHP ve HTML <html> <head> <title>Nokta ile birleştirme metodu.</title> </head> <body> <h3> Nokta ile birleştirme metodu.</h3> <?php $str1 =" "; $str2 =" "; $str3=$str1. $str2; echo $str3; ?> </body></html>

26 PHP ve HTML <html> <head> <title>Nokta ile birleştirme metodu.</title> </head> <body> <h3> Nokta ile birleştirme metodu.</h3> <?php $str1 =" "; $str2 =" "; $str3=$str1. $str2; echo $str3; ?> </body></html>

27 PHP ve HTML <html> <head> <title>Nokta ile birleştirme metodu.</title> </head> <body> <?php $str1 ="Birinci Cümlemiz"; $str2 = "Merhaba Dünya Olsun."; $str3=$str1.$str2; echo $str3; ?> </body></html>

28 PHP ve HTML <html> <head> <title> Nokta ile birleştirme metodu.</title> </head> <body> <?php $str1 ="<h1>Birinci Cümlemiz"; $str2 = "Merhaba Dünya Olsun.</h1>"; $str3=$str1.$str2; echo $str3; ?> </body></html>

29 PHP ve HTML FORMLAR Formlar kullanıcıdan bilgi almanın ve vermenin en iyi yoludur. Form kullanarak kullanıcıları üye yapabiliriz, bilgi alabiliriz, bilgi verebiliriz. Kısacası iletişim kurmanın en önemli unsurları formlardır.

30 PHP ve HTML

31 PHP ve HTML

32 PHP ve HTML

33 PHP ve HTML

34 PHP ve HTML

35 PHP ve HTML Yukarıdaki form bir kullanıcının bir siteye hesap bilgilerini girerek giriş yapmasını sağlamak için tasarlanmıştır.Formun input alanlarındaki isimler esas bilgiyi taşıyan ve karşı taraftaki programa aktaran anahtarlardır. name= kullaniciadi name=sifre

36 PHP ve HTML Bu anahtarlar yardımı ile kullanıcının girdiği bilgiler bize ulaştırılacaktır. Formun gönderme metodu POST olarak düzenlenmiş. Formlardan iki türlü bilgi metot kullanılarak bilgi alınabilir. Bunlar sıra ile GET metodu ya da POST metodu olabilir. action="giris.php" action kısmı bu bilgilerin hangi programa gönderileceğini belirler.

37 PHP ve HTML (giris.php) <?php echo $_POST['kullaniciadi']; echo '<br>'; echo $_POST ['sifre']; ?> Programımızda formdan gelen bilgilerin POST metodu ile geleceğine dair değişkenler kullandık. $_POST ile POST metodu kullanılarak gönderilen bilgilerin formdaki anahtarlara göre alınması sağlanacak.

38 PHP ve HTML (form2.php) <form method="post" action="gir.php"> Kullanıcı adı:<br> <input type=text name= "kullaniciadi"><br> Şifre:<br> <input type=text name="sifre" ><br> <input type="submit" value="Giriş Yap"> <br> </form>

39 PHP ve HTML

40 PHP ve HTML Örneğin $_POST[‘kullaniciadi’] ile formdaki kullanıcı adı yazan yerin anahtarı olan bilgi bu değişkene aktarılarak veri alınabilir. Formu doldurup Giriş Yap butonuna tıkladığımızda bilgiler giris.php programına gönderilerek bilgilerin ekrana yazdırılması sağlanır.

41 PHP ve HTML GET metodu ile bilgi almak için tek yapılması gereken form2.php kodlarındaki POST bilgisi yerine GET yazmak olacaktır. Ayrıca gir.php dosyasındaki POST bilgileri de yine GET olarak düzenlenirse bilgiler artık GET metodu ile alınabilecek duruma gelebilir. GET metodu ile şifre gönderimi sakıncalıdır. Bunun yerine POST metodu kullanılmalıdır.

42 PHP ve HTML (gir_get.php) <?php echo $_GET['kullaniciadi']; echo '<br>'; echo $_GET ['sifre']; ?>

43 PHP ve HTML Formda ve gir.php dosyasında gerekli değişiklikler yapıldıktan sonra işlem tekrarlanırsa aşağıdaki gibi bir ekran görüntüsü ile bilgileri aldığımızı göre­biliriz. Burada dikkat edilecek şey GET ile gönderilen bilgilerin adres satırında göründüğüdür.

44 PHP ve HTML (form3.php) <form name=form1 method=POST action="giris2.php"> CİNSİYET<br /> Erkek:<input type="radio" value="Erkek" name="cinsiyet"><br> Kadın:<input type="radio" value="Kadın" name="cinsiyet"> <br> Bildiğiniz yabancı diller: <br /> Almanca:<input type="checkbox" value="Almanca" name="dil[]">

45 PHP ve HTML <br> ingilizce:<input type="checkbox" value="ingilizce" name="dil[]"> <br> Fransızca:<input type="checkbox" value="Fransızca" name="dil[]"> <input type=submit name=Submit value='Kaydet'>

46 PHP ve HTML (giris2.php) <?php echo "CİNSİYET: ".$_POST['cinsiyet'].".<br>"; echo "Yabancı Dil:"; foreach ($_POST['dil'] as $f) { echo $f."<br>"; } ?>

47 PHP ve HTML

48 PHP ve HTML Formlarda birden fazla seçenekli unsurların seçimini alabilmek için name="dil[]" şeklide tanımlamak gerekir. Bu formdan gelecek olan birden fazla seçeneği bir dizi şeklinde programa aktaracaktır. Dizinin anahtar ve değerlerini forech() döngüsü ile rahatlıkla elde edebiliriz. Not: Örnekte foreach döngüsü $_POST['dil'] değişkeni ile formdan gelen bir dizi değeri anahtar değer olarak döndürür.

49 PHP ve HTML (form4.php) <form method="post" action="sec.php"> <p>yabancı dil:</p> <select name="dil" > <option value="Almanca">Almanca <option value="İngilizce">İngilizce <option value="Fransızca">Fransızca </select> <br/> <input type="submit" name="submit" value="Gönder"> </form>

50 PHP ve HTML (sec.php) <?php echo "Seçtiğiniz yabancı dil<br>".$_POST['dil']; ?>

51 PHP ve HTML

52 PHP ve HTML (form4.php) <form method="POST" action="dosya.php" enctype="multipart/form-data"> <input type="file" name="upfile" accept="image/*"> <br><input type="submit" value= 'Gönder'><br> </form>

53 PHP ve HTML Dosya yüklemek için formlarda ek bir bilgiye ihtiyaç var. Bunun için form içinde giden veri tanımı enctype="multipart/form- data" bilgisi olmadan bir formdan sunucuya dosya yüklenemez. Dosya yüklemelerde ikinci en önemli şey, metot olarak POST kullanılmasıdır. Büyük verileri ancak POST metodu ile göndermek ve almak mümkündür.

54 PHP ve HTML print_r() fonksiyonu ile GET ve POST bilgilerini ve Global değişkenlerin değerlerini elde ederek gelen ya da gönderilen bilginin hangi değerlere göre gönderildiğini ya da alındığını bir dizi olarak ekrana basar. Formdan gelen bilgileri öğrenmekte kullanabiliriz.

55 PHP ve HTML $dizi=array("Onur", "Ahmet", "Esra"); print_r($dizi);
$dizi=array("Onur", "Ahmet", "Esra"); print_r($dizi); ?> Ekrandaki çıktı: Array ( [0] => Onur [1] => Ahmet [2] => Esra )

56 PHP ve HTML <html><head> <title>print_r fonksiyonu</title> </head> <body> <?php ($_POST)? print_r($_POST) : ""; ?> <form action="print_r.php" method = post> Adını yaz: <input type=text name="ad" value=""><br> Soyadını yaz:<input type=text name="soyad" value=""><br> <input type=submit> </body> </html>

57 PHP ve HTML Örneğimizdeki formu doldurup gönderdiğimizde print_r() ile formdaki anahtarların taşıdığı değerleri elde edebiliriz.

58 PHP ve HTML Array( ad = Onur soyad=>BULUT ) Formdaki çıktıya göre print_r() fonksiyonu bize formdan programa gönderilen bilgileri bir dizi şeması olarak ekrana yazdırdı. Görüldüğü gibi ad anahtarı Onur adlı bilgiyi, soyad adlı anahtar ise BULUT bilgisini programa göndermiş.

59 PHP ve HTML Görüldüğü gibi print_r() fonksiyonu formdaki anahtarlar ve değerleri rahatlıkla elde edilebilmektedir. Buna göre formdan gelen ad anahtarının değerini elde etmek için $_POST['ad'] şeklinde yazmamız gerekir. Yine soyad bilgisini elde etmek içinde $_POST['soyad'] yazmamız gerekir. Bu bilgilerden yola çıkarak program içinde anahtarlan aşağıdaki gibi düzenlersek, formun her bir alanı ile ilgili bilgileri tek, tek elde edebiliriz.

60 PHP ve HTML Formlardan Girilen Bilgilerin Filtrelenmesi Herkes tarafından paylaşılan içeriklerde veri alış verişi kullanıcılar tarafından alınıp yine kullanıcılara sunulmaktadır. Örneğin bir forumda üyeler mesaj bırakarak soru sorabilirler ve karşılığında yine cevap alabilirler. Ya da haberlerin herkese açık olan yorum bırakma alanları da yanı şekilde kullanıcılardan çeşitli değerlendirmeleri bırakmaları istenir.

61 PHP ve HTML Bu gibi durumlarda kullanıcı bir form alanına dilediği bilgiyi girebilir. Girilen bilgiler herhangi bir denetimden geçirilmezse, zararlı kodların formlar aracılığı ile sisteme gireceği ve güvenlik açıklarına neden olabileceğini bilmeliyiz. İşte bu gibi sakıncaları ortadan kaldırmak için formlardan girilen bilgilerin belli bir süzgeçten geçirilerek veri tabanlarına kaydedilmesi gerekir. Formdan giden bir iframe ya da javascript kodu ile XSS(Cross Site Scripting) saldırısı gerçekleşebilir.Böylece paylaşımın olduğu sayfalarda üyelerin oturum bilgileri ele geçirilebilir.

62 PHP ve HTML Fonksiyon Açıklama filter_has_var()
Giriş yapan özel değerleri denetler. filter_id() İD numarasına göre belirli bir filtre döndürür. filter_input() Dıştan giriş yapan javascript komutlarını filtreler. filter_input_array() Dıştan giriş yapan formun birden fazla alanını Seçeneklere göre filtreler. filter_list() Bütün filtreleme yöntemlerini bir dizi olarak listeler. filter_var_array() Birden çok değeri filtreler. filter_var() Özel değerleri filtreler.

63 PHP ve HTML Bu fonksiyonlar aşağıdaki PHP fıltreleri ile çalışır.
Filtre Açıklama FILTER_SANITIZE_STRING HTML etiketlerini ve özel karakterleri temizler. FILTER_SANITIZE_SPECIAL _CHARS HTML etiketlerini özel karakterlerle kodlayarak kullanıcı tarafında görünmesini sağlar. FILTER_SANITIZE_ Eposta adresinde bulunan istenmeyen !#$%&*'+- karakterleri temizler. FILTER_SANITIZE_URL Bir site adresinde bulunan ve adrese uymayan bütün $-_.+! *’(),{} |\\A~[]‘ özel karakterleri temizler.

64 PHP ve HTML filter_input_array() Fonksiyonu INPUT_GET, INPUT_POST, INPUT_COOKIE, INPUT_SERVER, INPUT_ENV, INPUT_SESSION, ve INPUT_REQUEST seçenekleri ile bir formdan veya dışarıdan gelebilecek verilerde istediğimiz seçenekle göre filtre etmemizi ve güvenli veri almamızı ve kullanmamızı sağlar.

65 PHP ve HTML <h3>Düşünceleriniz</h3>
(filtre.html) <h3>Düşünceleriniz</h3> <form method="post" action="filtre.php"> Konusu:<br /> <input type="text" size="50" name="konu" /><br /> Mesajınız:<br /> <textarea rows="5" cols="40" name="mesaj"></textarea><br /> <input type="submit" /> </form>

66 PHP ve HTML (filtre.php) <?php $secilen = array( 'konu' => FILTER_SANITIZE_STRING, 'mesaj' => FILTER_SANITIZE_STRING,); $giris = filter_input_array(INPUT_POST, $secilen); echo "Konu alanından gelen bilgi: ".$giris['konu']; echo "<br>\n"; echo "Mesaj alanından gelen bilgi: ".$giris['mesaj']; ?>

67 PHP ve HTML

68 PHP ve HTML Görüldüğü gibi formdan gelebilecek tehlikeli javascript gibi kodlar temizlenmiş durumda. Sadece javascript kodları temizlenmez, aynı zamanda bütün HTML kodları bu yöntemle temizlenebilir.HTML kodları temizlenmesin zarar­sız hale getirilsin, bunun için FILTER SANITIZE SPECIAL CHARS kullanabiliriz.

69 PHP ve HTML (filtre2.html) <h3>Düşünceleriniz</h3> <form method="post" action="filtre2.php"> Konusu:<br/> <input type="text" size="50" name="konu" /> <br />Mesajınız:<br/> <textarea rows="5" cols="40" name="mesaj"> </textarea><br /> <input type="submit" /> </form>

70 PHP ve HTML (filtre2.php) <?php $secilen = array( 'konu'=>FILTER_SANITIZE_SPECIAL_CHARS, 'mesaj'=>FILTER_SANITIZE_SPECIAL_CHARS,); $giris=filter_input_array(INPUT_POST,$secilen); echo "Konu alanından gelen bilgi: ".$giris['konu']; echo "<br>\n"; echo "Mesaj alanından gelen bilgi: ".$giris['mesaj']; ?>

71 PHP ve HTML

72 PHP ve HTML Programın çıktısından da görüleceği gibi HTML kodları sadece kod olarak ekranda görünüyor yani sayfa kaynağında HTML kodu olarak işlenmemiştir. Bunun nedeni özel karakterlerin HTML special karakter guruplarına dönüştü­rülmesinden kaynaklanır. Sayfanın kaynağını açıp baktığınızda bu karakter guruplarını görebilirsiniz.

73 PHP ve HTML filter_var() Fonksiyonu filter_var() fonksiyonu ile aşağıdaki bayrak seçenekleri ile çeşitli durumlar için kontrol yapabiliriz. Bayrak seçeneği Açıklama FILTER_VALIDATE_ Mail kontrolü FILTER_VALIDATE_URL URL kontrolü FILTER_VALIDATEIP İp kontrolü FILTER_VALIDATE_INT Sayı kontrolü FILTER_VALIDATE_BOOLEAN Mantıksal veri kontrolü FILTER_VALIDATE_FLOAT Kayan noktalı sayı kontrolü FILTER_VALIDATE_REGEXP Düzenli ifadelerle kontrol

74 PHP ve HTML Eposta Adresi Doğrulama filter_var() fonksiyonu ile aşağıdaki bayrak seçenekleri ile çeşitli durumlar için kontrol yapabiliriz. Formlarda girilen eposta adreslerinin yanış yazılıp yazılmadığını kontrol etmek için fılitreleme fonksiyonların aldığı bir bayrak seçeneği ile kontrol etmek mümkündür. FILTER_VALIDATE_ ile formlardan girilen eposta adresinin doğru yazılıp yazılmadığını kontrol edebiliriz. Bu doğrulama işleminde epostanın gerçek olup olmadığından çok, bir eposta adresi formatında yazılıp yazılmadığı kontrol edilir.

75 PHP ve HTML (filtre3.html) <h3>Mail listesi girişi</h3> <form method="post" action="filtre3.php"> Adınız soyadınız:<br/> <input type="text" size="50" name="ad" /> <br/> E-posta adresiniz:<br /> <input type="text" size="50" name="eposta" /> <br/> <input type="submit" /> </form>

76 PHP ve HTML (filtre3.php) <?php $posta=$_POST['eposta']; if(filter_var($posta,FILTER_VALIDATE_ )){ echo 'Girdiğiniz eposta adresi doğru'; } else { echo 'Eposta adresi yanlış,yeniden girin'; exit; } ?>

77 PHP ve HTML

78 PHP ve HTML (form.php)

79 PHP ve HTML Eğitim Durumu : <select name="egitim">
<form name="uyelik" method="post" action="uye_kaydet.php"> <pre> Adınız : <input type="text" name="adi"><br> Soyadınız : <input type="text" name="soyadi"><br> Kullanıcı adınız: <input type="text" name="kullanici_adi"><br> Cinsiyet : Bay<input type="radio" name="cinsiyet" value="bay" checked> Bayan <input type="radio" name="cinsiyet" value="bayan"><br> Eğitim Durumu : <select name="egitim"> <option value="ilkogretim">İlköğretim</option> <option value="lise" selected>Lise</option> <option value="yuksekokul">Yüksek Okul</option> <option value="universite">Üniversite</option> <option value="master">Master</option> <option value="doktora">Doktora</option> </select><br>

80 PHP ve HTML adresiniz: <input type="text" name=" "><br> Şifre : <input type="password" name="sifre"><br> Tekrar şifre : <input type="password" name="tekrar_sifre"><br> <input type="submit" name="gonder" value="Gönder"> </form>

81 PHP ve HTML

82 PHP ve HTML <?php echo "merhaba sayın " .$_POST['kullanici_adi']; echo '<br>'; echo " adresiniz sisteme şu şekilde kayıt edilmiştir:".$_POST [' ']; ?>

83 PHP ve HTML Örnek-1) Kullanıcı adı ve parola alanı bulunan bir sayfada giriş bilgileri doğruysa Başarılı değilse Hatalı bilgi uyarısı veren bir sayfa yapalım. Bu örnek için iki php sayfası oluşturuyoruz. Form.php <html> <body> <form action="login.php" method="post"> Kullanıcı Adı : <input type="text" name="kadi" > Şifre: <input type="password" name="sifre"> <input type="submit" value="Giriş Yap"> </form> </body> </html>

84 PHP ve HTML login.php <html> <body> <?php $kadi = "admin"; $sifre= "123456"; if ($_POST["kadi"]==$kadi && $_POST["sifre"]==$sifre ) echo "HOŞGELDİNİZ"; else echo "HATALI GİRİŞ. BİLGİLERİ KONTROL EDİNİZ"; ?> </body> </html>

85 PHP ve HTML Örnek-2) İlk örnekte alanları boş bıraktığımızda “Hatalı Giriş” değilde “Alanlar Boş” diye farklı bir uyarı vermesini sağlayalım.

86 PHP ve HTML <?php $kadi = "admin"; $sifre= "123456"; if (empty($_POST["kadi"]) || empty($_POST["sifre"])) echo "ALANLARDAN BİR veya Birkaçı BOŞ"; else { if ($_POST["kadi"]==$kadi && $_POST["sifre"]==$sifre ) echo "HOŞGELDİNİZ"; echo "HATALI GİRİŞ. BİLGİLERİ KONTROL EDİNİZ"; } ?>

87 PHP ve HTML Örnek-3) Bu örnekte for döngüsü yardımıyla,  1 den metin alanına girilen sayıya kadar sayı yazdırmayı görelim. 

88 PHP ve HTML (form.php) <html> <body> <form action= " yaz.php" method="post"> Kaça kadar : <input type="text" name="sayi"> <input type="submit" value="Yaz"> </form> </body> </html> (yaz.php) <?php for ($i=1;$i<=$_POST["sayi"];$i++) echo $i."<br/>"; ?>

89 PHP ve HTML Örnek-4) ilk sayı ve son sayıyı formdan alan  

90 PHP ve HTML (form.php) <html> <body> <form action= " yaz.php" method="post"> Kaçtan : <input type="text" name="sayi1"> Kaça kadar : <input type="text" name="sayi2"> <input type="submit" value="Yaz"> </form> </body> </html> (yaz.php) <?php for ($i=$_POST["sayi1"];$i<=$_POST["sayi2"];$i++) echo $i."<br/>"; ?>

91 PHP ve HTML Örnek-5) ilk sayı ve son sayıyı formdan alan ve kaçar kaçar artacağını bildiren program 

92 PHP ve HTML (form.php) <html> <body> <form action= " yaz.php" method="post"> Kaçtan : <input type="text" name="sayi1"> Kaça kadar : <input type="text" name="sayi2"> Kaçar kaçar: <input type="text" name="sayi3"> <input type="submit" value="Yaz"> </form> </body> </html>

93 PHP ve HTML (yaz.php) <?php for ($i=$_POST["sayi1"];$i<=$_POST["sayi2"];$i+=$_POST["sayi3"]) echo $i."<br/>"; ?>

94 PHP ve HTML

95 PHP ve HTML <form method="post" action="uyeyaz.php"> Kullanıcı <input type="text" name="kullanici" /> <br> Parola <input type="password" name="sifre" /><br> <br>Sigara Kullanımı<br> Kullanmıyorum<input type="radio" CHECKED name="sigara" value="Kullanmıyor"/> Ara Sıra<input type="radio" name="sigara" value="Ara Sıra Kullanıyor"/> Kullanıyorum<input type="radio" name="sigara" value="Kullanıyor"/> <br><br>Askerlik <select name="askerlik"> <option value="Yapıldı">Yapıldı</option> <option value="Tecilli">Tecilli</option> <option value="Muaf">Muaf</option> </select><br> İsteklerim<textarea name="istek" rows="4"></textarea> <br><input type="submit" value="Gonder" /> </form>

96 PHP ve HTML <?php $kullaniciadi =$_POST['kullanici']; $sifre =$_POST['sifre']; $sigara=$_POST['sigara']; $askerlik=$_POST['askerlik']; $istek=$_POST['istek']; echo "Kullanıcı Adı:$kullaniciadi<br>"; echo "Şifre:$sifre<br>"; echo "Askerlik:$askerlik<br>"; echo "Sigara:$sigara<br>"; echo "İstekler:$istek<br>"; ?>

97 PHP ve HTML Programa Dışarıdan Dosya Dahil Etme Kimi zaman yazdığımız bir programa bir HTML dosyasını ya da bir PHP Programını dahil etmek isteyebiliriz. Proje ya da kod yazımı arttıkça, denetim yapmak ve kodlarda gerekli değişiklikleri yapmak zorlaşır. Bu nedenle bir projenin kodları kullanılabilirlik açısından birden fazla dosyaya yazılarak bu dosyaları örneğin index.php dosyasına dışarıdan dahil ederek, programın bütünü gibi kullanabiliriz. Bunun için PHP bize include(), require(), include_once() ve require_once() fonksiyonlarını sunar. Bu fonksiyonların hepsi bir dosyayı PHP programına dahil eder.

98 PHP ve HTML Bir PHP programına dosya dahil etmek için aşağıdaki fonksiyonlar kullanılır. Eğer dahil edilmek istenen dosya bir PHP dosyası ise, bu dosyanın içindeki PHP kodları eklenen programdaki kodlarmış gibi işlem görecektir. Yani dahil edilen dosyadaki bütün değişkenler, fonksiyonlar, sınıflar vb programın geneli için tanımlanmış sayılır ve o programın her yerinde kullanılır durumda olur.

99 PHP ve HTML Fonksiyon Açıklama require
Belirtilen dosyayı programa ekler.Dosyayı bulamazsa ölümcül hata verir, programı durdurur. include Belirtilen dosyayı programa ekler. Dosyayı bulamazsa ekrana bir uyarı yazar. require_once Belirtilen dosyayı programa ekler.Aynı isimli dosyadan birden fazla yüklenmesini önler. include_once

100 PHP ve HTML Bir dosya bir PHP programına dahil edilmek istendiğinde belirtilen bir dizin varsa ilk önce bu dizine bakılır, dizin belirtilmemişse dosyanın varlığı ön tanımlı include_path() direktifi ile belirtilen dizin yolunda aranır, şayet bulunamazsa kullandığımız fonksiyona göre örneğin include(), dosyayı bulamazsa bir uyarı çıktılar, require() için bu davranış bir ölümcül hata olarak kendini gösterir ve programın çalışmasını keser.

101 PHP ve HTML

102 PHP ve HTML include(); ya da require(); fonksiyonlarını kullanarak istediğimiz bir dosyayı başka bir PHP programına dahil edebiliriz. Bu fonksiyonlar kendilerine atanmış dosyaları okuyarak bulundukları noktaya dahil ederler. Dahil edeceğimiz dosyalar farklı uzantılara ya da içeriğe sahip olabilirler. PHP uzantılı dosya olmaları zorunlu değildir. Eğer dahil edilen dosyada PHP kodları varsa, bu kodların değişken ve fonksiyonları aynen PHP programına dahil edilir.

103 PHP ve HTML

104 PHP ve HTML Örneğimizde b.html dosyasının içinde PHP kodları bulunmakta ve c.php dosyasına eklendiğinde kodların c.php kodu gibi çalıştırıldığı ve ekrana gerekli bilgileri yazdığı görülüyor. PHP kodlarının özellikle php uzantılı olmayan dosyalar içinde programlara eklenmesi güvenlik açıklarına neden olabilir. Bu yüzden tavsiye edilmez. Adres satırı üzerinden html dosyası çağrıldığında PHP kodları yorumlanmayacağından içindeki kodları başka birisinin görmesi kaçınılmaz olur. Bu nedenle dışarıdan bir programa dosya dahil edilecekse ve bu dosyanın içinde PHP kodları var ise dosyanın uzantısı mutlaka php olmalıdır.

105 PHP ve HTML Dosyaların Bir Şablona Dahil Edilmesi Büyük ya da küçük projelerde esnek ve kontrollü bir çalışma için PHP kodları birden fazla dosya içinde kodlanır ve her bir dosya daha sonra örneğin index.php gibi bir dosyaya dahil edilir. Aşağıda basit bir şablon örneği bu tür bir çalışma için size fikir verebilir. Görüldüğü gibi her bir dosyanın şablondaki yeri belirlenmiştir. Bu dosyalar bir sitenin içeriği ile ilgili her tür veriyi ana sayfada gösterecek şekilde şablona yerleştirilir.

106 PHP ve HTML

107 PHP ve HTML Aşağıda bir HTML tablosu ile bir web sayfasının üst bilgisi, menüleri, ana içeriği ve alt sayfa bilgisini gösterecek şekilde kodlanmıştır. Tablonun görünüşü yukarıda verdiğimiz şablon görüntüsünü vermektedir. Şablonda web sayfasının içeriği ile ilgili bilgileri (üst bilgi, menü, içerik ve alt bilgi) oluşturan PHP kodlarının dahil edileceği yerler PHP kodu yazılarak index.php adında kaydedilmiştir.

108 PHP ve HTML

109 PHP ve HTML <table border="1" style='width:500pt; height:250pt; border- collapse:collapse'> <tr><td valign="top" colspan="2"> <?php include("ust.php"); ?> </td></tr> <tr><td width="200" valign="top"> <?php include("menu.php"); ?> </td> <td valign="top"> <?php echo" Burada bizim sayfanın içeriği olacak"; ?> </td></tr> <tr><td colspan="2"> <?php include("alt.php"); ?> </td></tr> </table>

110 PHP ve HTML (ust.php) <?php echo "<h2> Sitem</h2>"; ?> (alt.php) echo "<b>© Her hakkı saklıdır.</b>";

111 PHP ve HTML (menu.php) <?php echo "<b>1.Menü </b><br>"; echo "<b>2.Menü </b><br>"; echo "<b>3.Menü </b><br>"; echo "<b>4.Menü </b><br>"; ?>

112 PHP ve HTML include_once() fonksiyonun aynı dosyayı tekrar yükleyip yüklemediğini test etmek için aşağıdaki gibi 4 ayrı dosya hazırlıyoruz. Bu dosyalardan testl.php ve test2.php aynı isimli ve aynı içerikli dosyayı kendilerine dahil etmek istesinler. Ana programımız olan include_once.php dosyasına ise testl.php ve test2.php dosyalarını dahil edelim. Sonuç olarak includeonce.php dosyasını web tarayıcı aracılığı ile çağırdığımızda include_once() fonksiyonun aynı dosyayı tekrar çağırmadığını sadece tek içerik yüklediğini görebiliriz.

113 PHP ve HTML (menu.php) <?php echo "<b>1.Menü </b><br>"; echo "<b>2.Menü </b><br>"; echo "<b>3.Menü </b><br>"; echo "<b>4.Menü </b><br>"; ?>

114 PHP ve HTML (test1.php) <?php include_once("menu.php"); ?> (test2.php)

115 PHP ve HTML (test1.php) <html> <head> <title> include_once</title> </head> <body> <?php include("test1.php"); include("test2.php"); ?> </body> </html> (Görüldüğü gibi menu.php dosyası sadece bir kez yüklenmiştir.)

116 PHP ve HTML Büyük projelerde bir dosyanın birden fazla projeye dahil edilmesi istenmeyen sonuçlara neden olabileceğinden emin olmadığımız durumlarda bir dosya­nın tekrar kodlara dahil edilmesini engellemek için include_once() veya require_once() fonksiyonlarından birisini kullanabiliriz.

117 PHP ve HTML Örneğimizde include_once() kullanıldı. Şayet dahil edilen dosyalardan bi­risi bulunamasaydı include_once() bir uyarı ile bu durumu ekrana bildirecekti ve programın çalışma akışı devam edecekti. Oysa önemli bilgilerin olduğu bir dosya eğer bulunamıyorsa programı durdurmak isteyebiliriz. İşte bu gibi du­ rumlar için require_once() fonksiyonu kullanılır. Dosya bulunmadığında prog­ramın çalışma akışını keser ve bu durumu bir hata ile ekrana yazar. Benzer şekilde aynı durum _once takısı olmayan include() ve require() fonksiyonları içinde geçerlidir.


"İnternet Programlama - 2" indir ppt

Benzer bir sunumlar


Google Reklamları