PHP: Sayfalar Arası Veri Gönderme

Bir formdaki gönderme butonuna basıldığında gerçekleşecek eylemin belirlenmesi için form etiketinin action özelliği kullanılır. Buraya yazılacak veri, herhangi bir script kodunun çalıştırılması ile ilgili olabileceği gibi, doğrudan bir php sayfasının adresi de yazılabilir.

Burada gönderme butonuna basıldığı takdirde, internet tarayıcı tarafından verileri_al.php dosyası yüklenecektir.Bu değer boş bırakıldığı takdirde, yani

durumunda, gönderme butonu mevcut sayfanın yeniden yüklenmesini sağlayacaktır. Bu durumda çalışmasını istediğimiz php kodlarının da aynı sayfa üzerinde olması gerekmektedir.

Bilgilerin form üzerinden gönderilmesi için iki farklı yöntemden birisi seçilebilir. Bunlardan ilki “post” , diğeri ise “get” yöntemidir.

Gönderme yöntemi, form etiketinin method özelliği kullanılarak belirlenir.

Bilgilerin alınış yöntemi de, gönderme için seçilen yönteme göre değişecektir.

Öncelikle “post” methodunu inceleyelim.

Aşağıdaki HTML formunu göz önüne alalım:

POST Methodu

Bu kodu taşıyan dosyayı, “verileri_gonder.html” adıyla kaydedelim. Şimdi, action özelliğinde belirtilen “verileri_al.php” dosyasının içereceği kodları yazalım:

İnternet tarayıcısı tarafından görüntülenecek dosya, “verileri_gonder.html” adıyla kaydettiğimiz form dosyası olacaktır.

Bu formdaki text alanlarına bilgiler yazılıktan sonra Gönder butonuna basıldığında internet tarayıcısı tarafından “verileri_al.php” dosyası yüklenecek ve PHP çözümleyicisi tarafından çalıştırılacaktır.

Sonuç olarak ekranda aşağıdaki gibi bir görüntü olacaktır:

Merhaba Kamil ERSÖNMEZ

Kullanıcı tarafından verileri_gonder.html dosyasında girilen bilgiler, post methodu kullanılarak verileri_al.php dosyasına gönderilmiştir ve kullanıcı gönderilen verileri ancak bu PHP kodları çalıştırıldığında görebilmiştir. Veriler, $_POST fonksiyonu kullanılarak alınmıştır. Parametre olarak da form üzerindeki alanın adı kullanılmıştır.

Get methodunda ise durum biraz farklıdır.

GET Methodu

Aynı örneği bu defa get methodunu kullanarak yapalım:

Bu durumda HTML dosyasında değişen kısım form etiketinin method özelliğinin değeri olmuştur. PHP dosyasında ise verilerin alınmasında kullanılan $_POST fonksiyonu yerine $_GET fonksiyonu kullanılmıştır.

Aynı amaçla kullanılan bu iki yöntem arasındaki en önemli fark, get methodunda verilerin gönderiliş biçiminden kaynaklanmaktadır.

Bu durumda veriler, doğrudan internet tarayıcısının adres çubuğu kullanılarak aktarılırlar.

HTML formu doldurulup gönderme butonuna basıldığı anda, internet tarayıcısı adres çubuğunda bizi aşağıdaki gibi bir Url karşılayacaktır.

verileri_al.php?ad=Kamil&soyad=ERSÖNMEZ

Yukarıda da görüldüğü gibi internet tarayıcısının adres çubuğunda yer alan adres bilgisi, gönderilen parametreleri de içermektedir.

Dolayısıyla gizlilik içeren bilgilerin get methodu kullanılarak gönderilmesi önerilmez. Bu şekilde gönderilecekse, verilerin şifrelenmesi ve kullanılmadan önce şifrelerinin çözülmesi bu güvenlik problemini ortadan kaldıracaktır.

Ayrıca parametre sayısı çok fazla olduğunda adres bilgisi çok uzun olacağından ve bu bilgi için 1 Kb üst sınırı bulunduğundan, bu durumda post methodu tercih edilmelidir.

Diğer yandan post methodu kullanıldığında bilgiler HTTP tarafından paketlenerek gönderildiğinden, get methoduna oranla daha yavaş bir transfer olacağı söylenebilir.

Aynı örneği tek dosya üzerinde çalışacak şekilde tasarlayalım. Bu durumda hem HTML formu, hem de PHP kodu aynı dosya üzerinde olacaktır ve gönderme butonuna basıldığında bu dosya tekrar yüklenecektir.

