Php Ders 7 - Ziyaretçi Mesaj Formu.

Kategori : Php Dersleri

PHp ile Ziyaretçi Mesaj Formu Yapımı

Bu dersimizden önce Mysql veritabanı üretmeniz gerekiyor. Başlamadan önce şu dersi okuyarak bir veritabanı tablosu üretmelisiniz.Php ile birçok veritabanı işlem yapılabiliyor ama Veritabanı mantığını anlamanız için önce o dersi iyice incelemelisiniz.

 

Php dersimize Elimizde 4 Sütunu bulunan bir veritabanı tablosu olduğunu kabul ederek başlıyoruz.

mesajno
yazan
mesaj
zaman


1-HTML MESAJ FORMU

Öncelikle ziyaretçilerimizin kullanacağı bir mesaj formu yapmamız gerekiyor.Mümkünse Dreamweaver ile aşağıdaki düğmeleri kullanarak bir form hazırlayın. Önce form sonra onun içine textfield ve buton.

form1

Formun bitmiş hali:
form2

Dreamweaver yoksa yada form yapamazsanız hazırladığım şu form ve boş php sayfası örneğini indirebilirsiniz: Dosya indir : ziyaretcibos.zip


Dremweaver hiç bilmiyorsanız şu derse de göz atabilirsiniz: dreamweaver ile web sayfası

Burada dikkat etmeniz gereken nokta: Bu kısımda herhangi bir PHP kodu falan yazmıyoruz. bunlar basit HTML bilgisidir. HTML bilginiz yoksa bile dreamweaver ile kolayca bir form yapabilirsiniz.

Formu oluşturan HTML kodları: Elinizde dreamweaver yoksa Not defterine aşağıdaki yazıyı yapıştırıp. mesajformu.html adı ile kaydetmeniz yeterlidir.

Buradaki en önemli konu formun hedef alanıdır: action="" Bu formun gönder tuşuna basıldığında web sayfamızda hangi php´nin çalışacağını belirtir.

 

action="kaydet.php">

isminiz:    isim" id="isim" />

Mesajınız: text</span></b>" id="text" cols="45" rows="5">






Diğer önemli nokta ise formdaki yazı kutularına verdiğimiz isimlerdir. yukarıda kırmızı ile işaretlediğim yerlere dikkat edin. Action kısmını unutursanız Form aynı sayfaya gider. sayfamız html olduğu için de hiçbir işe yaramaz.

 

2- MESAJLARI PHP İLE ALMAK

Durumu anlamanız için aşağıdaki resmi inceleyin.

form3

Formun action kısmındaki yazıya göre baka bir sayfaya gönderiliyor. Bu örnekteki sayfamızın adı kaydet.php olacak.

Yani birisi mesaj yazıp kaydet tuşuna basınca kaydet.php çalışacak.

Şimdi kaydet.php sayfasını yapalım. Aşağıdaki kodu yazın ve uygulayalım.

 


$civciv=$_POST["isim"];

echo " Sayın". $civciv. " Siz bu formu yollayacak kadar karizmatik değilsiniz";



 


Kodlara dikkat ettiyseniz hiçbir veritabanı komutu yok. Peki burdan ne öğreneceğiz. Form geldiğinde bilgiyi nasıl işleyeceğimizi öğreneceğiz.

Bir Php sayfası çalıştığında eğer adres satırına sayfa adı yazılarak çağrılmışsa $_GET parametresi çalışır.

şunu deneyin: http://localhost/kaydet.php?isim=Necmi

bu durumda $_GET["isim"] şeklinde otomatik oluşan bir değişkenimiz olur.

Eğer php Sayfası bir Form gönderilerek çalıştırılmışsa $_POST parametresi kullanılır. şimdi bunlar ingilizce diye hemen kaçmayın. ben size Türkçesini de yazarım:

$_GET:  Al Getir

$_POST: Postala

 

Şimdi yukarıda neden zarf çizdiğimi anlamışsınızdır. HTML sayfasındaki form üzerine dikkat etmediyseniz şu ufak ayrıntıyı göremezsiniz:

 

method="post" action="kaydet.php">

 

 

