Merhaba arkadaşlar mobilhanem.com için hazırladığımız php derslerimizde bu ders GET ve POST Örnekleri ve GET methodunun biraz daha detayına bakacağız. Ayrıca Php’nin yine küresel değişkenlerinden olan $_REQUEST değişkenine bakacağız. POST methodunun genelde formlarda kullanıldığını ve GET methodununda sayfalar arasında değişken göndermek için kullandığımızı söylemiştik. $_REQUEST küresel değişkeni de sunucuya gelen istekleri dizi halinde bize gösterir. İçerisinde GET, POST, FILES gibi kürsel değişkenleri barındırır.
$_REQUEST Kullanmı
$_REQUEST değişkeni sunucuya gelen get, post ve files küresel değişkenlerini içerisinde barındırır. Örneğin:
Ad soyad ve profil resmi seçtiğimiz bir formumuz olsun. Formdan sunucuya gönderilen istekleri aşağıdaki şekilde görebiliriz.
<?php if($_POST || $_GET) var_dump($_REQUEST); ?> <form action="?islem=form" method="POST"> <input type="text" name="ad_soyad" placeholder="Ad Soyad giriniz" /> <br/> <input type="file" name="profil_resmi" /> <br/> <button> Gönder</button> </form>
Yukarıdaki formu post ettiğimizde aşağıdaki şekilde bir çıktı bize verir.
GET ve POST Örnekleri
Örnek-1)
Anasayfa, Hakkımızda ve haberler adında 3 adet sayfamız olsun. Bu 3 sayfa içinde farklı farklı php dosyası oluşturmak hem bizim işimizi zorlaştırır hemde hafıza maliyetimizi artırır. Biz tek bir sayfada kullanıcıya 3 sayfa gösterelim hem sayfa fazlalığından hemde hafıza maliyetinden kar etmeye çalışalım.
Algoritmamız: Sayfalarımıza bizim belirlediğimiz indis numaraları verelim.
- anasayfa
- hakkımızda
- haberler
Daha sonra anasayfada get methodu ile bu indisleri kullanarak diğer sayfalarımza erişelim.
Kodumuz:
<?php $v = isset($_GET["v"]) ? intval(trim($_GET["v"])) : 1; // eğer $_GET["v"] değişkenimiz yoksa biz anasayfadayızdır bu yüzden indisi 1 yaptık. // linklerimiz Tüm Sayfalarda Görünsün. echo ' <a href="?v=1">Anasayfa</a> | <a href="?v=2">Hakkımızda</a> | <a href="?v=3">Haberler</a> | <hr> '; if($v == 1) { // Burada Anasayfa Görünür. echo ' Merhaba Anasayfadasın.'; }else if($v == 2) { // Burada Hakkımızda Görünür. echo "Merhaba Hakkımızda Sayfasındasın."; }else if($v == 3) { // Burada Haberler Görünür. echo "Merhaba Haberler Sayfasındasın."; }else { // Burasıda Farklı Bir İndis Gelirse Yapılan İşlemlerimiz. echo "Üzgünüm Bu Sayfa Henüz Oluşturulmadı. Bunun Bir Hata Olduğunu Düşünüyorsan Bize Bildir... "; } ?>
Kodumuza bakacak olursak:
- index.php olarak girersek $_GET[“v”] değişkenimiz olmadığı için indis otomatik 1 yapılacak ve anasayfa gösterilecek.
- index.php?v=1 şeklinde giriş yaparsak yine anasayfamız görünecek.
- index.php?v=2 şeklinde giriş yaparsak hakkımızda sayfamız görünecek.
- index.php?v=3 şeklinde giriş yaparsak haberler sayfamız görünecek.
- v değerimiz boş veya 1,2,3 değerleri dışında bir değer girilirse else kısmındaki uyarı mesajımız kullanıcıya gösterilecek.
Örnek-2)
index.php ve haberler.php diye iki adet sayfamız olsun. index.php de haberler başlıkları listelensin ve haberler.php sayfamızda ise haberlerimizin içeriğini okuyabileceğimiz bir sayfa yapısı oluşturalım.
Algoritmamız:
- index.php de haber başlıkları ve get methoduna parametre olarak haberlerin id değerleri verelim.
- haberler.php sayfamızda ise index.php den gelen id değerine göre haber içeriği gösterelim.
Kodumuz:
<?php for($i=1;$i<=10;$i++) { echo ' <a href="haberler.php?v='.$i.'">'.$i.'. Haber başlığı.</a> <br/>'; } ?>
10 adet haberi for döngüsü ile oluşturduk.
<?php if(isset($_GET["v"]) && !empty($_GET["v"])) { $v = intval(trim($_GET["v"])); echo "$v. Haber İçeriğini Okuyorsunuz."; }else { echo "Bu sayfaya anasayfadan gelmelisiniz."; } ?>
haberler.php sayfamızda ise haber id değeri gelmişmi kontrol ettik. Eğer haber id değeri gelmemişse bir uyarı verdik ve haber id değeri gelmişse haberi kullanıcıya gösterdik.
Son olarak POST methodu ile bir adet üye kaydolma formu yapıp dersimizi sonlandıralım.
Üye Kayıt Formu
Klasik bir üye kayıt formu yapalım. Öncelikle HTML kısmını halledelim.
<form action="" method="POST"> <table> <tr> <td>Ad Soyad</td> <td>:</td> <td> <input type="text" name="ad_soyad" /></td> </tr> <tr> <td>E-Posta</td> <td>:</td> <td> <input type="email" name="e_posta" /></td> </tr> <tr> <td>Şifre</td> <td>:</td> <td> <input type="password" name="sifre" /></td> </tr> <tr> <td>Şifre Tekrar</td> <td>:</td> <td> <input type="password" name="sifre_t" /></td> </tr> <tr> <td>Öz Geçmiş</td> <td>:</td> <td> <textarea name="oz_gecmis" id="" cols="22" rows="10"></textarea> </td> </tr> <tr> <td colspan="3" style="text-align:right;"> <button type="submit"> Gönder</button></td> </tr> </table> </form>
Php kodumuz ve formumuzun son hali aşağıdaki gibi olacak.
<?php if(isset($_POST["gonder"])) { // butona tıklandığında yapacağımız işlemler. $ad_soyad = addslashes(trim($_POST["ad_soyad"])); $eposta = addslashes(trim($_POST["e_posta"])); $sifre = addslashes(trim($_POST["sifre"])); $sifre_t = addslashes(trim($_POST["sifre_t"])); $oz_gecmis = addslashes(trim($_POST["oz_gecmis"])); // formdan gelen verileri aldık. if(empty($ad_soyad) || empty($eposta) || empty($sifre) || empty($sifre_t) || empty($oz_gecmis)) { // herhangi bir veri boş gelmişse uyarı verelim. echo 'Lütfen Boş Alan Bırakmayınız.'; }else if($sifre != $sifre_t) { // şifreler uyuşmuyorsa hata verelim. echo 'Girdiğiniz Şifreler Farklı!'; }else if(!filter_var($eposta,FILTER_VALIDATE_EMAIL)) { // e posta doğru formatta girilmiş mi kontrol edelim. echo 'Geçersiz E-Posta Adresi'; }else { // şartlarımızın hepsi sağlanıyosa artık kayıt işlemi yapabiliriz. echo 'Başarıyla kayıt oldunuz.'; } } ?> <form action="" method="POST"> <table> <tr> <td>Ad Soyad</td> <td>:</td> <td> <input type="text" name="ad_soyad" /></td> </tr> <tr> <td>E-Posta</td> <td>:</td> <td> <input type="email" name="e_posta" /></td> </tr> <tr> <td>Şifre</td> <td>:</td> <td> <input type="password" name="sifre" /></td> </tr> <tr> <td>Şifre Tekrar</td> <td>:</td> <td> <input type="password" name="sifre_t" /></td> </tr> <tr> <td>Öz Geçmiş</td> <td>:</td> <td> <textarea name="oz_gecmis" id="" cols="22" rows="10"></textarea> </td> </tr> <tr> <td colspan="3" style="text-align:right;"> <button type="submit" name="gonder"> Gönder</button></td> </tr> </table> </form>
Formda zaten gerekli açıklamaları yazdım arkadaşlar. Ek olarak filter_var fonksiyonuna bakacak olursak:
filter_var($degisken,ISLEM_TIPI) şeklinde iki değişkeni olan filter_var fonksiyonu değişkenin istnilen şartlara uygun olup olmadığına bakar.
Biz FILTER_VALIDATE_EMAIL diyeek değişkenimizin email şartlarına uyup uymadığını kontrol ettik.
Şimdilik sistem güvenliğini pek ön planda tutmuyoruz ama veri tabanı öğrendiğimiz zaman sistem güvenliği üzerinde daha fazla duracağız arkadaşlar.
Mobilhanem.com için hazırladığımız bir php dersimizin daha sonuna geldik.
Bir sonraki dersimiz olan PHP Dersleri – include ve include_once dersimizde göüşmek üzere hoşçakalın 🙂
Konuyla ilgili yorumlarınızı konu altından yapabilirsiniz, ayrıca sorularınızı yine konu altından ve Mobilhanem Soru&Cevap bölümünden sorabilirsiniz.
Tüm php dersleri için tıklayınız..
8