PHP Kurulumu ve PHP'ye Giriş Dersleri

By MaTRiX

Üye
30 Eyl 2006
77
3
Not:alıntıdır

ASP VE PHP İÇİN ORTAK GİRİŞ


Web sayfalarında sıkça rastladığımız; ziyeretçi defteri* anket* toplist gibi programlar* server tabanlı programlama dilleri kullanılarak oluşturulmuştur. Tüm alışveriş siteri* arama motorları* müzayede ve benzeri siteler de yine bu türde uygulamalar kullanılarak yapılmıştır. Server tabanlı programlama dilinin adı ne olursa olsun temelde akıllı web siteleri yapmak için yaratılmışlardır.
PHP (Personel Home Page-Hypertext Preprocessor) ve ASP (Active Server Pages)'de server tabanlı script (betik) dilleridir. PHP ve ASP'nin temel ortak özellikleri HTML içine yazılmalarıdır. Sayfa uzantısı .php veya .asp olan bir dosya sunucudan istendiğinde* sunucu bu sayfayı PHP veya ASP yorumlayısına yönlendirir. Yorumlayıcı; <% %> işaretleri arasında kalan PHP veya ASP kodlarını yorumlar* yapılması gerekenleri yapar ve ziyaretçinin tarayıcısına sonucu gönderir.
PHP'nin ve ASP'nin hikayesine* kim tarafından ilk ne zaman geliştirildiği gibi konulara değinmeyeceğim. Amacım ASP ve PHP'yi eşzamanlı olarak aynı örnekler ile anlatmak. Bu iki dilden hangisinde uzmanlaşmak isteyeceğinize de bu dersleri takip ederek karar verebilirsiniz. Burada PHP'yi veya ASP'yi baştan anlatmaktansa* sizlere anlatılmışların yolunu göstermeyi ve örneklerle bu dillere hakim olmanızı sağlamayı hedefledik. Programlama dilleri öğrenen insanların belki de en büyük sıkıntısı uygulama geliştirmektir. Birlikte geliştireceğimiz örnekler sayesinde sizlere özellikle bu konuda yardımcı olmayı hedefliyorum.

 

By MaTRiX

Üye
30 Eyl 2006
77
3
Başlamak için neler gerekli?

Herşeye başlamadan önce sizden PHP derleyicisini indirmenizi ve bilgisayarınızı PHP ve MySql anlar hale getirmenizi istiyorum.
PHP için* http://www.php.net/distributions/php...-installer.exe adresinden PHP derleyicisini ve MySql için* http://www.mysql.com/downloads adresinden mysql-shareware-3.22.34-win.zip isimli dosyayı indirin.
Windows altında Mysql kurulumu;
Kapsamlı programlar geliştirmek için* sisteminizde bir veritabanı kurmalısınız. Php ile herhangi bir veri tabanına bağlanabilirsiniz. Ancak en sık kullanılan mysql'dir. Hatta php mysql'i varsayılan olarak kabul eder ve ayarları otomatik algılar. Zip dosyasını herhangi bir klasörde açın ve Setup.exe dosyasına tıklarak MySql kurulumunu başlatın. Kurulum tamamlandıktan sonra; Başlat -> Programlar -> MS-DOS Komut İstemi' ne tıklayarak MS-DOS'u çalıştırın. Şimdi aşağıdaki komutları sırasıyla girin;

cd..
cd/mysql/bin
mysqld-shareware
mysqlshow
mysqlshow -u root mysql
mysqladmin version status proc
MySql kurulumu tamamlandı ve çalışıyor. Sisteminizi yeniden başlattığınızda Mysql'i tekrar çalıştırmalısınız. Bunun için* doğrudan C:\mysql\bin\mysqld.exe dosyasını kullanabilirsiniz.
Windows altında PHP Kurulumu;
Php kurulumu için herhangi birşey yapmamıza gerek yok. Tabiki siteminizde; PWS* IIS veya Xitami serverlarından biri kurulu olmalıdır. Burada kuracağımız PHP sürümü* Apache ile çalışmaz. İndirdiğiniz* php404pl1-installer.exe dosyasınını çalıştırın ve kurulumu başlatın. Tüm ayarları varsayılan olarak bırakın ve kurulumu tamamlayın. PHP'nin doğru olarak kurulup kurulmadığını test etmek için* notepad'i açın ve aşağıdaki kodları yazdıktan sonra dosyayı serverınızın kök dizinine info.php adıyla kaydedin.
<?PHP
phpinfo();
?>
Bu dosyayı http://localhost/info.php adresine giderek çağırın. Karşınıza "PHP Version 4.0.4pl1" yazılı PHP bilgi sayfası geldiyse kurulum sorunsuz tamamlanmış demektir. Ayrıntılı bilgi için* http://www.php.net adresini ziyaret ediniz.
 

