Selam,
Bugün öğreneceğim konular:
İlk olarak basit bir form oluşturarak başlıyorum.
<form action="dogrulama" method="get">
<label>
Kullanıcı:
<input type="text" name="kullaniciAdi"/>
</label>
<br/>
<label>
Şifre:
<input type="password" name="sifre"/>
</label>
<br/>
<input type="submit"/>
</form>
Gönder butonuna tıkladığımız zaman “localhost/dogrulama” url adresine yönlendirilip, GET metodu ile kullaniciAdi ve sifre değerlerimizi taşıyacağız. Bunun içinde routes.php dosyamızda gerekli kodları ekliyorum.
Route::get("dogrulama", function()
{
return "Doğrulama sayfasındayım";
});
localhost/dogrulama sayfasına başarılı bir şekilde ulaştığımızı anlamak için, ufak bir mesaj döndürüyoruz sadece.
Formumuzda kullanıcı ve şifre bölümlerini doldurup, gönder butonuna tıklarsak, localhost/dogrulama adresine yönlendirileceğiz ve adres çubuğumuz şuna benzeyecektir: localhost/dogrulama?kullaniciAdi=admin&sifre=1234
Böyle bir işlem için GET metodunun güvenli olmadığını zaten biliyoruz. Şimdi aynı formu POST metodu ile çalıştıralım.
<form action="dogrulama" method="POST">
<label>
Kullanıcı:
<input type="text" name="kullaniciAdi"/>
</label>
<br/>
<label>
Şifre:
<input type="password" name="sifre"/>
</label>
<br/>
<input type="submit"/>
</form>
Gönder butonuna tıkladığımız zaman, Laravel’in o güzel hata sayfasının bizi karşılamış olması gerek. Çünkü routes.php dosyamıza da ufak bir ayar çekmemiz lazımdı. Şimdiye kadar Route classını sürekli get metodu ile kullanmıştım ama POST metodu ile bir veri göndermem gerekiyorsa get yerine post metodunu kullanmam gerek. Yani routes.php dosyamız şu şekilde olmalı:
Route::post("dogrulama", function()
{
return "Doğrulama sayfasındayım ve POST metodu çalışıyor!";
});
Ve şimdi her şeyin yolunda olması gerek. Ayrıca adres çubuğunda sadece localhost/dogrulama yazıyor. Böylesi biraz daha güvenli oldu.
Formumuzdan gelen verileri almak için de klasik yöntemimizi kullanabiliriz.
Route::post("dogrulama", function()
{
$kullanici = $_POST["kullaniciAdi"];
$sifre = $_POST["sifre"];
return "Kullanıcı: ".$kullanici." şifre: ".$sifre;
});
Ya da bunun yerine formdan gelen verileri bir dizi olarakta alabiliriz:
Route::post("dogrulama", function()
{
var_dump($_POST);
});
GET metodu ile kullanmak istersek $_POST yerine $_GET yazmamız yeterli. Ve tabii ki Route::get() içinde kullanmalıyız.
Formdan gelen veriyi Input classının get() metodu ile de alabiliriz. Formu oluştururken input alanlarına verdiğimiz name değerlerini metoda argüman olarak göndermemiz yeterli.
$kullaniciAdi = Input::get("kullaniciAdi");
Bir önceki derste HTMLBuilder classını öğrenmiştim. View dosyalarını daha pratik şekilde düzenlememe yardım eden fonksiyonlara sahipti. FormBuilder ile de daha pratik şekilde formlar oluşturabiliriz.
FormBuilder’ın bütün fonksiyonlarına ulaşmak için buraya bir link bırakıyorum. Şimdi yukarıdaki formu bu kez FormBuilder ile yapıyorum.
{{ Form::open( array("url" => "dogrulama", "method" => "POST") ) }}
{{ Form::text("kullaniciAdi", "Varsayılan değer") }}
{{ Form::password("sifre") }}
{{ Form::submit("Giriş yap") }}
{{ Form::close() }}
open() metoduna dizi olarak bazı elemanlar gönderiyoruz. Zaten dizinin anahtarları ve değerleri ne olduğunu açıklıyor.text tipinde bir input alanı oluşturduk. İlk paramatre name için. Diğer parametreleri göndermesekte olur. inputun tipini password yaptık.close() ile kapatıyoruz.Bonus olarak bir de select box yapımını paylaşıyorum:
{{ Form::select("numara", $numaralar) }}
$numaralar değişkeni, routes.php den gelen bir diziyi barındırıyor. View dosyalarına veri göndermeyi önceki derslerde öğrendiğim için burada değinmedim.
Bugünkü konularım oldukça basitti bence ve kısa sürdü 🙂 Sıradaki derste ise veri tabanı işlemlerini öğreneceğim.
Hatırlatma1: Laravel öğrenmek için bu linkteki eğitimi takip ediyorum ve öğrendiklerimi burada paylaşıyorum.Buraya tıklayarak eğitimin anasayfasına ulaşabilir ve kaynak kodlarını indirebilirsiniz.
Hatırlatma2: Lütfen eksik,hatalı ya da düzeltilmesi gereken bir şey farkederseniz bana bildirin.
Celery ile alakalı "best practice"leri ve faydalı araçları bir araya getiren güzel bir checklist'e denk…
Diziler en temel ve sık kullandığımız araçlardan... Kod yazarken işimizi kolaylaştıracak, daha temiz kod yazmamızı…
listve tuple bilginizi test etmek ister misiniz? realpython.com da keşfettiğim ve Türkçe'ye çevirdiğim mini teste…
Rehberlik sağlaması ve bilgi tazelemesi açısından faydalı olduğunu düşündüğüm bir Toptal blog paylaşımınıTürkçe'ye çevirdim.Devamını okuyunBilmeniz…
Angular componentlerine console üzerinden hızlıca erişmek için kullanılan bir teknik. Unutmamak için kendime not düşüyorum.Devamını…
Geçtiğimiz günlerde keşfettiğim ve oldukça da hoşuma giden repoyu paylaşmak istiyorum: lydiahallie/javascript-questions Genel olarak temel…