Örnek: Aynı Sayfa Üzerinden Yükleme Yapma

Örneğin bu biçiminde, aynı sayfa tekrar yüklendiğinden, ilk yüklenişinde çalışmasını istemediğimiz bölüm bir koşul ile kontrol altına alınmıştır. Şöyle ki, bu koşulda yer alan “isset” fonksiyonu, “gonder” adlı butona basıldığında sağlanmaktadır. Dolayısıyla sayfanın ilk yüklenişinde yukarıda vurgulanmış kod otomatik olarak çalışmayacaktır.

Örnek: Fibonacci Dizisi

Fibonacci dizisi, 1,1,2,3,5,8,13,21,…. biçiminde, 1,1 sayıları ile başlayıp her sayının kendisinden önceki iki sayının toplamı olduğu sayı dizisidir. Leonardo Fibonacci (1170-1250) tarafından bir tavşan çiftliğinde her üreme döneminde elde edilecek toplam tavşan sayısını bulmak için geliştirilen dizi, bulunduğundan bu yana doğada daha pek çok yerde insanların karşısına çıkmıştır.

Örneğin; dizideki her bir sayı, Fibonacci sayısı adını alır ve çiçeklerin helezoni biçimindeki tohum dağılımlarında, her bir helezonda yer alan tohum sayısı bir Fibonacci sayısına karşılık gelmektedir.

Yazacağımız program kullanıcı tarafından girilecek bir adım sayısına göre Fibonacci dizisini ve altın orana yakınsama özelliğini listelemektedir.

Öncelikle kullanıcıdan adım sayısını alacağımız HTML formunu tasarlayalım.

Post verinin gönderileceği fibonacci.php dosyasının içeriği ise aşağıdaki gibi olmalıdır.

Örnek: Algoritmik Karekök Alma

Girilecek bir sayının karekökünü, belirlenecek bir adım sayısına göre algoritmik olarak hesaplayacak programı yazalım.

Örnek: Dört İşlem

Bu örneğimizde, form üzerinden iki sayı ve işlem kodu alınarak sonuç bir kullanıcı-tanımlı fonksiyon kullanılarak hesaplanıp ana programa geri gönderilmektedir.

Örnek: Bilgisayar Parça Satışı

Geliştireceğimiz bu uygulama, İnternet üzerinde bilgisayar parçaları siparişi vermek için tasarlanmıştır.

Uygulama iki dosyadan oluşmaktadır. İlki, sipariş formunun yer aldığı HTML uygulaması, ikincisi ise sipariş bilgilerini alarak hesaplamaları ve raporlamayı gerçekleştiren PHP uygulamasıdır.

Öncelikle HTML uygulamasını verelim.

Form çalıştırıldığında devreye siparisi_al.php dosyası girecektir.

Bu dosya birim fiyat sabitlerini ve formdan gelen parça adetleri verisini kullanarak toplam tutarı hesaplayacak, string fonksiyonlarının kullanıldığı bir yöntemle bu tutarı yazı ile de yazacaktır.

 

  • 8 Mart 2022

Diğer Yazılarımız

Tüm Yazılarımız

PHP: Fonksiyonlar

Dinamik olarak kullanılabilen altprogramlar biçiminde tanımlayabileceğimiz fonksiyonlar, PHP dilinin gücünü…

MySQL: Neden Veritabanı Kullanırız?

Verilerimizi düzenli ve kalıcı olarak saklamanın veritabanlarından başka yolu yoktur.…

C# While Döngüsü Kullanımı

C# programlama dilinde while döngüsü, bir koşul doğru olduğu sürece…

Sunucularda; Günlük Yedekleme vs. Sürekli Yedekleme

Veri güvenliği, günümüzün dijital dünyasında işletmelerin en büyük önceliklerinden biridir.…
PHP Sayfalar Arası Veri Gönderme

Soru işareti kalmasın

Bu yazı hakkında aklınıza takılanlar, bir fikriniz belkide şikayetiniz vardır. Yada yazımızda hatalar olduğunu düşünüyor olabilirsiniz. Peki neden bize ulaşmayı düşünmeyesiniz ki?

Hizmetlerimiz

Binlerce müşterimizin yararlandığı 100'e yakın hizmetlerimizden sizlerde yararlanabilirsiniz. Onlarca ücretsiz web hizmeti ve profesyonel destekle sizleri daima daha ileriye taşımayı hedefliyoruz.

Tüm Yenilik ve Kampanyalardan Haberdar Ol

Yazı hakkında ne Düşünüyorsunuz?