By MaTRiX

Üye
30 Eyl 2006
77
3
Örneklere başlıyoruz
PHP ile ekrana merhaba PHP yazdırmak için şu küçük örneği yapalım;

HTML Kod:
<HTML><BODY> <?echo "Merhaba PHP";?> </BODY></HTML>

PHP'ye "merhaba" dediyseniz şimdi bir form aracılığıyla ziyaretçimizin adını öğrenip ona "merhaba" diyelim;

HTML Kod:


HTML:
<HTML><BODY>  <?

echo "Merhaba PHP";

?>

  </BODY></HTML>
PHP'ye "merhaba" dediyseniz şimdi bir form aracılığıyla ziyaretçimizin adını öğrenip ona "merhaba" diyelim;
HTML:
<HTML>
<HEAD>
<****  HTTP-EQUIV="Content-Type" CONTENT="text/html;  charset=windows-1254">
<**** HTTP-EQUIV="Content-Type"  CONTENT="text/html; charset=ISO-8859-9">
<TITLE>Ziyaretçi Giriş  Formu</TITLE>
</HAED>
<BODY>  <?
/*
önce ziyaretçinin formu doldurup doldurmadığına bakıyoruz!
Eğer isim değişkeni boş ise formu gösteriyoruz* değil ise
"Merhaba" diyoruz...
*/

if(empty($isim))
{
echo "
<form action=\"1.php\" method=\"POST\">
Lütfen isminizi yazınız: <input type=\"text\" name=\"isim\" size=\"15\">
<input type=\"submit\" value=\"Gönder\">
</form>";
}
else
{
echo "Merhaba <b>$isim</b>* sayfama hoşgeldin!";
}
?>
  </BODY>
</HTML>
 
Son düzenleme:

By MaTRiX

Üye
30 Eyl 2006
77
3
ewet ikinci dersimizede başlayabiliriz.

PHP VE KOŞULLAR
If-Elseif-Else

Aynı zamanda tüm programlama dillerinin de temelini koşullar oluşturur. Sözü fazla uzatmadan* bu koşullar nedir* nasıl kullanılır* program yazarken nasıl hayatımızı kurtarır* yakından inceliyoruz.

If ... ElseIf ... Else
If koşulu en sık kullanacağımız koşuldur. Örneğin; "$veri1" verimizin değeri 1 ise sayfaya "merhaba" yazdırmak istiyoruz;

<?
$veri=1;
if ($veri==1){
echo "merhaba";
}
?>

Bu en basit if kullanımıdır. Şimdi sayfamıza "$veri1" değişkeninin değeri 1 ise "merhaba"* 1 değilse "güle güle" yazdıralım:
<?
$veri=1;
if ($veri==1){
echo "merhaba";
}else{
echo "güle güle";
}
?>

