php ile ZİYARETCİ DEFTERİ:

Tüm saatler GMT +3 Saat


Full versiyon Görüntüle

YAZAR: huso
Tarih: 30/11/2008, 17:22



php ile ZİYARETCİ DEFTERİ:

Ziyaretci defteri hazirlanmasi suresince olusturacaklarimiz:

1- database'imize ziyaretci_defteri isimli bir tablo olusturacagiz.
2- Gelen ziyaretciye bir arayuz hazirlayip bilgilerini ve goruslerini yazmasini saglayacagiz. (yaz.php dosyasi olusturulacak)
3- Gonderilen bilgileri database'imize ekleyecegiz. (gonder.php dosyasi olusturulacak)
4- Gonderilmis olan bilgilerin database'imizden okunmasini saglamak icin bir arayuz hazirlayacagiz. (oku.php dosyasi olusturulacak)

1- Oncelikle database'imizde "ziyaretci_defteri" isimli 6 field'li bir tablo olusturalim ve "numara" isimli tabloya otomatik numaralama, unique ve primary key ozelliklerini verelim. Tabloyu olusturmak icin asagidaki kodlari kullanabilirsiniz.

CREATE TABLE ziyaretci_defteri (
numara smallint(6) NOT NULL auto_increment,
isim text NOT NULL,
email text NOT NULL,
ulke text NOT NULL,
gorus longtext NOT NULL,
tarih datetime NOT NULL default '0000-00-00 00:00:00',
PRIMARY KEY (numara),
UNIQUE KEY numara (numara)
) TYPE=MyISAM;


2- Tablomuz olsutu, simdi gelen ziyaretcimizin bu tablomuzu guzel bir arayuzle doldurmasini saglayalim. Tablodanda anlasilacagi gibi,
Isim, email, ulke ve gorusler soruluyor. Bu sistemi html olarakta hazirlayabilirsiniz. Ama "imput name"leri tablomuzda verdigimiz isimlerle uyusmalidir.
Asagida "yaz.php" isimiyle kaydetmeniz gereken kodlar bulunmaktadir.

<html>
<head><title>Ziyaretci Defteri - Gorusunuzu Yazininz (yaz.php)</title><head>
<body>
<form method="post" action="gonder.php">
Isminiz : <input type="text" name="isim"><br>
Email : <input type="text" name="email"><br>
Ulkeniz : <input type="text" name="ulke"><br>
Gorusleriniz : <textarea name="gorus"></textarea><br>
<br><br>
<input type="submit" name="valider" value="Gonder">
</form>
</body>
</html>


(Yukaridaki kodu yapistirdigimiz dosyaya "yaz.php" ismini verelim)
Yukaridaki kodlardada goruldugu gibi "form action" ileride olusturacagimiz "gonder.php" dosyasina verilmistir.
Simdi burada dikkatinizi cekmek istedigim nokta su, gordugunuz gibi olusturulan ger form bolumunun (yani isim, yada email yada gorus vs.) birer isimi var (ornegin "Isminiz" bolumu icin "name="isim"") ve yine dikkatinizi cekmisse eger butun form'daki bolumlerin isimlerinin hazirlamis oldugumuz database tablosunda bir karsiligi var. Yani bu bolumlere yazilan bilgiler isimlerin karsiliklari, ana tablodaki o isimli bolume yaziliyor.
Yukaridaki kodlari yapistirdigimiz dosyayi "yaz.php" olarak adlandiralim.

3- Yukarida olsuturmus oldugumuz form'a girilecek olan bilgilerin direk olarak tablo icine gonderilmesini istiyoruz, yukaridada belirttigim gibi form bolumlerine yazilan bilgilerin, birazdan hazirlayacagimiz "gonder.php" dosyasi ile direk olarak ana tablomuza yazilmasini saglayacagiz. Bu bolum icin asagidaki kodu kullanabilirsiniz.

<html>
<head><title>Ziyaretci Defteri - Gorus Onayi (gonder.php)</title><head>
<body>
<?php
$db = mysql_connect(); //database baglantisi
$continu=1;
if ($isim == "")
{
print("Lutfen Isim bolumunu tam olarak doldurunuz!<br>"); //isim bolumu bos birakildiginda cikacak hata yazisi
$continu=0;
}

if ($continu == 1)
{
$date=date("Y-m-d");
$sql="INSERT INTO ziyaretci_defteri (isim, email, ulke, gorus, tarih) VALUES ('$isim', '$email', '$ulke', '$gorus', NOW())";
mysql_query($sql, $db);
print("Gorusleriniz Icin Tesekkurler !") ; //gonderilme islemi tamamlandiginda cikacak yazi
}
else
{
print("<a href=yaz.php>Geri</a>");
}
?>
<br><?php print("<a href=oku.php>Defteri Oku</a>"); ?>
</body>
</html>

(Yukaridaki kodu yapistirdigimiz dosyaya "gonder.php" ismini verelim)
Yukaridaki kodda php dosyasini ilk olarak database'imize bagladik, bunun icin "$db = mysql_connect();" kodunu kullandik. Sonra kendimize bir onaylayici hazirladik. Eger gonderen kisim "Isminiz" bolumunu yanlislikla bos birakmissa sistem onu uyaracak ve bu bilgiyi doldurmasini isteyecek.
Bunun icin su kod bolumlerini kullandik;

