Go Dilinde Concurrency

2,178 More

Projedeki Git Dosyaları Nasıl Silinir?

1 7,655 More

yTheme

4 2,658 More

Sunucu Güvenliği | SSH (Secure Shell) Kullanımı

2 2,103 More

Truemag

  • PHP
  • Golang
  • Laravel
  • Linux
  • SQL
  • SEO
  • WordPress
  • Diğer
    • Yazılım
    • Javascript
    • Css/XHtml/W3C
    • Genel
    • Tanıtım
    • Ajax
  • Home
  • ANASAYFA
  • HAKKIMDA
  • SPONSORLUK
  • ARŞİV
  • İLETİŞİM
  • BENİMLE ÇALIŞMAK İSTER MİSİNİZ?

Laravel Ajax Contact Form. Laravel ile Ajax Kullanımı.

laravel

Bir PHP çatısı (framework) olan Laravel ile uygulama geliştirirken basit ajax formlarına ihtiyaç duyabiliyoruz. Konuyu anlatmak için bu yazıya başladığımda en iyi anlatma şeklinin bir örnek (mini proje) geliştirmek olduğunu düşündüm ve bu sebeple Laravel Ajax Contact Form (iletişim formu) hazırladım. Aslında daha önce Laravel ile eposta göndermeyi anlatmıştım ancak bu sefer ki ajax da içeren daha derli toplu bir mini proje oldu ;)

Laravel Ajax Contact Form

Laravel ile ajax kullanımını anlatan iletişim fomuna github sayfasından ulaşabilirsiniz. Formu oradan indirip inceleyebilirsiniz fakat ondan önce Laravel ile ajax kullanımında dikkatinizi çekmek istediğim iki konu var.

1. Ajax ile Laravel CSRF Token Kullanımı

Laravel cross-site request forgery (CSRF) saldırılarını önlemek için CSRF token üretmektedir. Tipik olarak bu bir değişkendir ve her form gönderilişinde bu değişkenin de gönderilmesi gerekir. Ajax formlarında bunu göndermek için şöyle bir yol izleyebilirsiniz.

Öncelikle formun içinde şu şekilde bir hidden input tanımlamalıyız.

1
<input type="hidden" id="_token" name="_token" value="{{ csrf_token() }}">

Ardından ajax javascript kodumuzun değişken kısmına bu değişkeni eklemeliyiz. Böylece formumuz ile birlikte token değerini ajax metodu ile göndermiş oluyoruz.

1
2
3
4
5
6
7
8
9
10
11
...
$.ajax({
type: 'POST',
url: $form.attr('action'),
data: {
name: $form.find('#name').val(),
email: $form.find('#email').val(),
_token: $form.find('#_token').val(),
message: $form.find('#message').val()
}
...

2. Laravel Controller Ajax Fonksiyonu

Ajax ile formu gönderdiğimizde bir Laravel’de yazmış olduğumuz bir PHP fonksiyonu bunu karşılayıp karşılığında bize bir değer döndürecektir. Normal şartlarda laravel controller içindeki fonksiyonlar birer view dosyasını işaret ederler. Ajax ile gönderilen form ise json olarak cevap vermeli. İletişim formu fonksiyonumuzun son kısmına bakarsanız nasıl bir cevap vermemiz gerektiğini görebilirsiniz.

1
2
3
4
5
6
7
8
9
...
if(count(Mail::failures()) > 0){
    $status = 'error';
} else {
    $status = 'success';
}
 
return response()->json(['response' => $status]);
...

Mail göndermek için önce bir mail driver oluşturmanız gerektiğini unutmayın. Gmail’i mail driver olarak nasıl kullanabileceğinizi de şurada anlatmıştım.

Ayrıca örnek projede jQuery validation eklentisini kullandığım için aşağıdaki örnekte olduğu gibi kendinize özgü doğrulama yöntemleri oluşturabilirsiniz.

1
2
3
4
5
6
7
8
9
$("#contactForm").validate({
  rules: {
    name: "required",
    email: {
      required: true,
      email: true
    }
  }
});

Uygulamanın geri kalanını github‘dan inceleyip dilediğiniz gibi kullanabilirsiniz. Sevgiler saygılar.

Dec 11, 2017Erhan Yakut
Cloud Sunucu


hosting

Laravel ile Gmail Üzerinden Eposta GöndermeFiziki Güvenlik Tedbirleri Nelerdir?
You Might Also Like
 
PHP İpucu #3 – Framework Kullanın
 
Laravel İletişim Formu ile Eposta Gönderme
Erhan Yakut
3 years ago Ajax, Javascript, Laravel, PHPLaravel, laravel ajax contact form, laravel ajax kullanımı1,699
Sponsorlar

sponsor

sponsor

sponsor

sponsor
Bağlantılar
  • Beyazıt Kölemen
  • Domatessuyu
  • Lezzetli Robot Tarifleri
  • Ofizzo
  • PHP Dersleri
  • Wordpress Hosting
Random Posts
PHP Günleri #1 / mysql_* Semineri
Ajaxed: ASP İçin AJAX Kütüphanesi
Css İle Sütun Yapısı
Fatih Hayrioğlu’nun Not Defteri
formDoğrula | PHP ile Form Doğrulama Sınıfı
sdafasdf
Hakkımda

Bilişim Teknolojileri alanında içerik üretmek üzere oluşturulmuş olan Yakuter.com 2006 yılında Erhan Yakut tarafından hayata geçirilmiştir. devamını okuyun…

CLOUD SUNUCU DESTEĞİ
2006-2020 © Yakuter