Laravel ile Form Verisi Gönderme ve Yakalama
Hepinize merhaba dostlarım 😊. Uzun ve yoğun ama aynı zamanda hızlıca geçen bir haftanın ardından gelen birpazar günü yinee sizlere bir makale hazırlamanın mutlulugunu yaşıyorum 🙃. Çünkü bu makaleleri yazmak bana neredeyse terapi gibi geliyor ciddi diyorum.
Uzun süredir ayrı kaldığımız Laravel konularından bir yenisine daha değineceğim bugün. Aslında ilk zamanlarda anlatmam gereken bir konuydu bu dostlarım. Ama nasip bugüneymiş konumuza geçelim diyecekken tam sizin aklınızda olan soru zihnimde canlandı
Hocam kusurumuza bakmayın muhabbetiniz güzel gidiyordu da bugün hangi konu üzerinde durcaz 😅
İşte aradığım soru ve çok fena sıkıştırdınız diyebilirim 😅. Bu makalemde sizlere Laravel üzerinde Form işlemlerinden bahsedeceğim. Normalde uzun uzun anlatmama gerek olmadığını düşünüyorum çünkü hepimiz biliyoruz Web sitelerimizde hemen hemen her zaman kullandığımız GET, POST işlemleri bunlar 😊. O halde daha fazla sözümüzü uzatmadan dostlarım Laravel proje ortamımızı kuralım ve GET methodu işlemi ile konumuza giriş yapalım
GET METHODU ile FORM GÖNDERME
Eveeeet geldik dostlarım artık GET methodu ile veri gönderme işlemimize 😊. GET methoduna bakacak olursak dostlarım gönderdiğimiz verilerin URL kısmında gözükeceği durumlarda kullanıyoruz. Örnek verecek olursak dostlarım hepimizin ilk başladığı core php üzerinde islem.php?urunsil=1 şeklinde olan URL ye dikkat edecek olursak urunsil isminde ve içerisinde 1 olan bir değer gönderdik. Gelin şimdi bunu Laravel üzerinde gerçekleştirelim. Örnek olarak bir controller dosyası açalım. Ben Controllers klasörü altında front dizini oluşturdum ve içerisine de indexController.php oluşturdum. Bunun için yazmış olduğum artisan komutu
php artisan make:controller front/indexController
şeklindedir. Bunu terminalimiza yapıştırıp Enter tuşuna bastığımızda bize rahatça oluşturacaktır. Bunu yazdıktan sonra dostlarım web.php dosyamıza girelim ve orada bize hazır olarak gelen rotasyon kodlarını silelim. Onun yerine biz
Route::group(['prefix'=>'/','namespace'=>'front','as'=>'front.'],function (){
Route::get('',[\App\Http\Controllers\front\indexController::class,'get_gonder_form'])->name('get_gonder_form');
Route::get('get-gonder',[\App\Http\Controllers\front\indexController::class,'get_gonder'])->name('get_gonder');
});
şeklinde kodlarımızı yazalım. Bu kısmı da rahatça tamamladığımıza göre dostlarım artık gelelim GET methodu göndereceğimiz formu tasarlama işlemimize. Hemen resources/views altında get_form.blade.php isminde bir view dosyası açalım ve içerisine örnek olarak
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Laravel Form İşlemleri | MFSoftware Blog</title>
</head>
<body>
<form action="{{ route('front.get_gonder') }}" method="GET">
<label for="">İsim Giriniz</label>
<br>
<input type="text" name="isim">
<br>
<button type="submit">Gönder</button>
</form>
</body>
</html>
şeklinde kodlarımızı yazalım. Ben burada isim olarak input name verdirdim 😅. Siz istediğiniz şekilde ayarlayabilirsiniz tamamen size kalmış. Sonrasında dostlarım oluşturmuş olduğumuz indexController dosyası içini de
<?php
namespace App\Http\Controllers\front;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class indexController extends Controller
{
public function get_gonder_form(){
return view('get_form'); // formumuzu açtık
}
// GET VERISI GONDER
public function get_gonder(Request $request){ // bu kısımdan requestleri yakaladık
echo "GELEN GET Verisi-------> ".$request->get('isim'); // get ile gelen "isim" verisini bastırdık
}
}
şeklinde düzenleyelim. Sayfamızı açtığımızda karşımıza gelecek olan form
şeklinde sayfamız açılınca formumuz rahat bir şekilde geliyor dostlarım bunda tamamız 👍. Şimdi örnek olarak içerisine MFSoftware Blog yazdığımda sayfamın url yapısı
http://127.0.0.1:8000/get-gonder?isim=MFSoftware+Blog
şeklinde olacak ve ekranıma gelecek olan çıktı da
şeklinde olacaktır. Bu kısma kadar Laravel ile olan aşkımız sorunsuz şekilde ilerliyor. Şimdi gelelim POST ile veri gönderme işlemimize bir bakalım 😊
POST METHODU ile FORM GÖNDERME
Geldik dostlarım POST methodu ile veri gönderme işlemimize 😊. Her zaman GET ile veri göndermemiz sağlıklı olmaz mesela üye login işleminde kullanıcı verilerini girip Giriş Yap tuşuna bastığında URL kısmında bu bilgilerin görüntülenmesi kullanıcıyı tedirginliğe düşürebilir. İşte bu sebepten dolayı dostlarım bazı verileri POST methodu aracılığıyla göndermemiz gerekir. Nasıl diye merak ediyorsunuz anlıyorum 😊. Sözü daha fazla uzatmadan hemen kodlamaya geçiyorum.
Öncelikle dostlarım post_form.blade.php isimli bir view oluşturalım. Onun içerisini de
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport"
content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Laravel Form İşlemleri | MFSoftware Blog</title>
</head>
<body>
<form action="{{ route('front.post_gonder') }}" method="POST">
@csrf
<label for="">İsim Giriniz</label>
<br>
<input type="text" name="isim">
<br>
<button type="submit">Gönder</button>
</form>
</body>
</html>
şeklinde düzenledik. Şimdi merak etmişsinizdir dostlarım
Hocam get formu ile birebir kullandık buraya kadar sıkıntı yok lakin @csrf kullanmamızın sebebi nedir ?
aslında çok güzel bir soru dostlarım. Sebebini hemen size anlatayım.
Laravel Framework geliştiricileri siteler arası istek sahtekarlığı önüne geçmek için kullanılan bir güvenliktir. Yani bir kişinin web sitesine girmiş gibi gözüküp saldırmasını engellemektir amaç. Bunu sadece POST ile veri gönderme işlemlerinde kullanacağız dostlarım. Ha kullanmaz isek karşımıza gelecek olan görüntü
şeklinde olacaktır. Yani sayfa sonlandırıldı diye bir hata gelecektir. Biz de legal olarak işlem yaptığımız için ve aynı zamanda illegalliğe karşı olduğumuz için bu güvenliği yazmamız gerekti 😊.
Form kısmını da ayarladığımıza göre dostlarım web.php kısmının ayarlanmasını yapalım. Hemen web.php dosyasının içerisine girelim ve
Route::group(['prefix'=>'/','namespace'=>'front','as'=>'front.'],function (){
Route::get('',[\App\Http\Controllers\front\indexController::class,'get_gonder_form'])->name('get_gonder_form');
Route::get('get-gonder',[\App\Http\Controllers\front\indexController::class,'get_gonder'])->name('get_gonder');
// POST KISMI
Route::get('post-gonder',[\App\Http\Controllers\front\indexController::class,'post_gonder_form'])->name('post_gonder_form');
Route::post('post-gonder',[\App\Http\Controllers\front\indexController::class,'post_gonder'])->name('post_gonder');
});
şeklinde POST KISMI şeklinde yazan kısmı ekleyelim. Bu kısmı hallettikten sonra dostlarım indexController içerisine girelim ve
<?php
namespace App\Http\Controllers\front;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
class indexController extends Controller
{
public function get_gonder_form(){
return view('get_form');
}
// GET VERISI GONDER
public function get_gonder(Request $request){
echo "GELEN GET Verisi-------> ".$request->get('isim');
}
// POST FORMUNA ILERLER
public function post_gonder_form(){
return view('post_form');
}
// POST VERISI GONDER
public function post_gonder(Request $request){
echo "GELEN POST Verisi-------> ".$request->get('isim');
}
}
şeklinde ayarladık. Bu kısmı da ayarladıktan sonra sitemize gelelim ve URL kısmına
http://127.0.0.1:8000/post-gonder
şeklinde linkimizi yazalım. Karşımıza gelecek olan çıktı
şeklinde olacaktır dostlarım. Bu input alanına da gelip MFSoftware Blog yazalım ve Gönder tuşuna basalım. Ekranımıza gelecek olan çıktı
şeklinde karşımıza gelecektir. Sorunsuz şekilde çalışıyor mis gibi 😊💯
Eveeeet dostlarım 😊. Bu yazımda sizlere Laravel Framework üzerinde form ile veri gönderme ve yakalamayı elimden geldiğince dilim döndüğünce anlatmaya çalıştım. Umarım faydalı olmuşumdur. Eksik veya hatalı bir anlatım yapmış isem benimle iletişime geçmekten çekinmeyin 😊. Konu başlarda biraz karmaşık veya zor gelebilir dostlarım anlıyorum. Özellikle öğrenme sürecinde bu gibi durumlarla karşılaşmanız son derece doğaldır. Bu süreç içerisinde yapmanızı istediğim tek şey her yazımda da dediğim gibi "İstikrarlı ve Azimli Olmalısınız. Bolca Pratik Yapmalısınız 😊.". Bu dediklerimi hayat felsefeniz yaptığınız sürece başarı sizler için kaçınılmaz olacaktır.
Aynı zamanda 25 Aralık 2021 de yayına almış olduğum yazılımcıların yardımlaşma platformu olan seyyaryazilimci.com sistemine kayıt olabilir, yazılımsal konularda sorular sorabilir veya yanıt bekleyen yazılımcı arkadaşlarımıza yanıt verebilirsiniz. Yalnız belirli bir süre boyunca sorduğunuz sorular ve yaptığınız yanıtlar admin kontrolünden geçeceği için sisteme hemen düşmeyecektir. Bilginiz olsun
Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim 😊
Yazar Hakkında
Kendi Halinde Bir Backend Developer