Bu form bir posta mektubudur ve onu alan PHP sayfasında otomatik olarak $_POST isimli bir değişken oluşur. bu değişken paketlenmiş bir Değişkendir. aynı isimle birden fazla bilgi çağrılabilir:

kaydet.php çalışırken şu iki değişkeni kullanabiliriz:

$_POST["isim"];
$_POST["text"];

Bu isim ve text nerden geldi diye soracak olursanız en yukarıdaki

ile başlayan HTML sayfasını inceleyin bakalım. orada isim ve text adında iki bölüm var mı ?

 

HTML sayfasına dikkatli bakarsanız görürsünüz:

 




isminiz:    isim" id="isim" />

Mesajınız: text</span></b>" id="text" cols="45" rows="5">




Yani: Form üzerinde belirtilen mesaj kutularının hepsi $_POST değişkeninin içinde paketlenmiş olarak bulunur.

 

 

2- MESAJLARI VERİTABANINA KAYDETMEK

Şimdi formla gelen bilgiyi veritabanına kaydedelim. Veritabanı konusuna hiç başlamadıysanız şu iki dersi mutlaka okuyun. çünkü burda bağlantı nedir diye anlatmayacağım.Şurda anlattım: Mysql Bağlantı

 

Önceki derslerden Query dilini hatırlayın. Burada bilgi kaydetmek için INSERT INTO kelimesi ile başlayan query cümlesini kullanacağız.

Cümle şöyle olacak:

 


INSERT INTO `mesajlar` (`yazan`,`mesaj`,`zaman`) VALUES (´ahmet´, ´selam millet´, NOW() );



 

Kırmızı ile gösterdiklerim. Sütun isimleri Mavi ile gösterdiklerim ise kaydedilecek bilgiyi belirliyor. Yani sağdaki bilgiyi soldaki alanlara sıra ile kaydetmesini söylüyoruz.

kaydet.php sayfasında önce veritabanı bağlantısı yapıp ardındna bu komutu çalıştırmanız yeterli, tek farkla: isim hanesine ahmet yazmayacağız. $_POST[isim] yazacağız.

 


mysql_connect("localhost","root","");
mysql_select_db("kutuphane");


$ad=$_POST["isim"];
$mesaj=$_POST["text"];

