@burra, gelen form değeri kontrol edilir. Yani demek istediğim ekstra birşey eklemeye gerek yok.
Gelen csrf saldırılarına karşı da csrfToken kullanılır.
@burra, işlem no ya gerek yok. Zaten ajax post olarak gönderiyor verileri. Bu yüzden sadece post olup olmadığını kontrol etmesi yeterli.
Breadcrumb yapmak için ekstra bilgiye gerek yok. Bunun bir mantığı da yok. Sadece link veriyoruz o kadar.
Bootstrap breadcrumb;
Tıkla
Aynı sayfa için ajax kullanabilirsin. Ajax ile aynı sayfaya yönlendireceksin ve php kodlarını aynı sayfa içerisine yazacaksın.
if ($_POST):
// ajax ile form dan veri gelirse işleme devam et
// artık bu bölümde işlemlerin yer alacak
endif;
Ajax kısmında form ile aynı sayfaya yönlendir sayfanı, daha sonra üsteki kod yapısını ekle.
İlla farklı sayfa olmasına gerek yok. Mantık yine aynı.
Öncelikle kullanıcı mail adresini girip "bültene abone ol" butonuna tıkladığında, backend tarafında gerekli kontrolleri sağlarsın.
<?php
// Bulten formundan gelen verilerimiz
$csrfToken = $_POST['csrfToken'];
$mail = $_POST['email']
// csrf kontrolü, kötü amaçlı insanların abone spamı yapmasını engeller
if ($csrfToken == $_SESSION['csrfToken']):
echo "csrf güvenlik";
else:
// gelen değerin gerçekten mail olup olmadığını kontrol ediyoruz
if (filter_var($mail, FILTER_VALIDATE_EMAIL)):
// sadece gmail ve hotmail kabul edilmesi için kontrol sağlıyoruz
if (strstr($mail,'gmail.com') || strstr($mail,'hotmail.com')):
// bu alanda database e bağlanıp bu maili ekliyoruz
// fakat mail onaylanma durumunu 0 olarak kaydediyoruz
// ve kullanıcı mailine doğrulama linki gönderiyoruz
// linke tıklandığında mail onaylanma durumu 1 yapıyoruz
//
// artık database de kayıtlı olan ve durumu 1 olan maillere mail gönderebiliriz
else:
echo 'sadece gmail ve hotmail e izin veriliyor';
endif;
endif;
endif;
Database kısmını ve mail kısmını yazmadım. Mail göndermek için mailer kütüphanesini kullanabilirsin. Database bağlantısı da sana kalmış.
Herşey bittiğinde database'de doğrulanmış yani durumu 1 olan maillere bülten maillerini yine mailer kütüphanesini kullanarak atabilirsin.
Mesela yönetici paneline bir alan yaparsın ve bu alan doğrudan database de kayıtlı maillere mail atar. Veyahut sitende blog alanı olduğunu varsayalım ve her yeni blog paylaşıldığında otomatik buradaki maillere mail atar.
Gereksiz yük bindirmiyor. Template engine bazen sık kullandığımız kodları daha kısa yazmamızı sağlıyor. Daha derli toplu hoş görünen şablonlar ortaya çıkıyor. Ve en önemlisi zamandan kazandırıyor.
Şimdi gelelim işleyiş mantığına, yazılan kodları php türüne çevirir ardından cache olarak bunu tutuar.
Her siteye girdiğimizde bu motor çalışmaz, çünkü daha önce çalışmıştır bir kere ve bunu cache olarak saklamıştır.
Artık diğer kullanıcılar siteye girdiğinde performans kaybı yaşanmaz. Bizimde az sürede çok işi yapmamızı sağlar. En azından daha anlaşılırdır.
Mesela burada sade olarak değişkenimizi yazarız.
{{ $name }}
Çıktı olarak bize belli filterelerden geçirilmiş php kodunu verir.
<?php echo e($name) ?>
Kısacası geliştirme sürecinde daha az kod ile daha fazla iş yapma imkanı diyebiliriz.
Click olayından örnek vereyim.
Normalde bu şekilde bir kullanım sağladığımızda, html elementi sonradan eklendiğinde çalışmıyor.
$('.clickEvent').click(function () {
alert('Prototurk.com');
});
Fakat bu şekilde kullandığımızda html elementi sonradan eklense bile tıklama eventimiz çalışıyor.
$('body').on('click', '.clickEvent', function () {
alert('Prototurk.com');
});
Buradaki "click" eventi yerine mouseover,mouseenter,mouseleave gibi eventleri yazabilirsiniz.
Diğer detayları ve kullanım örneklerini görmek için tıklayınız.
@mirzakarahan hayır kullanımını neden sorayım. Mantığı ve yapılışı diye yazdım. Lütfen sırf yazmak için yazmayın
Composer ile github üzerindeki paketleri yükleyebilirsin. Youtube daki boilerplate videosunda da composer ile ekleniyor. Composer kullanmayı bilmiyorsan google dan bakabilirsin çok basittir.
Bazı kütüphaneler sadece laravele özgü yapıldığı için onları kendi projemizde kullanmak ugun olmuyor.