$continu=1;
if ($isim == "")
{
print("Lutfen Isim bolumunu tam olarak doldurunuz!<br>");
$continu=0;
}

Ardindan verilen bilgilerin ana tablomuzda yerli yerine oturmasini sagladik ve adreslerini tam olarak belirledik.

$sql="INSERT INTO ziyaretci_defteri (isim, email, ulke, gorus, tarih) VALUES ('$isim', '$email', '$ulke', '$gorus', NOW())";

Dikkatinizi cekecegi gibi yine burada, form sayfasinda her bolume verdigimiz isimleri kullandik. (orn. "isim, email, ulke, gorus") ve yukaridaki kodun "VALUES" bolumune onlarin birer birer yerlesmesi icin adres verdik. Yukaridaki kodda dikkatinizi cekecek bir adet fazla bolum bulunmakta, buda "tarih". Ana tablomuza tarihi eklemis ama simdiye kadar kullanmamistik. Simid onuda kullaniyoruz. Ve bu taihin "VALUE" bolumundeki karsiligi olarakda "NOV()" yani "simdi" yi kullandik, cunku oraya yazilan tarih o bilgilerin yazildigi tarihle ayni olmasini istedik.
Database yazim kodlarimizin altindada goruldugu gibi;

print("Gorusleriniz Icin Tesekkurler !") ; //gonderilme islemi tamamlandiginda cikacak yazi

Eger yazim islemi basarili olursa, sayfamizda gorulmesi gereken onay yazisida orada bulunmakta.
En sondan 5. siradaki "print("<a href=yaz.php>back</a>");" kodunu kullanmaizdaki amac ise eger yazim sirasinda bir hata cikar yada yukaridaki hazirlamis oldumuz "isim onaylayicis" devreye girerse, ziyaretcinin kolayca geri donmesini saglayabilmek.


4- Eveet, gonderilen butun bilgi suanda dogru olarak database'imize ulasiyor ama bunu bide diger ziyaretcilerimizin gormesini saglamamiz gerekli.
Bunun icinde asagidaki kodu kullanalim.

<html>
<head><title>Ziyaretci Defteri - Gorusleri Oku (oku.php)</title><head>
<body>
<table align="center" cellspacing="0" cellpadding="0" border="1" width="80%">
<tr>
<td bgcolor="black"><font color="white">Isim</td>
<td bgcolor="black"><font color="white">Email</td>
<td bgcolor="black"><font color="white">Ulke</td>
<td bgcolor="black"><font color="white">Gorusler</td>
<td bgcolor="black"><font color="white">Tarih</td>
</tr>

<?php
$db = mysql_connect(); //database baglantisi
$sql="SELECT * FROM ziyaretci_defteri ORDER BY numara"; //siralamanin yapilacagi tablonun secimi.
$res=mysql_query($sql, $db);
while ($ligne = mysql_fetch_object ($res))
{
print "<tr>";
print "<td>$ligne->isim</td>";
print "<td>$ligne->email</td>";
print "<td>$ligne->ulke</td>";
print "<td>$ligne->gorus</td>";
print "<td>$ligne->tarih</td>";
print "</tr>";
}
mysql_free_result ($res);
?>
</table>
<br><?php print("<a href=yaz.php>Deftere Yaz</a>"); ?>
</body>
</html>

(Yukaridaki kodu yapistirdigimiz dosyaya "oku.php" ismini verelim)
Yukaridaki dosyada oncelikle kendimize bir tablo hazirladik, ve tablomuza basliklarini verdik. (orn. Isimi, Emil, Gorus vs.) Ve sonra yine database'imize baglanti sagladik. ( $db = mysql_connect()Wink Ve sonra suandaki sayfamizda gorunmesini istedigimiz yazilarin, hangi tablodan alinmasi gerektigini ve hangi siralamaya girmesi gerektigini yazdik. ($sql="SELECT * FROM ziyaretci_defteri ORDER BY numara"Wink.
Ve daha sonra database'de bulunan yazilarin sayfaya gecmesini saglamak icin baglanti kodunu yazdik. (while ($ligne = mysql_fetch_object ($res)) )
Simdi tablo bolumlerini "print "<td>$ligne->isim</td>";" kodunu kullanarak ekleyebiliriz. Unutmayinizki "$ligne->" yazinin tablodan alinmasini sagliyor ama tablonun hangi fiel'inden alinmasi gerektigini belirtmeniz gerekli. Bunuda "$ligne->isim" yada "$ligne->email" yada "$ligne->gorus" vs. seklinde saglayabilirsiniz.
Eveet. Hepsi bu. Elimizde baska bir siteye bagli olmayan kendimize ait bir ziyaretci defterimiz var.

Eger yukardaki kodlari kopyalayip yapistirmak istemiyorsaniz ekteki dosyayi indirip dosyalarin hazirlanmis halini kullanabilirsiniz, ama database tablosunu mutlaka olusturmalisiniz.

PHP'sisteminde daha cok yeniyim. Ilk ogrendigim sey yukarida anlattigim ziyaretci deferi olmustu. Umarim yeterince acik anlatabildim ve sizinde isinize yarayabilir.



-> Hazır kodlar (php,asp,java,html) -> PDA Görünüm - Ana Sayfa
Tüm saatler GMT +3 Saat


Full versiyon Görüntüle



Phpbb PDA Görünüm
Muhendisiz.net Tarafindan Yazilmistir.
Writed by muhendisiz.net © 2004 - 2007 All rights reserved.