If ile tanımladığımız koşulun gerçekleşmediği durum "else" olarak gerçekleşir.
Fakat koşullarımız bunlarla sınırla olmayabilir. Örneğin; "$veri" değişkeni 1 "iken merhaba"* 2 iken "nasılsınız"* 3 iken "iyimisin" ve 1*2 veya 3 değilse "güle güle" yazdıralım:
<?
$veri=1;
if ($veri==1){
echo "merhaba";
elseif ($veri==2){
echo "nasılsınız";
elseif ($veri==3){
echo "iyimisin";
}else{
echo "güle güle";
}
?>

Örnekten de anlayacağınız gibi* bu koşulları "elseif"leri kullanarak çoğaltmak mümkün.

 

By MaTRiX

Üye
30 Eyl 2006
77
3
SWITCH .. CASE

Mantık ve amaç olarak "if"ten hiçbir farkı olamamak birlikte* eğer gerçekleşebilecek koşullar çok fazla ise bu durumda bu switch fonksiyonunu kullanırız. Tek dezavantajımız aradığımız koşulu en baştan belirtmek zorunda olmamız ve başka bir koşul ekleyemiyor olmamızdır. Şimdi bir önceki sayfadaki son örneğimizi tekrar her iki şekliyle yapalım;

Örnek: "$veri" değişkeni 1 "iken merhaba"* 2 iken "nasılsınız"* 3 iken "iyimisin" ve 1*2 veya 3 değilse "güle güle" yazdırıyoruz.
ders27pg.png

Örneklerdeki "$veri" değişkenimizin değerleriyle oynayarak hangi durumlarını gerçekleştiğini gözleyebilir ve kendiniz yeni koşullar üretebilirsiniz.
 

By MaTRiX

Üye
30 Eyl 2006
77
3
PHP İLE RASTGELE RESİM GÖSTERİMİ Dersi
uygulama...

Web sitenizi daha ilginç hale getirmek veya bir reklam gösterim programı hazırlamak istiyorsanız* kullanacağınız yegane metod rastgele sayılar üretip bu sayılara göre resimleri ekrana basmak olacaktır. Hemen örneklere başlayalım; Örneğin kullanacağımız resim dosyalarının isimleri 1.jpg* 2.jpg* 3.jpg olsun. Hepsi aynı uzantıya sahip ve isimleri sadece rakamlardan oluştuğu için işimiz kolay* "srand(time())" ile saat kaynağını kullanıp* "rand()" ile rasgele sayılar üretmeye başlayabiliriz.
Örnek:
<?
srand(time());
//1 ile 3 arasında rasgele sayı üreteci
$rasgele_sayi = (rand()%3)+1;
//resmi çağıralım
echo "<img src=\"$rasgele_sayi.jpg\">"
?>

Ancak daha karışık durumlarla da karşılaşabiliriz: Örneğin; değişik isimlerde ve uzantılarda bir imaj listemiz olabilir ve bunları rasgele göstermek isteyebiliriz. Bu durumda dizi değişkenlere yani "array()"lara başvurabiliriz. Tabi bunu veritabanı kullanarak da yapmak mantıklı bir yol. Biz örneğimizde dizi değişken kullandık;
Örnek:
<?
//resimlerimizi array'a atıyalım

$resimler[0] = "ornek_resim1.jpg";
$resimler[1] = "baska_resim.gif";
$resimler[2] = "digeri.png";


srand(time());
//0 ile 2 arasında rasgele sayı üreteci
$rasgele_sayi = (
rand()%3);
echo "<img src=\"
$resimler[$rasgele_sayi]
\">"
?>


Bu örneğimizi günün sözü* rastgele url ve bunlar gibi değişik programcıklar üretmek için de kullanabiliriz. Kolay gelsin.
 

By MaTRiX

Üye
30 Eyl 2006
77
3
PHP ve Döngüler
FOR

Programlama dillerinin yapı taşlarını döngüler oluşturur. Hemen hemen hepsinde de aynı döngüler karşımıza çıkar. Basit olarak anlatmak gerekirse döngüleri* yapılmasını istediğimiz şeyleri istediğimiz kadar yaptırmamızı sağlar. Bu ders yeni başlayanlar için yazıldığından mümkün olduğunca kolay anlaşılabilir örnekler vermeye çalışacağım. PHP'de kullanabileceğimiz dört adet döngü vardır. Bu döngüler hemen hemen aynı işi yapmalarına karşın bu işte ustalaştıkça aralarındaki farkı anlamaya başlayacaksınız. Ben de bu derste küçük ipuçları vermeye çalışacağım. Yine her derste yaptığımız gibi örnek bir olay yaratıp bunun çözümlerini arayacağız. Bu örneğimizde 1'den 10'a kadar sayıları alt alta ekrana yazdıracağız. Bunu önce "For" kullanarak* sonra diğerleri ile yapacağız.
FOR
<?
for($i = 1; $i <= 10; $i++){
echo("sayı = $i<br>\n");
}
?>

Bu örneği çalıştırdığımızda ekran çıktısı;

sayı = 1
sayı = 2
sayı = 3
sayı = 4
sayı = 5
sayı = 6
sayı = 7
sayı = 8
sayı = 9
sayı = 10

şeklinde olacaktır. Burada "$i" değişkeni 1 olarak başlattık ve 10'a eşit olana kadar +1 artırarak* döngü içinde yapılması gerekenleri yapmasını istedik.
BREAK
"for" döngüsü devam ederken eğer amacımıza ulaştıysak ve bundan fazla döngüye devam etmemize gerek kalmamışsa "break;" komutunu kullanarak döngüyü durdurabiliriz. Örmeğin "6" sayısına ulaştığımızda döngüyü durdurmak istersek;
<?
for($i = 1; $i <= 10; $i++){
echo("sayı = $i<BR>\n");

if ($i == 6){
break;
}
}
?>

kodumuzu bu şekilde değiştirebiliriz. Bu kodun çalışması bize söyle bir ekran çıktısı verecektir;
sayı = 1
sayı = 2
sayı = 3
sayı = 4
sayı = 5
sayı = 6
 

By MaTRiX

Üye
30 Eyl 2006
77
3
FOREACH* WHILE* DO.. WHILE

FOREACH
Foreach döngüsü genelde dizi değişkenler ile birlikte kullanılır. Form işlemlerinde formdan gelen verileri okurken de foreach çok işinize yarayacak. Hemen bir örnekle devam ediyoruz;
<?
$dizi = array (1* 2* 3* 4* 5* 6* 7* 8* 9* 10);
foreach ($dizi as $deger) {
print "Sayı= $deger
\n";
}
?>
Örneğimizde 1'den 10'a kadar sayılardan oluşan "$dizi" dizimizi her bir değeri için ekrana bastık* ekran çıktımız bir önceki döngümüze göre değişmedi;
sayı = 1
sayı = 2
sayı = 3
sayı = 4
sayı = 5
sayı = 6
sayı = 7
sayı = 8
sayı = 9
sayı = 10

WHILE
While döngüsü de yine dizi değişkenlerle birlikte daha çok işimize yarayacak bir döngü. Özellikle veritabanı işlemlerinde* veritabanından aldığımız verileri dizi değişkene atadıktan sonra "while" ile döndürerek ekrana basacağız. Şimdilik biz klasik örneğimizi tekrar "while" kullanarak yapalım;
<?
$i=1;
while($i <= 10)
{
echo("sayı=$i
\n");
$i++;
}
?>
While döngüsü parantezleri arasında tanımladığımız döngü gerçekleşene kadar devam eder. Örneğimizde $i değişkenini 1 olarak ayarladıktan sonra* döngümüze $i değişkeni 10 olana kadar devam etmesini söyledik. İşlemin gerçekleşebilmesi için de $i değişkenini her seferinde 1 sayı artırdık. Ekran çıktısı yine değişmedi;
sayı = 1
sayı = 2
sayı = 3
sayı = 4
sayı = 5
sayı = 6
sayı = 7
sayı = 8
sayı = 9
sayı = 10

DO.. WHILE
While döngüsü ile aynı işi yapan başka bir döngü türü de do.. while döngüsüdür. Kullanımına bir örnek vermek gerekirse;
<?
$i = 1;
do {
echo("sayı=$i
\n");
$i++;
} while ($i <= 10);
?>

Bu örneğinde ekran çıktısı değişmeyecektir.
 

By MaTRiX

Üye
30 Eyl 2006
77
3
MYSQL okuma* yazma* güncelleme* silme
Yeni kayıt ekleme* Ekrana basma
PHP ve Mysql kullanarak veritabanınıza nasıl yeni kayıt ekleyeceğinizi* kayıtları nasıl güncelleyeceğinizi* nasıl ekrana basacağınızı ve nasıl sileceğinizi pratik örneklerle anlatacağım. Ancak eklemek istediğim şey* Php'nin yeni sürümlerinde Mysql desteğinin olmayışı. Bunun neden yaptılar merak edip araştırmadım ama bildiğim tek şey varsa o da birbirlerine çok yakıştıklarıydı. PHP desteğini kesmiş olabilir ancak Mysql halen en yaygın veritabanı sunucularından birisi ve hemen hemen tüm serverlar Mysql desteği vermeye devam ediyor. Sözü fazla uzatmadan örneklere başlayalım. Bu derste kullanılan mysql dosyalarını bilgisayarınıza download edebilirsiniz.

Öncelikle veritabanımız tanıyalım. Veritabanımızın adı: "mysql_denemeleri" ve veritabanımızda "uyeler" isminde bir tablomuz bulunuyor. "Uyeler" tablomuzun ise; id* isim* soyisim şeklinde 3 sütunu var.
Yeni Kayıt Ekleme
Şimdi "Uyeler" tablomuza yeni bir kayıt ekleyelim.
ders12pr.png


Bu örneği size daha iyi anlatabilmek için satır numaraları ekledim. 3. satırda "mysql_connect()" fonksiyonu ile mysql'e bağlanıyoruz ve 4. satırda "mysql_select_db()" fonksiyonu ile veritabanımızın ismi belirtip veritabanımıza bağlanıyoruz. 7 ve 8. satırlarda $isim* $soyisim şeklinde iki yeni değişken yaratıyoruz. 12. satırda sql cümlemizi oluşturup bu cümleyi "$sql"değişkenine atıyoruz. 14. satırda ise "mysql_query()" fonksiyonu ile bu sql sorgusunu icra etmesini sağlıyoruz.


Kayıtları Ekrana Basma
ders18uo.jpg

Bu örneğimiz ile bir önceki örneğimiz arasında 7. satıra kadar herhangi bir fark yok. Kayıtları okumak için bu sefer sql sorgumuzu değiştirdik. 11* 12 ve 13. satırlarda ise "while" döngüsüyle birlikte tüm sonuçları ekrana bastırıyoruz...
 

By MaTRiX

Üye
30 Eyl 2006
77
3
Güncelleme* Silme

Kayıt Güncelleme
Veritabanımızdaki kayıtları güncellemek için diğer örneklerimize göre sadece sql sorgumuzu değiştirmemiz yeterli. Aşağıdaki örnekte 6. satırda id değeri 1 olan kaydı "Bill Gates" olarak değiştiriyoruz.
ders10ht.jpg


Kayıt Silme
Üyeler tablomuzdaki kayıtlardan id değeri 1 olan kaydı silmek için yine sadece sql sorgumuzu değiştirmemiz yeterli olacak ve program aşağıdaki şekli alacak.

ders12zn.jpg


Tablomuzdaki tüm kayıtları silmek isteseydik; 7. satırı şöyle yazmamız gerekirdi: $sql="delete from uyeler";
 

By MaTRiX

Üye
30 Eyl 2006
77
3
PHP ile Ziyaretçi Defteri
Giriş...


Hemen hemen tüm web sitelerinde gördüğümüz, ziyertçi defterlerinin nasıl yapıldığını, hangi mantıkla çalıştığını bu örnekle anlatmaya çalışacağım. Örneğimizdeki ziyaretçi defteri, bir veri tabanına işlediği mesajları, sayfaya basma usulüyle çalışıyor. Sayfamıza gelen ziyaretçi, index.html dosyasındaki, "Deftere Yaz" ve "Defteri Oku" linkleriyle karşılaşıyor. Örneğimizde biri yaz.php diğeri oku.php adında iki php dosyamız var. Ziyaretçiden bilgi alacağımız, form unsurlarını da form.inc dosyasında sakladık. Veri tabanımızın ve tablomuzun isimlerini ise; "ziyaretci_defteri" olarak belirledik.

FORM.INC
Formumuzda, ziyaretçimizin doldurması gereken dört alan var. Bu alanlardan herhangi birini doldurmadığı takdirde hata alacak. Form unsurlarının hata alınması durumunda tekrar doldurulmaması için, her bir formun "value" kısmına, <? bak ("form_unsurunun_adi"); ?> yazdık. Buradaki "bak" fonksiyonu neden gerekliydi diye sorarsanız, hemen açıklayalım: Php'de tanımlanmamış bir değişkenin ekrana basılması mümkün değildir. Bu formu, ziyaretçimize ilk defa sunduğumuzda hiç bir değişken tanımlanmamış olacak ve php olmayan bir değişkeni ekrana basmaya çalışarak hata verecekti. Aslında php bu yanlışı kendi düzeltir ve bunu bir uyarı şeklinde ekrana basar. Php'nin eski sürümlerinde bu önemli değildi ancak, Php 4.0pl1 sürümünden itibaren bu hata görünür hale gelmiştir. Fonksiyonun yaptığı iş çok basit, gönderdiğimiz her değişkenin tanımlanıp tanımlanmadığına bakıyor ve eğer tanımlanmışsa ekrana basıyor. Aslında bu işin biraz da uzun yolu; Php'nin "warning" vermesini istemiyorsanız, özellikle de fonksiyonların başına @ işareti koyabilirsiniz.
Formumuzda bir de gizli değer var. <input type="hidden" name="islem" value="yaz"> satırı bize yaz.php dosyasında, formun gönderilip gönderilmediğini anlamamız için yardımcı olacak.

form.inc


HTML:
<?
Function bak($veri)
{
global $$veri;
   if(isset($$veri)){
    echo $$veri;
    }
}
?>

<table bgcolor="#FF9900" border="1" bordercolor="#000000">
<form action="yaz.php" Method="Post">
<tr>
<td>İsim: </td><td><input type="text" name="isim" value="<? bak("isim"); ?>"></td>
</tr>
<tr>
<td>Soyisim: </td><td><input type="text" name="soyisim" value="<? bak("soyisim"); ?>"></td>
</tr>
<tr>
<td>E-mail: </td><td><input type="text" name="e_mail" value="<? bak("e_mail"); ?>"></td>
</tr>
<tr>
<td>Notu: </td><td><textarea name="notu" cols="40" rows="5"><? bak("notu"); ?></textarea></td>
</tr><tr>
<td></td><td><input type="submit" value="GÖNDER"></td>
</tr>
<input type="hidden" name="islem" value="yaz">
</form>


 

By MaTRiX

Üye
30 Eyl 2006
77
3
yaz.php

Ziyaretçiden bilgi alacağımız ve aldığımız bilgileri veri tabanına işleyeceğimiz dosya yaz.php dosyası. Bölüm 1'deki fonksiyon basit bir hata fonksiyonu. Bu fonksiyonu Bölüm 2'deki hata denetimlerinde kullandık. Formadan gelen değişkene bakıyoruz, eğer bu değişken boşsa sırasıyla; hatayı yazdırıyoruz, tekrar formu gösteriyoruz ve işlemi durduruyoruz. Bölüm 2'de yukarıda bahsettiğimiz, gizli islem değerine bakıyoruz ve bu değişken boşsa formu gösteriyoruz, bu değişken boş değilse Bölüm 2'deki kontrol işlemleri çalışacak. Bölüm 2'deki tüm alanlar eksiksiz doldurulmuş ise Bölüm 3'de veri tabanına bağlanıp gelen verileri, tablomuza işliyoruz.

yaz.php
HTML:
<? 
$tarih = date("d-m-y"); 
//Hata Fonksiyonu - Bölüm 1 
Function hata($veri) 
{ 
echo "$veri "; 
include("form.inc"); 
exit; 
} 
?> 

<? 
//Hata denetimi - Bölüm 2 
if(isset($islem)){ 

    if(empty($isim)){ 
    hata("isim bölümünü doldurunuz!"); 
    } 
    elseif(empty($soyisim)){ 
    hata("Soyisim bölümünü doldurunuz!"); 
    } 
    elseif(empty($e_mail)){ 
    hata("E-Mail bölümünü doldurunuz!"); 
    } 
    elseif(empty($notu)){ 
    hata("Notu bölümünü doldurunuz!"); 
    } 
    // E-Mail doğrulaması 
    elseif(!ereg("^[email protected]+\\..+$", $e_mail)) { 
    hata("E-Mail adresiniz geçerli değil!"); 
    } 
    else 
    { 
    //Sonuçları veri tabanına kayıt ediyoruz- Bölüm 3  

    $BAGLANTI=mysql_connect("localhost","root",""); 
    mysql_select_db("dersler",$BAGLANTI); 
        if( 
        mysql_query("insert into ziyaretci_defteri (id, isim, soyisim, e_mail, notu, tarih) 
        values ('', '$isim', '$soyisim', '$e_mail', '$notu', '$tarih') ")){ 
        echo "Sayın <b>$isim $soyisim</b>,
        defterimizi doldurduğunuz için teşekkür ederiz.<br><br>"; 
        echo "Defteri okumak için <b><a href=\"oku.php\">TIKLAYIN!</a></b>"; 
        } 
    } 
} 
else 
{ 
include("form.inc"); 
} 

?>
 

By MaTRiX

Üye
30 Eyl 2006
77
3
oku.php

Bu dosya ile veri tabanına yazılmış mesajları çekip sayfaya basacağız. Bölüm 1 ile bir veri tabanı bağlantısı oluşturarak ziyaretci_defteri veri tabanına bağlanıyoruz. Burada "select * from ziyaretci_defteri" sorgusu ile ziyaretci_defteri tablosundaki tüm mesajları çekiyoruz. Bölüm 2'de "mysql_num_rows($sorgu)" ile toplam kayıt sayısını bulduk. Bölüm 2'de bu sayı sıfır ise "Deftere henüz mesaj yazılmamış!", sıfır değil ise de mesaj sayısını sayfaya bastırıyoruz. Veri tabanından çektiğimiz tüm mesajlar dzi olarak sorgu değişkeninde saklanıyor. Buradaki tüm verileri sayfaya basmak için "while ($sonuc=mysql_fetch_array($sorgu))"döngüsünü kullandık.

oku.php
HTML:
<?
// Veri tabanından sonuçları alalım- Bölüm 1 
    $BAGLANTI=mysql_connect("localhost","root","");
    mysql_select_db("dersler",$BAGLANTI);
    $sorgu=mysql_query("select * from ziyaretci_defteri order by id DESC", $BAGLANTI);

// Toplam kayıt hesabı- Bölüm 2
    $toplam_yazi=mysql_num_rows($sorgu); 
    if($toplam_yazi=="0"){
    echo "<h3>Deftere henüz mesaj yazılmamış!</h3><br>\n";
    }
    else{
    echo "<h3><u>Toplam: $toplam_yazi mesaj</u></h3><br>\n";
// Sonuçları gösterelim- Bölüm 3 
        while ($sonuc=mysql_fetch_array($sorgu)){
        
            echo "<b>İsim:</b> $sonuc[1]<br>\n";
            echo "<b>Soyisim:</b> $sonuc[2]<br>\n";
            echo "<b>E-Mail:</b> $sonuc[3]<br>\n";
            echo "<b>Tarih:</b> $sonuc[5]<br>\n";
            echo "<b>Notu:</b> $sonuc[4]<br><hr>\n";
        }
    }
?>
 

By MaTRiX

Üye
30 Eyl 2006
77
3
PHP ile Yerel Tarih ve Saat Ayarlama

Yurtdışından bir hosting hizmeti aldıysanız muhtemelen bir saat tarih problemiyle karşılaşacaksınız. Sunucu saatleri ve tarihi yerel zamanı göstereceğinden sizin tarih ve saatiniz Türkiye saat ve tarihinden ileri ya da geri olacaktır. Saat farkı olmasa bile gün ve ay adları Türkçe olmayacaktır. Bu durumda PHP'de kullanabileceğiniz bir çok fonksiyon olmakla beraber, sizlere saat farkını bizim nasıl tespit edeceğimizi ve bu sorunu nasıl gidereceğimizi küçük bir scriptle göstermeye çalışacağım. Öncelikle bugünün tarih ve saatini php'den isteyelim:

<?echo date("j F Y, l, G:i:s"); ?>
Bu kod bize "2 November 2003, Sunday, 19:37:01" şeklinde bir tarih verecektir. Şimdi "date()" fonksiyonundaki parametrelerle oynayarak ve dizi değişkenler kullanarak kendi yerel Türkçe tarihimizi bulalım.
Öncelikle gün ve ay adını Türkçe olarak ayarlayalım; bunun için "w" ve "n" parametrelerini kullanıyorum, amacım haftanın kaçıncı gününde olduğumuzu ve yılın kaçıncı ayında olduğumuzu bulmak.


Kod:
[B]<?[/B]
[B]$gunler=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cumartesi");[/B]
[B]$aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");[/B]
[B]$turkce_gun=$gunler[date("w")];[/B]
[B]$turkce_ay=$aylar[date("n")];[/B]
[B]?>[/B]

Yukarıdaki scriptte "$turkce_gun" değişkeni bize gün ismini, "$turkce_ay" değişkeni ise ay ismini Türkçe olarak verecektir.
Bu ayardan sonra tarihi Türkçe olarak bir daha öğrenelim;


Kod:
[B]<?[/B]
[B]$gunler=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cumartesi");[/B]
[B]$aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");[/B]
[B]$turkce_gun=$gunler[date("w")];[/B]
[B]$turkce_ay=$aylar[date("n")];[/B]
[B]$gun=date("j");[/B]
[B]$yil=date("Y");[/B]
[B]$saat=date("G:i:s");[/B]
[B]$turkce_tarih="$gun $turkce_ay $yil, $turkce_gun, $saat";[/B]
[B]echo $turkce_tarih;[/B]
[B]?>[/B]

Son yazdığımız script bize "2 Aralık 2003, Pazar, 20:03:01" şeklinde bir sonuç verecektir. Artık tarihimiz Türkçe olarak hazır. Şimdi bu tarihi yerel tarihe göre ayarlayalım. Benim örneğimde server ile aramızda "24" saatlik bir fark var ve saat Türkiye saatinden "24" saat daha geride;

Kod:
[B]<?[/B]
[B]$saat_farki = "24";[/B]
[B]$eklenti = ($saat_farki * 3600)+time();[/B]
[B]$gunler=array("Pazar","Pazartesi","Salı","Çarşamba","Perşembe","Cumartesi");[/B]
[B]$aylar=array("Ocak","Şubat","Mart","Nisan","Mayıs","Haziran","Temmuz","Ağustos","Eylül","Ekim","Kasım","Aralık");[/B]
[B]$turkce_gun=$gunler[date("w", $eklenti)];[/B]
[B]$turkce_ay=$aylar[date("n", $eklenti)];[/B]
[B]$gun=date("j", $eklenti);[/B]
[B]$yil=date("Y", $eklenti);[/B]
[B]$saat=date("G:i:s", $eklenti);[/B]
[B]$turkce_tarih="$gun $turkce_ay $yil, $turkce_gun, $saat";[/B]
[B]echo $turkce_tarih;[/B]
[B]?>[/B]


Böylece scriptimizin son halini yazmış olduk. "$eklenti" değişkenimizi "date()" fonksiyonuna ekleyerek tüm tarihi değiştirmiş olduk. "$saat_farki" değişkenine farklı değerler vererek sonucun nasıl değiştiğini test edebilirsiniz.
 

By MaTRiX

Üye
30 Eyl 2006
77
3
Text Dosyaya Yazdırma ve Okuma
Dosya Oluşturma

PHP ile server tarafında yeni bir text dosyası oluşturabilir, bu dosya içine yeni veriler ekleyip silebiliriz. Veritabanı gerektirmeyecek kadar küçük uygulamalarda text dosyalarını kullanmak oldukça pratik olabilir. Şimdi bir text dosyasının nasıl oluşturulacağını, bu dosyaya nasıl veri ekleyebileceğimizi ve bu verileri nasıl değiştirebileceğimizi örneklerle anlatmaya çalışacağım. Dosya Oluşturma
Dosya işlemleri için "fopen()" fonksiyonunukullanacağız. Programın çalıştığı dizinde yeni bir dosya oluşturmak için kullanacağımız kod;

<?
$dosya =
fopen("yeni_dosya.txt","w");
?>

Buradaki "w" parametresi dosyayı ne için kullanacağımızı ayarlamamız için var, "w"nin anlamı sadece yazmak için bir dosya oluşturmak istediğimizi gösteriyor. Diğer parametreler ise şöyle;
dersjpg6ov.png

Hata Kontrolü
Eğer dosya oluşturulamıyor ise işlemlere devam etmemiz hata almamıza neden olacaktır. Dosyanın oluşturulup oluşturulamadığını;
<?
$dosya = fopen("yeni_dosya.txt","a");

//Kontrol
if(!($dosya))
{
echo("Hata: ");
echo("yeni_dosya.txt oluşturulamadı.\n");
exit;
}

?>

şeklide bir kod ile test edebiliriz.
 

By MaTRiX

Üye
30 Eyl 2006
77
3
Okuma ve Yazma

Dosyaya Yazma
Dosyaya yeni veri eklemek için "fputs()" fonksiyonunu kullanırız. Şimdi yukarıdaki örneğimize devam ederek, oluşturduğumuz dosyanın içine bazı yazılar yazalım.
$dosya = fopen("yeni_dosya.txt","a");
//Kontrol
if(!($dosya))
{
echo("Hata: ");
echo("yeni_dosya.txt oluşturulamadı.\n");
exit;
}
// dosyaya bazı şeyler yazalım
fputs($dosya, "Örnek yazı 1\n");
fputs($dosya, "Örnek yazı 2\n");
// Dosyayı kapatalım
fclose($dosya);
?>

Dosyadan Okuma
Dosyaya yazdırdığımız veya daha önceden yazdığımız verileri okumak için, Dosyayı okumak için açıp while döngüsüyle dosyanın sonu gelene kadar tüm satırları tek tek ekrana basıyoruz.

Örnek:

//Okumak için dosyaya erişelim
$dosya = fopen("yeni_dosya.txt","r");
//Kontrol
if(!($dosya))
{
echo("Hata: ");
echo("yeni_dosya.txt bulunamadı.\n");
exit;
}
//satır satır okuyalım
while(!feof($dosya))
{
$satir = fgets($dosya, 255);
echo("$satir <br>\n");
}
//dosyayı kapatalım
fclose($dosya);
?>

Örnekleri oku.php ve yaz.php olarak iki ayrı dosya halinde local sunucunuzda test edebilir, parametreleriyle oynayarak nasıl değişik sonuçlar alacağınızı inceleyebilirsiniz.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.