mysql_query("INSERT INTO `mesajlar` (`yazan`,`mesaj`,`zaman`)
VALUES (´$ad´, ´$mesaj´, NOW() );");


echo "Mesaj Kaydedildi";

 

Hepsi bu kadar bitti smiley

Madem bu kadar kısaydı millet neden sayfalarca kod yazıyor diye sorabilirsiniz. Güvenlik sebebi ile birkaç ufak ekleme yapmak gerekiyor. Bunları aşağıdaki bitmiş örnekte bulabilirsiniz. Ama işin özünü anlamadan güvenlik işimize yaramaz.

 

Not: Alan isimlerindeki ve Veritabanı ismindeki Küçük/Büyük harflere dikkat edin. Ben yaptığım örnekte sorun çıkmasın diye hepsini küçük harfle yazdım.

 

3- MESAJLARI LİSTELEMEK

Bu konuda fazla detaya girmeyeceğim Query idlini kullanarak SELECT * FROM mesajlar cümlesini kullanarak başka bir php sayfası daha yazacağız.

liste.php

 

mysql_connect("localhost","root","");
mysql_select_db("kutuphane");

$bilgi = mysql_query("SELECT * FROM mesajlar ");   
if($bilgi)
{
    while($satir = mysql_fetch_array($bilgi))
    {
        echo $satir[yazan].´
´;
        echo $satir[mesaj].´
´;
       
    }
}


Bu konudaki POST ve GET kavramını anladıysanız dersimiz başarıya ulaşmış demektir.

Takıldığınız yeri aşağıya yazınız

Dersin bitmiş hali: Dosya indir : basitziyaretcimesaj.zip

drekon2009-12-24 12:14:19

DMCA.com
Bookmark and Share
Hit:90443
Puan ver:

.

alisamialiss

Parse error: parse error in C:\wamp\www\kayit.php on line 4

Osman Bey, Bu sefer yine aynı hatayı veriyor. kurtulamadım sundan. soğuyacağım php den.

2010-08-02 10:19:55

    alisamialiss

    Parse error: parse error in C:\wamp\www\kayit.php on line 4

    Osman Bey, Bu sefer yine aynı hatayı veriyor. kurtulamadım sundan. soğuyacağım php den.

    2010-08-02 12:45:59

      alisamialiss

      Parse error: parse error in C:\wamp\www\kayit.php on line 4

      Osman Bey, Bu sefer yine aynı hatayı veriyor. kurtulamadım sundan. soğuyacağım php den.

      2010-08-02 12:46:23

        ilginakdoganılgın akdoğan

        <?php

         $isim= $_POST['isim'];
         $email = $_POST['email'];
         $mesaj = $_POST['mesaj'];

        mysql_connect('localhost','root','');

        mysql_select_db('deneme');

        if(mysql_query("INSERT INTO 'ziyaretci'('isim','email','mesaj') VALUES ('$isim','$email','$mesaj');"))
        {
            print "tesekkurler";
        }else
        {
            print " bir hata olustu";
        }



        ?>

         

         

        ben bunu yazdım kayit.php nin içine ama kaydetmiyor hata nerde göremiorm

        2010-08-13 15:00:27

          dostluk67ümit tat

          Notice: Use of undefined constant yazan - assumed 'yazan' in C:\wamp\www\liste.php on line 13
          umit

          Notice: Use of undefined constant mesaj - assumed 'mesaj' in C:\wamp\www\liste.php on line 14
          tatttatat

          Orda ümit yazan kayıt yaparken isim yerine yazdığım şey, tatttatat yazan da mesaj yerine yazdığım şey . veritabanında tabloda gözüküyor. liste.php yi açınca böyle hata veriyor. 13 ve 14 satırlarda ne hata var anlamadım

          Böyle bir hata verdi

          2010-08-29 12:08:11

            dostluk67ümit tat

            tamam çözdüm echo $satir["yazan"].'<br>'; bu şekilde olacakmış ben fazladan

            echo $satir["zaman"]

             

            ekledim birde en başlarına isim: mesajı: Tarih: yazıları geliyor

             

            şu şekilde

            İsim: Misafir

            Mesajı: Siteniz Güzel

            Tarih: 2010-08-29

            Ancak bir sorum var, şu şekilde nasıl yaparız

            2010-08-29 13:48:03

              derste böyle birşey yok ki. siz bunu neden yazıyorsunuz:

              $HTTP_POST_VARS

              Her programcı birgün Php yi tadacaktır
              2010-09-22 20:23:25

                deneme

                tekahlatTEKAHLATAvatar

                Arkadaşlar denedim sorun yok

                yalnız çıktı şöyle doğru mu ki

                Notice: Use of undefined constant yazan - assumed 'yazan' in C:\wamp\www\liste.php on line 12
                Ali Atlılar
                Notice: Use of undefined constant mesaj - assumed 'mesaj' in C:\wamp\www\liste.php on line 12
                Deneme Başarılı

                 

                2010-12-27 00:47:23

                  tekahlatTEKAHLATAvatar

                  Arkadaşlar denedim sorun yok

                  yalnız çıktı şöyle doğru mu ki

                  Notice: Use of undefined constant yazan - assumed 'yazan' in C:\wamp\www\liste.php on line 12
                  Ali Atlılar
                  Notice: Use of undefined constant mesaj - assumed 'mesaj' in C:\wamp\www\liste.php on line 12
                  Deneme Başarılı

                  2010-12-27 00:48:54

                    düzeltme

                    tekahlatTEKAHLATAvatar

                    Arkadaşlar yazılı anlatımda hata var ama video güzel anlatmış tıkır tıkır çalışıyor ama benim her mesajım iki kez çıkıyor

                    siniflarimiz@siniflarimiz.com

                     

                    2011-01-01 01:22:35

                      www.Phpkodlari.com © 2009 Herkes Php öğrenecek
                      Web tasarım ve eğitim kaynağınız.