Laravel ile Form Verisi Gönderme ve Yakalama

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 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 😊 

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıPHP ile Gzip İşlemi
Sonraki YazıLaravel Request Özellikleri
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz