Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
İSMET AKTAR ANADOLU TEKNİK LİSESİ
BİLİŞİM TEKNOLOJİLERİ ALANI
WEB PROGRAMCILIĞI DALI
PHP – Örnek Uygulamalar
2008
1
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● E-Mail gönderme örneği:
mesaj1.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/ xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php
$ad = $_POST['ad']; // Bu satir ve 3 alt satirda formdan gelen degiskenler aliniyor
$email = $_POST['email'];
$konu = $_POST['konu'];
$msg = $_POST['msg'];
$mailtanim = "MIME-Version: 1.0\r\n"; // bu kısım tanımlama kısmı
// mailin karakter seti
$mailtanim .= "Content-type: text/plain; charset=iso-8859-9\r\n";
// Mail'i açinca kimden geldigi kisminda yazacak olanlar
$mailtanim .= "From: $name <$email>\r\n";
// Mail'i cevaplamak için cevabin kime gidecegini içeren kisim
$mailtanim .= "Reply-To: $name <$email>\r\n";
// Mailin içeriginde, bas tarafina formdan gelen ad,email gibi bilgileri de ekler.
$sms = "Isim : ".$ad."<br>E-Mail : ".$email."<br>Konu : ".$konu;
$sms .= $msg; // Ardindan da mesaji ekler.
$submit = $_POST['submit']; // gönder butonuna basilip basilmadigini ögrenmek için
// degisken alinir.
if (empty($submit))
{ $form_kontrol = false;
} else { $form_kontrol = true; }
// Bu if döngüsünde gelen degiskene göre butona basilip
// basilmamis oldugu degerlendirilir.
if ( $form_kontrol ) {
// Burda da butona basilmis ise verileri gönderme emri
// verilir.
mail("[email protected]", $konu ,stripslashes($sms), $mailtanim);
// Mail gönderme kodu. Ana kod satirimiz budur.
print("Mailiniz gönderilmistir....");
2
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
}
?>
<FORM action="" method="post">
<table cellpadding=0 cellspacing=1 border=0 bgcolor=#efefef>
<tr><td align=center bgcolor=#ffcc33>
<font face=arial size=2><b>Email Formu</b></font></td></tr>
<tr><td align=right><font face=arial size=2><b>Isim:</b></font></td>
<td><input type=text name="ad" value="" size=30></td>
</tr>
<tr><td align=right><font face=arial size=2><b>E-Mail:</b></font></td>
<td><input type=text name="email" value="" size=30></td>
</tr>
<tr><td align=right><font face=arial size=2><b>Konu:</b></font></td>
<td><input type=text name="konu" value="" size=30></td>
</tr>
<tr><td align=right valign=top><font face=arial size=2><b>Mesaj:</b></font>
</td>
<td><textarea name="msg" cols=44 rows=5></textarea></td>
</tr>
<tr>
<td></td>
<td align=center><font face=arial size=2>
<input type="submit" name="submit" value=" Gönder ">
<input type="reset" value=" Sil "></font></td>
</tr>
</table>
</form>
</body>
</html>
3
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● E-Mail gönderme örneği:
mesaj.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?php
function mailgonder()
{
$alici="[email protected]";
$konu="--- Sayfadan Gelen Görüs ve Öneriler ----";
$mesaj=$icerik . "\r\n" . $ad . " " . $soyad . "\r\n" . $eposta;
mail($alici,$konu,$mesaj);
print ("E-Postaniz gönderilmistir....");
}
if (isset($submit)) //Eğer gönder butonuna tıklanıldıysa
{
mailgonder(); // Burada butona basilmis ise maili
// gönderecek fonksiyon çalıştırılır
}
?>
<form id="form1" name="form1" method="post" action="mesaj.php">
Ad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:
<input name="ad" type="text" id="ad" />
<br/>
<br/>
Soyad&nbsp;&nbsp;:
<input name="soyad" type="text" id="soyad" />
<br/>
<br/>
E-Posta:
<input name="eposta" type="text" id="eposta" />
<br/>
<br/>
Mesaj&nbsp;&nbsp;:
<textarea name="icerik" cols="50" rows="10"></textarea>
<br /><br />
4
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<input name="submit" type="submit" id="gonder" value="GONDER" />
<br />
</form>
</body>
</html>
● $GLOBALS Dizi değişkeninin içeriğini görüntülemek:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
</HEAD>
<BODY>
<B>
<H2>
<?php
foreach ($GLOBALS as $anahtar=>$deger )
{
print ($anahtar . " = " . $deger . "<br>");
}
?>
5
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
</H2>
</B>
</BODY>
</HTML>
Bu programla PHP'nin daima varolan $GLOBALS dizisinin üyelerini görüntülüyoruz.
$GLOBALS bir ilişkili-dizi-değişken, yani değişken değerlerinin endeks adı (anahtarı)
bulunan bir dizi olduğu için, içerdiği değerlere adları ile ulaşabiliriz. Bu programda,
$GLOBALS'ın anahtarlarını $anahtar, değerlerini ise $değer değişkenine yazdırıyoruz ve
bir foreach döngüsü ile Brnowser penceresine gönderiyoruz. Programı çalıştırdığımız
sisteme ve Web sunucu programına bağlı olmak üzere, ekranımızda bir çok değişken
görebiliriz. Bunlar arasında bütün HTTP Server programları için ortak ve Web
programcısı için önemli değişkenler şunlardır:
HTTP_ENV_VARS: HTTP Sunucu programın çalışmakta olan PHP dosyası için oluşturduğu
çevre değişkenlerinin yazılı olduğu dizi değişken. Bu değişkenin içinde şu
unsurlar bulunur:
HOSTNAME: Sunucunun IP adresi
SHELL: Unix sisteminde kullanılan Shell programı
HOSTTYPE: Sunucunun adı ve sürünü
OSTYPE: Sunucu'nun işletim sistemi
HOME: Çalışan programın kök dizini
PATH: Çalışan programın Sunucu'daki yolu
HTTP_SERVER_VARS: Sunucu programın çalışmakta olan PHP dosyasına sunduğu bazı
bilgilerin bulunduğu dizi değişken. Bu değişkenin içinde şu unsurlar
bulunur:
6
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
PHP_SELF: Çalışan PHP programının bulunduğu dizin ve adı
PATH_TRANSLATED: Çalışan PHP programının fiziksel yolu
HTTP_GET_VARS: Bir Form'dan GET metoduyla alınan bilgilerin anahtar=değer çiftleri
olarak kaydedildiği dizi değişken
HTTP_POST_VARS: Bir Form'dan POST metoduyla alınan bilgilerin anahtar=değer çiftleri
olarak kaydedildiği dizi değişken
HTTP_USER_AGENT: Ziyaretçinin bilgisayarında kurulu Internet Browser programı
QUERY_STRING: Form ile bilgi alırken GET metodunu kullandığımız takdirde, Browser'ın
göndereceği bilgilerin tutulduğu değişken
REMOTE_ADDR: Ziyaretçinin bilgisayarına ISS tarafından atanmış IP adresi
REQUEST_METHOD: Form ile gelen bilgilerin gönderildiği metod: GET veya POST
REQUEST_URI : O anda çalışmakta olan PHP dosyasının adı ve varsa bu ada eklenmiş
Query_String
SCRIPT_FILENAME : O anda çalışmakta olan PHP programının dosya adı
SCRIPT_URI: O anda çalışmakta olan PHP programının tam URL adresi
SERVER_ADDR : Sunucunun IP adresi
SERVER_PROTOCOL: Sunucunun HTTP protokolünün sürümü
● Form'dan GET Metoduyla Gelen Bilgiler :
form_get_metodu.html
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
</HEAD>
<BODY>
<FORM ACTION="form_get_metodu.php" METHOD="GET">
Adınız, Soyadınız: <INPUT TYPE="TEXT" NAME="adi">
<br>
Elektronik Adresiniz: <INPUT TYPE=TEXT" NAME="adres">
<br>
<INPUT TYPE="SUBMIT" VALUE="Gönder Gitsin!"> <INPUT TYPE="RESET"
VALUE="Vazgeç, Gönderme!">
</FORM>
</BODY>
</HTML>
7
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
form_get_metodu.php
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
</HEAD>
<BODY>
<?php
print ("Sayın <b>$adi</b>\n\n");
print ("<p>Elektronik adresiniz: <b>$adres </b></p>\n\n");
?>
</BODY>
</HTML>
Browser, GET yoluyla bilgi göndereceği zaman, Form'daki bütün bilgileri URLEncoding denen sistemle kodlar; Form'un alan adlarına o alanlara ziyaretçinin yazdığı
bilgileri bir eşittir işaretiyle ekler; bu tür alan=girdi çiftlerinin arasına & (ve işareti)
koyar ve gönderir. Web sunucu, bu bilgileri alınca, önce kendi oluşturduğu bazı
değişkenlere (hem QUERY_STRING, hem de HTTP_GET_VARS dizisine) yazar ve
sonra URL hanesinde ( <form action=”.....”) adı yazılı olan programa (sayfaya) verir.
Yukarıdaki örnekte Sunucu'nun ziyaretçiden gelen bilgileri depoladığı dizileri
kullanmadık. Bunu yaparken, GET ile gelen bilgiler kendisinde verildiğinde PHP
8
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
programının alan adlarını değişken adı, bunların karşısında yazılı olan verileri de bu
değişkenin değeri saymasından yararlandık. Fakat isteseydik, bu değişkenleri,
Sunucu'nun oluşturduğu dizilerden de alabilirdik. Şimdi hem Form'umuzu geliştirelim;
hem de bu kez okuma işini Sunucu dizisinden yapalım.
Önce Form'umuzu değiştirelim ve formlar03.htm adıyla kaydedelim:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
</HEAD>
<BODY>
<FORM ACTION="formlar03_isle.php" METHOD="GET">
Adınız, Soyadınız: <INPUT TYPE="TEXT" NAME="adi">
<BR>
Elektronik Adresiniz: <INPUT TYPE=TEXT" NAME="adres">
<BR>
Hangi notunuzu öğrenmek istiyorsunuz?
<BR>
<SELECT NAME="hangi_not">
<OPTION>--Lütfen seçiniz-<OPTION>Sınav 1
<OPTION>Sınav 2
<OPTION>Ortalama
</SELECT>
<BR>
<INPUT TYPE="SUBMIT" VALUE="Gönder Gitsin!"> <INPUT TYPE="RESET"
VALUE="Vazgeç, Gönderme!">
</FORM>
</BODY>
</HTML>
9
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
Aşağıdaki kodları formlar03_isle.php adıyla kaydedelim:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
</HEAD>
<BODY>
<?php
foreach ($HTTP_GET_VARS as $anahtar=>$deger ) {
print ("<b>$anahtar = $deger <br>\n");
}
?>
</BODY>
</HTML>
>URL Kodları
HTTP protokolüne göre, temel ASCII listesi içinde yer almayan karakterler, ve
tabiî bu arada sadece Türkçe'de bazı diğer alfabelerde bulunan harfler, bir Form'da yer
aldığı taktirde, Browser tarafından URL şemasına göre kodlanarak gönderilir. Gerçi bir
çok HTTP sunucu programıbu karakterlere tanıyabilir ve bir dosyaya yazarken doğru
şekilde yazabilirler; ama bu çevirme işleminin bazen program yardımıyla yapılması
gerekebilir. Bizim için önemli karakterler ve URL kodları şöyle:
ü = %FC
İ = %DD
Ü = %DC
ğ = %F0
ö = %F6
Ğ = %D0
Ö = %D6
ş = %FE
ı
Ş = %DE
= %FD
10
Bilişim Teknolojileri Alanı – İnternet Programcılığı
ç
Durhan GABRALI - 2008
= %E7
]
= %5D
Ç = %C7
{
= %7B
% = %25
}
= %7D
&
= %26
?
= %3F
[
= %5B
=
= %3D
● Form'dan POST Metoduyla Gelen Bilgiler :
HTTP sunucusu bu yöntemle gelen bilgileri $HTTP_POST_VARS dizideğişkeninde tutar. HTTP sunucusu açısından GET ile POST'un tek farkı gelen
değerlerin nerede nasıl tutulduğundan ibaret değildir. GET yönteminde, bir Browser'ın
sunucuya gönderebileceği verinin uzunluğu, Sunucunun ayarlarına bağlı olmak üzere,
sınırlıdır. Oysa POST ile alacağımız veri miktarı, sadece sunucunun bulunduğu
bilgisayarın sabit disk alanıyla sınırlıdır.
Bir başka fark, Browser'ın GET yoluyla gönderdiği verilerin (ve bu arada
ziyaretçinin parola olarak yazdıklarında ekrana yıldız olarak çıkan metinler dahil) tümü,
sunucuya, URL-kodlanmış metin olarak, Browser'ın URL adres hanesine de
yazılmasıdır. Bir çok kullanıcı için bu bir güvensizlik belirtisi sayılır. Bu iki unsur
Formlarımızda metod olarak GET yerine POST kullanmanın daha yerinde olduğunu
gösterir.
Örnek) Bu örnekte form_post_metodu.php adında tek bir dosya kullanılmıştır.
<?php
if ( isset ( $HTTP_POST_VARS ))
{
print ("<HTML>\n");
print ("<HEAD>\n");
print ("<TITLE>PHP'de Formlar</TITLE>\n");
print ("<meta http-equiv=\"content-type\" content=\"text/html;
charset=ISO-8859-9\">\n");
print ("</HEAD>\n");
print ("<BODY>\n");
foreach ($HTTP_POST_VARS as $anahtar=>$deger ) {
if ( gettype ($deger ) == "array" ) {
print ("$anahtar == <br>\n");
foreach ( $deger as $yeni_degerler )
print (".. $yeni_degerler<br>");
}
else {
print ("<b>$anahtar = $deger <br>\n");
}
}
print ("</BODY>\n");
11
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
print ("</HTML>\n");
}
else {
print ("<HTML>\n");
print ("<HEAD>\n");
print ("<TITLE>PHP'de Formlar</TITLE>\n");
print ("<meta http-equiv=\"content-type\" content=\"text/html;
charset=ISO-8859-9\">\n");
print ("</HEAD>\n");
print ("<BODY>\n");
print ("<FORM ACTION=\"$PHP_SELF\" METHOD=\"POST\">\n");
print (" Adınız, Soyadınız: <INPUT TYPE=\"TEXT\" NAME=\"adi\">\n");
print ("<BR>\n");
print (" Elektronik Adresiniz: <INPUT TYPE=\"TEXT\" NAME=\"adres\">\n");
print ("<BR>\n");
print (" Hangi notunuzu öğrenmek istiyorsunuz? \n");
print ("<BR>\n");
print ("<SELECT NAME=\"hangi_not[]\" MULTIPLE>\n");
print ("<OPTION>Sınav 1 \n");
print ("<OPTION>Sınav 2 \n");
print ("<OPTION>Ortalama \n");
print ("</SELECT>\n");
print ("<BR>\n");
print ("<INPUT TYPE=\"SUBMIT\" VALUE=\"Gönder Gitsin!\"> <INPUT
TYPE=\"RESET\" VALUE=\"Vazgeç, Gönderme!\"> \n");
print ("</FORM>\n");
print ("</BODY>\n");
print ("</HTML>\n");
}
?>
Tedbirli Web programcılığı, özellikle birden fazla tasarımcı ve programcının
birlikte çalıştığı ve Formlarda hangi yöntemin tercih edildiğini bilmenin kolay olmadığı
projelerde, Form bilgisi işleyen PHP programlarımızda Form'da hangi metod
kullanılmış olursa olsun, işleyici programın iki duruma da elverişli olmasını sağlamaktır.
Aşağıda böyle bir örnek verilmiştir:
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
</HEAD>
12
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<BODY>
<?php
$form_bilgisi = ( isset($HTTP_POST_VARS ) )
? $HTTP_POST_VARS : $HTTP_GET_VARS;
foreach ($form_bilgisi as $anahtar=>$deger ) {
if ( gettype ($deger ) == "array" ) {
print ("$anahtar == <br>\n");
foreach ( $deger as $yeni_degerler )
print (".. $yeni_degerler<br>");
}
else {
print ("<b>$anahtar = $deger <br>\n");
}
}
?>
</BODY>
</HTML>
● Örnek: (1.Sınav Uygulama Sorusu)
İki tane sayfa olsun: giris.html ve anasayfa.php . Giriş sayfasında kullanıcı adı ve
şifre sorulsun, şayet doğru kullanıcı girişi yapılırsa anasayfa ve içeriği ekrana gelsin.
Yanlış giriş yapılırsa anasayfada uyarı mesajı versin.
giris.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="anasayfa.php">
<label>Kullanici:
<input type="text" name="user" />
</label>
<p>
<label>Sifre:
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<input type="password" name="password" />
</label>
</p>
<p>
<label>
13
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<input type="submit" name="Submit" value="G&#304;R&#304;&#350;" />
</label>
</p>
</form>
</body>
anasayfa.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<?php
if ( $user =="senay" && $password =="1234") {
echo ("Sifreli alana hosgeldiniz...<br/>");
echo ("Burada anasayfa içeriği yer almaktadır<br/>");
}
else {
echo ("Kullanici kimligi yanlis!");
}
?>
</body>
</html>
14
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● Örnek: (1.Sınav Uygulama Sorusu)
Ekrana 1'den 40'a kadar olan sayıları iki sütunlu düzgün bir tablo içerisinde
yazdırılsın.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<?php
print("<table border=\"1\">");
for ($i = 1 ; $i <= 20 ; $i++ )
{
print("<tr>");
$x=$i + 20;
print("<td>" . $i . "</td>" . "<td>" . $x . "</td>");
print("</tr>");
}
print("</table>");
?>
</body>
</html>
15
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● Örnek: (1.Sınav Uygulama Sorusu)
Üç kenarı text kutularına girilen bir üçgenin nasıl bir üçgen olduğunu bulup
(eşkenar , çeşitkenar , ikizkenar ) ekrana yazdıran php programı. (Not: Eğer girilen
kenarlardan üçgen oluşmaz ise sonuç kısmına “üçgen oluşmaz” mesajı yazdırılacak)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="soru9.php">
A kenarı:
<input type="text" name="a" id="a" />
<p>B kenarı:
<input type="text" name="b" id="b" />
</p>
<p>C kenarı:
<input type="text" name="c" id="c" />
</p>
<p>
<input type="submit" name="hesapla" id="hesapla" value="KONTROL ET" />
</p>
</form>
<?php
$ikizkenar="false";
if ((isset($hesapla)) && ( $a=="" || $b=="" || $c=="") )
{
print("Bir yada birden fazla boş değer bıraktınız!");
}
if (isset($hesapla) && ($a!="" && $b!="" && $c!="" ))
{
$ikizkenar="false";
16
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
if(($b-$c )<0 ) { $kontrol1=($b-$c)*(-1); } else { $kontrol1=$b-$c ;}
if(($b-$a )<0 ) { $kontrol2=($b-$a)*(-1); } else { $kontrol2=$b-$a ;}
if(($a-$c )<0 ) { $kontrol3=($a-$c)*(-1); } else { $kontrol3=$a-$c; }
if ((($kontrol1 < $a) && ($a < ($b+$c))) && (($kontrol2 < $b) && ($b < ($b+$a))) &&
(($kontrol3 < $c) && ($c < ($a+$c))))
{
// Üçgen oluşmuş ise.....
if($a==$b && $a==$c && $b==$c)
{
print("<table border=1><tr align=center>");
print("<td><b>A</b></td><td><b>B</b></td><td><b>C</b></td><td><b>Sonuç</b></
td></tr>");
print("<tr><td>" . $a . "</td>");
print("<td>" . $b . "</td>");
print("<td>" . $c . "</td>");
print("<td> Eşitkenar </td></tr></table>");
}
if(($a != $b) && ($a != $c) && ($b != $c))
{
print("<table border=1><tr align=center>");
print("<td><b>A</b></td><td><b>B</b></td><td><b>C</b></td><td><b>Sonuç</b></
td></tr>");
print("<tr><td>" . $a . "</td>");
print("<td>" . $b . "</td>");
print("<td>" . $c . "</td>");
print("<td> Çeşitkenar </td></tr></table>");
}
if(($a == $b) && ($a != $c))
{
$ikizkenar="true";
print("a eşit b");
}
if(($a == $c) && ($a != $b))
17
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
{
$ikizkenar="true";
print("a eşit c");
}
if(($b == $c) && ($b != $a))
{
$ikizkenar="true";
print("b eşit c");
}
if($ikizkenar=="true")
{
print("<table border=1><tr align=center>");
print("<td><b>A</b></td><td><b>B</b></td><td><b>C</b></td><td><b>Sonuç</b></
td></tr>");
print("<tr><td>" . $a . "</td>");
print("<td>" . $b . "</td>");
print("<td>" . $c . "</td>");
print("<td> ikizkenar </td></tr></table>");
$ikizkenar="false";
}
}
// Üçgen oluşmamış ise....
else
{
print("<table border=1><tr align=center>");
print("<td><b>A</b></td><td><b>B</b></td><td><b>C</b></td><td><b>Sonuç</b></
td></tr>");
print("<tr><td>" . $a . "</td>");
print("<td>" . $b . "</td>");
print("<td>" . $c . "</td>");
print("<td> Üçgen Oluşmaz </td></tr></table>");
}
}
18
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
?>
</body>
</html>
● Örnek: GET yöntemiyle çalışan bir Form uygulaması
19
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<? if ($_GET ) { ?>
<table align="center" width="50%" border="1">
<tr>
<td><strong>Personelin:</strong></td>
<td><strong>Değerler:</strong></td>
</tr>
<? foreach ( $_GET as $isim => $deger ) { ?>
<tr>
<td><?=$isim?></td>
<td><?=$deger?></td>
</tr>
<? } ?>
</table>
<? } else { ?>
<form action="" method="get">
<table width="50%" border="0" align="center">
<tr>
<td colspan="2">
<div align="center"><strong>FORM</strong>
</div>
</td>
</tr>
<tr>
<td>Adı:</td>
<td><input type="text" name="adi" id="adi" /></td>
</tr>
<tr>
<td>Soyadı:</td>
20
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<td><input type="text" name="soyadi" id="soyadi" /></td>
</tr>
<tr>
<td>Meslek:</td>
<td><select name="meslek" id="meslek">
<option value="ogrenci">Öğrenci</option>
<option value="muhendis">Mühendis</option>
<option value="programci">Programcı</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Gönder" /></td>
</tr>
</table>
</form>
<? } ?>
</body>
</html>
● Örnek: POST yöntemiyle çalışan bir Form uygulaması
21
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<? if ( ! $_POST ) { ?>
<form name="form1" method="post" action="<?=$PHP_SELF?>">
<table width="50%" border="0" align="center">
<tr>
<td colspan="2"><div align="center">FORM</div></td>
</tr>
<tr>
<td>Adınız:</td>
<td><input name="adi" type="text" id="adi" /></td>
</tr>
<tr>
<td>Soyadınız:</td>
<td><input name="soyadi" type="text" id="soyadi" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Gönder"/></td>
</tr>
</table>
</form>
<? }
else {
if ( empty($adi) || empty($soyadi) ) {
echo "Form alanında boş yerler bıraktınız!";
}
else {
echo "Merhaba: <b>$adi $soyadi </b>";
}
22
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
}
?>
</body>
</html>
● Örnek: E-Mail gönderme örneği
<html>
<head>
<meta http-equiv="Content-Language" content="tr">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1254">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9">
<title>.:: Webmail ::. </title>
</head>
<body>
<center><br><br>
<!-- Programda hicbir değişiklik yapmaniza gerek yok. Ama kendinize göre HTML
kisminda degisiklik yapabilirsiniz -->
<?php
//-----> Email adreslerinin dogru yazilip yazilmadigi kontrol ediliyor.
function adres_kontrol($adres)
{
if(eregi("^[_a-z0-9-]+(\.[a-z0-9-]+)*@([0-9a-z][0-9a-z-]*[0-9a-z]\.)+[a-z]{2}[mtgvu]?$",
$adres, $xgonemail) and !empty($adres)){return "e";}
else {return "h";}
}
function form_goster()
{
global $gonderen,$alici,$konu,$mesaj,$hata_mesaji;
$mesaj=eregi_replace("[\]","",$mesaj);
echo "
<form action=\"webmail.php\" method=\"post\">
<table border=1 width=500>
<tr>
<td colspan=2 align=center><font color=red><b>".$hata_mesaji."</b></font></td>
23
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
</tr>
<tr>
<td width=50%>Gönderenin Email Adresi:</td>
<td width=50%><input type=text name=gonderen value=\"".$gonderen."\"
size=38></td>
</tr>
<tr>
<td>Alıcının Email Adresi:</td>
<td><input type=text name=alici value=\"".$alici."\" size=38></td>
</tr>
<tr>
<td>Konu (Subject):</td>
<td><input type=text name=konu value=\"".$konu."\" size=38></td>
</tr>
<tr>
<td colspan=2 align=center>
<textarea cols=50 rows=12 name=mesaj>".$mesaj."</textarea>
<input type=submit value=\"Mesaji Gönder\">
<input type=hidden name=islem value=gonder>
</td>
</tr>
</table><br>
</form>
";
}
//-----> Ana program
if($islem=="gonder")
{
if (adres_kontrol($gonderen)=="h" or adres_kontrol($alici)=="h")
{
$hata_mesaji="Email adreslerinde bir hata var!";
form_goster();
}
else
24
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
{
if(empty($konu) or empty($mesaj))
{
$hata_mesaji="Konu ve/veya mesajı boş bırakamazsınız";
form_goster();
}
else
{
$mesaj=eregi_replace("[\]","",$mesaj);
@mail($alici,$konu,$mesaj,"From: ".$gonderen);
echo "<br><br><br><font color=\"#000099\" size=2><b>Emailiniz başarıyla
gönderilmiştir.</b></font>";
}
}
}
else
{
form_goster();
}
?>
</center>
</body>
</html>
25
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
Açıklamalar:
> eregi() Fonksiyonu:
Bir karakter katarı içinde aranılan karakter katarı bulunduğu taktirde doğru,
bulamadığı taktirde yanlış bir değer verir.
Fonksiyonun aradığımız eşleştirmeyi yapması halinde, buradaki $degisken'in
değeri doğru(TURE), yapamaması halinde yanlış(FALSE) olacaktır.
Eşleştirme sırası aşağıdaki şekilde oluşturulur. $kaynak, eşleştirilecek sıralamanın
içinde aranacağı değeri tutan değişkendir.
Fonksiyonun bir diğer özelliği, eğer eşleştirilecek sıralamayı gruplar halinde
verirsek, kaynakta yapacağı eşleştirme olursa, buna uygun değerleri bir dizi değişkene
yazabilmesidir; istersek bir parametre olarak bu yeni değişkenin almasını istediğimiz
adı veririz; böylece eşleştirme sonucu bulunan değerler kaydedilmiş olur.
Eregi fonksiyonu büyük/küçük harf ayrımı yapmaz.
Kullanım:
<?php $degisken = eregi("eşleştirilecek_sıra", $kaynak, $yeni_değişken); ?>
E-Posta Kontrolü:
<?
function eposta_kontrol($eposta) {
if (!eregi ("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}$",$eposta))
die ("E-Posta Adresiniz Geçersiz");
}
?>
> ereg_replace() ve eregi_replace fonksiyonları:
Metin içinde istenilen bir kelimeyi bulup değiştirmek için kullanılır. eregi_replace()
işlevinin ereg_replace() işlevinden farkı büyük-küçük harf ayrımı yapmamasıdır.
<?php
$string = "Test yazısı";
echo str_replace("sı", " örneği", $string);
//Test yazı örneği
echo ereg_replace("sı", "örneği", $string);
//Test yazı örneği
?>
Yukardaki örnekte görüldüğü gibi hızlı ve kullanışlı bir fonksiyondur.
Mesela bir yazı içindeki harf ile yazılmış numaraları rakamlara çevirelim:
<?php
$numara = '4';
$string = "Yazı içinde geçen dört.";
$string = ereg_replace('dört', $numara, $string);
echo $string;
// Çıktı: Yazı içinde geçen 4.
?>
26
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● Örnek: Dosya gönderme (Upload)
<HTML>
<HEAD>
<TITLE>PHP'de Dosya Gönderme</TITLE>
<meta http-equiv=\"content-type\" content=\"text/html; charset=ISO-8859-9\">
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=windows-1254\">
</HEAD>
<?php
$dosya_dizin = "C:\www\upload"; // Web Sunucuda dosyanın kaydedileceği dizin
$dosya_url = "http://localhost/upload/";
if ( isset ( $dosya_gonder )) {
print ("<b>Yol:</b>".$dosya_gonder. "<br>\n"); // Sunucuda Dosyanın kaydedileceği
gecici dizin
print ("<b>Adı:</b>". $dosya_gonder_name. "<br>\n"); // Dosyanın ismi
print ("<b>Boyut:</b>". $dosya_gonder_size. "<br>\n"); // Dosyanın boyutu
print ("<b>Tür:</b>". $dosya_gonder_type. "<br>\n"); // Dosyanın türü
copy ( $dosya_gonder, $dosya_dizin. "/".$dosya_gonder_name) or die ("Dosya
kopyalanamıyor!");
if ( $dosya_gonder_type == "image/gif" ||$dosya_gonder_type == "image/pjpeg" )
{
print ("<img src=".$dosya_url."/".$dosya_gonder_name.">"); }
}
?>
</BODY>
<FORM ENCTYPE="multipart/form-data" ACTION="<?=$PHP_SELF?>"
METHOD="POST">
<!-- Dosyanın boyutunu sınırlandırıyoruz.... -->
<INPUT TYPE="hidden" NAME="MAX_FILE_SIZE" VALUE="951200">
<INPUT TYPE="file" NAME="dosya_gonder"><BR>
<INPUT TYPE="SUBMIT" VALUE="Dosya Yolla!">
</FORM>
</BODY>
</HTML>
27
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
die() Fonksiyonu:
Bir PHP fonksiyonunun kendisinden beklenen işi yapamaması halinde oracıkta
durdurulmasını die() komutu sağlar. "Öl!" anlamına gelen bu fonksiyona ekranda
görüntülenmesini istediğimiz bir metni parametre olarak verebiliriz. Bu bölümdeki
örnekler bu komutla birlikte şöyle yazılabilir:
$dosya = fopen( "bir_dosya.txt" , `a` ) or die ("Dosya açılamıyor!") ;
● Örnek: PHP'de bir menüye bağlı olarak içeriğin değiştirilmesi
Menüdeki linkler şu şekilde olacak:
<a href="http://www.deneme.com/?pid=anasayfa">ANA SAYFA</a>
<a href="http://www.deneme.com/?pid=urunler">ÜRÜNLER</a>
<a href="http://www.deneme.com/?pid=referanslar">REFERANSLAR</a>
<a href="http://www.deneme.com/?pid=iletisim">İLETİŞİM</a>
İçerik kısmında şu kodlar yer alacak:
<?php
switch ($_GET["pid"])
{
case "anasayfa": include ("index.html"); break;
case "urunler": include ("urunler.html"); break;
case "referanslar": include ("referanslar.html"); break;
case "iletisim": include ("iletisim.html"); break;
default: include ("index.htm");
}
28
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
>Diğer bir seçenek de şöyle olabilir:
Menüdeki linkler şu şekilde olacak:
<a href="http://www.deneme.com/?pid=1">ANA SAYFA</a>
<a href="http://www.deneme.com/?pid=2">ÜRÜNLER</a>
<a href="http://www.deneme.com/?pid=3">REFERANSLAR</a>
<a href="http://www.deneme.com/?pid=4">İLETİŞİM</a>
İçerik kısmında şu kodlar yer alacak:
<?php
switch ($_GET["pid"])
{
case 1 : include ("index.html"); break;
case 2 : include ("urunler.html"); break;
case 3 : include ("referanslar.html"); break;
case 4 : include ("iletisim.html"); break;
default: include ("index.htm");
}
>Diğer bir seçenek de şöyle olabilir:
1.Menü:
<a href="http://www.deneme.com/?pid=1">ANA SAYFA</a>
<a href="http://www.deneme.com/?pid=2">ÜRÜNLER</a>
<a href="http://www.deneme.com/?pid=3">REFERANSLAR</a>
<a href="http://www.deneme.com/?pid=4">İLETİŞİM</a>
2.Menü:(Ürünler sayfasında ikinci bir menü olsun)
<a href="http://www.deneme.com/?pid=1&uruncid=5">YAZILIM</a>
<a href="http://www.deneme.com/?pid=1&uruncid=6">DONANIM</a>
<a href="http://www.deneme.com/?pid=1&uruncid=7">NETWORK</a>
Ana Sayfanın içerik kısmında şu kodlar yer alacak:
<?php
switch ($_GET["pid"])
{
case 1 : include ("index.html"); break;
case 2 : include ("urunler.html"); break;
29
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
case 3 : include ("referanslar.html"); break;
case 4 : include ("iletisim.html"); break;
default: include ("index.htm");
}
Ürünler Sayfanın içerik kısmında şu kodlar yer alacak:
<?php
switch ($_GET["uruncid"])
{
case 5 : include ("urunler/yazilim.html"); break;
case 6 : include ("urunler/donanim.html"); break;
case 7 : include ("urunler/network.html"); break;
}
● Örnek: PHP'de örnek bir Formda , form elemanlarına girilen değerlerin
kontrol edilmesi
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
</head>
<body>
<?
$hata="";
function kontrol()
{
global $adi , $soyadi , $meslek , $hata;
// Hata mesajlari ayarlaniyor
if (empty($adi))
$hata = $hata. "Adi alanini bos biraktiniz<br>";
if (empty($soyadi))
$hata = $hata. "Soyadi alanini bos biraktiniz<br>";
if (empty($meslek))
$hata = $hata. "Meslek alanini bos biraktiniz<br>";
// Fonksiyonun geri dönüs degeri ayarlaniyor
if ( empty($adi) or empty($soyadi) or empty($meslek))
return 0;
if ( isset($adi) and isset($soyadi) and isset($meslek))
30
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
return 1;
}
if ($_GET && kontrol() ) { ?>
<table align="center" width="50%" border="1">
<tr>
<td><strong>Personelin:</strong></td>
<td><strong>Degerler:</strong></td>
</tr>
<? foreach ( $_GET as $isim => $deger ) { ?>
<tr>
<td><?=$isim?></td>
<td><?=$deger?></td>
</tr>
<? } ?>
</table>
<? } else { ?>
<form action="" method="get">
<table width="50%" border="0" align="center">
<tr>
<td colspan="2">
<font color="#FF0000">
<?=$hata?>
</font>
</td>
<tr>
<td colspan="2">
<div align="center"><strong>FORM</strong>
</div>
</td>
</tr>
<tr>
<td>Adi:</td>
<td><input type="text" name="adi" id="adi" /></td>
</tr>
<tr>
<td>Soyadi:</td>
<td><input type="text" name="soyadi" id="soyadi" /></td>
</tr>
<tr>
<td>Meslek:</td>
<td><select name="meslek" id="meslek">
31
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<option value="">Bir deger seçin...</option>
<option value="ogrenci">Öğrenci</option>
<option value="muhendis">Mühendis</option>
<option value="programci">Programcı</option>
</select>
</td>
</tr>
<tr>
<td></td>
<td><input type="submit" value="Gönder" /></td>
</tr>
</table>
</form>
<? } ?>
</body>
</html>
</body>
</html>
32
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
DOSYA - DİZİN İŞLEMLERİ
● Örnek: PHP'de bir dosyanın oluşturulması ve kopyalanması
<?php
$dizin="C:\www\dosya-dizin";
if ( ! $_GET ) {
@touch($dizin."\dosya.txt") || die ("Dosya oluşturulamadı");
echo "Dosya oluşturuldu. Şimdi bu dosyayı <b> C:\ </b> içerisine kopyalamak
için <a href='?git=copy'> tıklayınız </a>";
}
else {
copy($dizin."\dosya.txt","C:\dosya.txt") || die("Dosya kopyalanamadı");
echo "Dosya kopyalandı";
}
?>
● Örnek: Bir html dosyanın oluşturulması
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<?php
$dosya="C:\www\dosya-dizin\dosya.html";
$icerik="<html>
<head>
<title>Dosya oluşturma</title>
</head>
<body bgcolor='red'>Bu dosyayı ben oluşturdum...
</body>
</html>";
$bag = @fopen($dosya , "w");
33
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
if ( ! $bag ) {
echo "Dosyaya baglanılamadı";
exit();
}
if( fputs($bag , $icerik) ) {
echo "Dosya oluşturuldu. İçerik yazıldı";
}
else
{
echo "Dosyanın içeriği yazılmadı";
}
fclose($bag);
?>
</body>
</html>
● Örnek: Bir form'dan alınan bilgilerle bir dosyasının oluşturulması
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9" />
<title>Untitled Document</title>
</head>
<body>
<?php if (! $_POST ) : ?>
<form action="" method="post">
34
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
<table width="50%" border="0" align="center">
<tr>
<td valign="top"> Dosya İçeriği</td>
<td>
<textarea name="icerik" cols="22" rows="7"></textarea>
</td>
</tr>
<tr>
<td>Uzantı</td>
<td><input name="isim" type="text" value="dosya.php" size="10" /></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><input type="submit" value="Gönder" /></td>
</tr>
</table>
<?php
else:
$dosya="C:\www\php\dosya-dizin\\" . $isim ;
$degis= array ("\\" =>"" );
$bag = @fopen($dosya , "w");
if ( ! $bag ) {
echo " Dosyaya bağlanamadım $dosya";
exit();
}
if (fputs($bag , strtr($icerik , $degis)) ) {
echo "Dosya oluşturulup içerik yazıldı";
}
else {
echo "Dosyanın içeriği yazılamadı";
}
fclose($bag);
endif;
?>
35
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
</body>
</html>
● Örnek: Basit bir sayac uygulaması
<body>
<?php
$dosya="C:\www\dosya-dizin\sayac.txt";
[email protected] ($dosya , "r");
if (!$ac) {
echo "Veritabanına ulaşılamadı";
exit();
}
$sayac = fread( $ac , filesize($dosya));
fclose($ac);
$sayac++;
?>
<font size="+6">
Ziyaretci sayısı : <b><?=$sayac?></b><br />
Ip Numaranız:<?=$REMOTE_ADDR?>
</font>
<?php
$ac2 = @fopen ($dosya , "w");
fputs($ac2 , $sayac);
fclose($ac2);
?>
</body>
36
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● Örnek: Konuk Defteri uygulaması
index.php
<?php
if ( $_POST ) :
// Form dolduruldmuş ise
echo ("
<HTML>
<HEAD>
<TITLE>PHP'de Misafir Defteri</TITLE>
<meta http-equiv='content-type' content='text/html; charset=ISO-8859-9'>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1254'>
</HEAD>
<BODY>
<P><font size='3' class='s4' face='Arial, Helvetica'>
");
37
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
$dosya_adi = "mesajlar.txt";
if (file_exists("$dosya_adi")) {
$yazilacak_dosya = fopen($dosya_adi,'a');
}
else {
$yazilacak_dosya = fopen($dosya_adi,'w');
}
foreach ($HTTP_POST_VARS as $anahtar=>$deger ) {
$yeni_anahtar = strtoupper($anahtar);
print ("$yeni_anahtar: $deger<br>");
$metin = "$yeni_anahtar: $deger<br>";
fputs($yazilacak_dosya, $metin);
}
fputs($yazilacak_dosya, date("D d M Y h:i:s"));
fputs($yazilacak_dosya, "<br>\n");
fputs($yazilacak_dosya, "<center>
<img src='nokta.gif' width=100% height=1 border=0></center>\n");
fclose($yazilacak_dosya);
echo ("
<HTML>
<HEAD>
<TITLE>PHP'de Misafir defteri</TITLE>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1254'>
</HEAD>
<BODY>
<P><font size='3' class='s4' face='Arial, Helvetica'>
<center><img src='nokta.gif' width=100% height=1 border=0></center>
Sayın: $adi<br>
Defterimi imzaladığınız için teşekkür ederim</P>
<p>Ana Sayfaya Dönmek için <A HREF=\"index.htm\"> tıklayın</A><BR>
Mesajları okumak için<A HREF=\"mesajlar.php\"> tıklayın</A>
</BODY>
</HTML>
");
38
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
else :
echo ("
<HTML>
<HEAD>
<TITLE>PHP'de Formlar</TITLE>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1254'>
</HEAD>
<BODY>
<FORM ACTION=\"$PHP_SELF\" METHOD=\"POST\">
<P><font size='3' face='verdana, Arial, Helvetica'>
Defteri imzalamadan okumak için <a href='mesajlar.php'>
burayı tıklayın</a></FONT></P>
<P><font size='3' face='Arial, Helvetica'>
Adınız, Soyadınız: <br><INPUT TYPE=\"TEXT\" NAME=\"adi\"><BR>
Elektronik Adresiniz: <br><INPUT TYPE=\"TEXT\" NAME=\"adres\"><BR>
Mesajınız:<BR>
<TEXTAREA NAME=\"mesaj\" ROWS=10 COLS=30
WRAP=virtual></TEXTAREA>
<BR><BR><BR>
<INPUT TYPE=\"SUBMIT\" VALUE=\"Defteri imzala!\">
<INPUT TYPE=\"RESET\" VALUE=\"Tümünü sil!\">
</FORM>
</BODY>
</HTML>
");
endif;
?>
mesajlar.php
<html>
<head>
<title>Misafir Defteri</title>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-9">
39
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
</head>
<style type="text/css">
<!--//
.s5
{font-size: 20px; font-family: verdana,arial,helvetica}
.s4
{font-size: 18px; font-family: verdana,arial,helvetica}
.s3
{font-size: 13px; font-family: verdana,arial,helvetica; letter-spacing: 1px}
//-->
</style>
<body>
<font size="3" class="s4" face="Verdana, Arial, Helvetica">
<p>
<?php
if (file_exists("mesajlar.txt")){
include("mesajlar.txt");
}
?>
<br><br>
<font size="3" class="s4" face="Arial, Helvetica">
<a href="index.php">Defterimi imzalayın</a></font>
</font>
</BODY>
</HTML>
40
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
● Örnek: Sayaç Uygulaması
<?
# set a session ID
session_start();
if (!$PHPSESSID) {
$thefile = file("count.txt");
$count = implode("", $thefile);
$count++;
$myfile = fopen("count.txt","w");
fputs($myfile,$count);
fclose($myfile);
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Sayac Uygulaması</title>
</head>
<body bgcolor="Black" text="Silver">
Ismet Aktar Meslek Lisesi.
<p>Ziyaretci sayisi:
<?
$thefile = file("count.txt");
$count = implode("", $thefile);
print $count;
?>
kisi.</p>
</body>
</html>
41
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
DİZİN İŞLEMLERİ
Kullanılan Komutlar:
mkdir
: Dizin oluşturur
rmdir
: Dizin siler
is_dir
: İlgili nesnenin dizin olduğunu gösterir
is_file
: İlgili nesnenin dosya olduğunu gösterir
opendir : Belirli konumdaki bir dizini açar
readdir : Belirli konumdaki bir dizinden bir nesne okur
● Örnek: İşlem yapılan dizin içinde klasör ve dosyaların listelenmesi
<?php
$dir = @opendir("C:\www");
while( ($dizin = readdir($dir) ) != false )
{
echo " $dizin <br/>";
}
closedir($dir);
?>
● Örnek: İşlem yapılan dizin içinde klasör ve dosyaların listelenmesi.
Burada yukarıdaki örnekten faklı bir yöntem kullanılmıştır.
<?php
$dizin = dir("C:\www");
while( ($klasor = $dizin->read( ) )
{
echo " $klasor <br/>\n";
}
$dizin->close( );
?>
● Örnek: Üst kısımda klasörlerin alt kısımda ise dosyaların listelenmesi.
<body>
<strong>Dizinler</strong><br />
<?php
42
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
$dizin = dir ("C:\www");
while ( $klasor = $dizin->read() ) // dizin okumak için faklı bir yöntem
{
if ( is_dir($klasor))
echo "<a href=$klasor> $klasor </a> <br> \n" ;
}
$dizin->close();
?>
<strong>Dosyalar</strong><br />
<?php
$dizin2 = dir ("C:\www");
while ( $dosya = $dizin2->read() ) // dizin okumak için faklı bir yöntem
{
if ( is_file($dosya))
echo "<a href=$dosya> $dosya </a> <br> \n" ;
}
$dizin2->close();
?></body>
● Örnek:
Pascal üçgeni, binom açılımındaki katsayıları bulmaya yarar. Binom açılımı, iki sayının
toplamının üslü ifadesinin açılımıdır. Buna göre N değeri girilen bir Polinomun binom
açılımındaki katsayılarını şekil - 7’da olduğu gibi pascal üçgeni şeklinde ekrana
yazdıran PHP programını yazınız? (Katsayı hesabı için fonksiyon kullanınız)
43
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
Çözüm:)
<html >
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
N değeri:
<label>
<input type="text" name="n" id="n" />
</label>
<p>
<label>
<input type="submit" name="Submit" id="button" value="HESAPLA" />
</label>
</p>
</form>
<?php
function hesap($n,$k)
{
$n_faktoriyel = 1;
$k_faktoriyel = 1;
$n_eksi_kfaktoriyel = 1;
// Faktoriyel hesapları yapılıyor
for($i=1;$i<=$n;$i++)
{
$n_faktoriyel = $n_faktoriyel * $i;
}
for($j=1;$j<=$k;$j++)
{
$k_faktoriyel=$k_faktoriyel * $j;
}
for($z=1;$z<=($n-$k);$z++)
44
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
{
$n_eksi_kfaktoriyel=$n_eksi_kfaktoriyel * $z;
}
$sonuc = $n_faktoriyel / ($k_faktoriyel * $n_eksi_kfaktoriyel);
return $sonuc;
}
if ($_POST)
{
echo "<table border=1>";
print ("N değeri:" . $n);
for( $y=0 ; $y<$n+1 ; $y++ )
{
echo "<tr>";
for( $x=0 ; $x<$y+1 ; $x++ )
{
echo "<td>";
$yaz = hesap($y,$x);
print ($yaz);
echo "</td>";
}
echo "</tr>";
}
echo "</table>";
}
?>
</body>
</html>
45
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
II.DÖNEM
Örnek) Sepet Uygulaması : Bu uygulamada sepet session ile yapılmıştır.
Uygulamada bulunan dosyalar şunlardır:
urunler.inc
<?Php
$urunler = array('elma' => 10 ,
'armut' => 20 ,
'portakal' => 30 ,
'muz' => 40 ,
'üzüm' => 50 ,
'limon' => 60 ,
'mandalina' => 70 ,
'greyfurt' => 80 ,
'çilek' => 90 ,
'portakal' => 100);
?>
class.inc
<?php
class Sepet
{
public $sepet_ici=array();
function Sepet()
{
$this->sepet_ici=$_SESSION['sepet'];
}
function ekle($urun_ad,$miktar)
{
46
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
$_SESSION['sepet'][$urun_ad] = $miktar;
$this->sepet_ici=$_SESSION['sepet'];
}
function sil($urun_ad)
{
if(count($this->sepet_ici)>0)
{
unset($_SESSION['sepet'][$urun_ad]);
$this->sepet_ici=$_SESSION['sepet'];
}
}
function urun_listesi()
{
return $this->sepet_ici;
}
function urun_sayisi()
{
return count($this->sepet_ici);
}
}
?>
urunler_list.php
47
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
sepet.php
48
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
49
Bilişim Teknolojileri Alanı – İnternet Programcılığı
Durhan GABRALI - 2008
II.Dönem 1.Sınav Soruları
Teorik sorular
S1) PHP’de Class(Sınıf) oluşturmanın mantığı nedir , bir Class nasıl oluşturulur biçimini yazınız , oluşturulan
Class’lar program içerisinde nasıl kullanılır yazınız?
S2) PHP’de Class(Sınıf) içerisinde erişim bakımından kaç farklı türde değişken tanımlayabiliriz, isimlerini
yazarak kısaca açıklayınız , bu konuda PHP4 ile PHP5 arasındaki fark nedir yazınız?
S3) Aşağıda Class’larda kullanılan bir takım metotlar verilmiştir. Bunları açıklayınız?
__destruct
__call
__contruct
__toString
S4) PHP’de Cookie oluşturmak, süresini ayarlamak, Cookie’yi okumak işlemleri nasıl yapılır açıklayınız , kısa
bir örnek veriniz?
S5) PHP’de Session oluşturmak , Session’daki verileri okumak , Session’u yok etmek işlemleri nasıl yapılır
açıklayınız , kısa bir örnek veriniz ?
Uygulama soruları
S6)
a) Login.php isminde bir sayfa tasarlanacak. Bu sayfada kullanıcı
adı ve şifre doğru girildiği taktirde index.php sayfasına
yönlendirme yapılacak, yanlış girilirse login.php üzerinde
“Şifre yanlış girildi veya kullanıcı adı yanlış” şeklinde ilgili
mesajlarla kullanıcı uyarılacak ?
(kullanıcı adı: okul , şifre:1234 olsun)
b) Kullanıcı siteye ilk defa giriyorsa login.php sayfasının üst
kısmında “ Siteye ilk defa giriş yapıyorsunuz”
şeklinde bir mesaj çıkacak. Kullanıcı siteye 1 saat içinde ikinci
kez giriş yapmaya çalıştığında , site kullanıcıyı
tanıyacak ve login.php sayfasında en üstte “Hoşgeldin :
Kullanıcı adı . Sitemize daha önce giriş yaptınız”
şeklinde bir mesaj çıkacak ve “Kullanıcı Adı” metin kutusunda
kullanıcı adı gözükecek.
c) index.php sayfasına sadece login sayfasından giriş yapıldığı taktirde erişilebilecek, login yapmadan sayfa
açılmaya çalışılırsa kullanıcılar “Giriş yapmalısınız” diyene uyarılacak ve [Giriş için tıklayınız…] şeklinde
bir link konulacak.
d) index.php sayfasının menülerinde Geometri isminde bir link olacak ve buraya tıklanınca geometri.php
sayfası index.php içerisinde açılacak. Bu sayfada seçime bağlı olarak ; üçgen , kare ve dairenin alan hesapları
girilen değerlere göre yapılacak. Alan hesabında Sınıf kullanılacak.
(Geometri isminde bir sınıf tanımlansın ve bu sınıfın içerisinde ilgili alan hesaplarını yapan işlevler olsun)
Not: Cevaplar daha sonra buraya yazılacaktır...
50
Download

php_ornekler - İsmet Aktar Teknik ve Endüstri Meslek Lisesi