Ö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.
Kimse cevap vermediğine göre yine kendi sorunumun çözümünü kendim araştırıp buldum. Her zaman olduğu gibi
Öncelikle yapmak istediğini anlamadım. Sadece silmek gibi duruyor.
Yazdığın kodlar mantığa meydan okuyor resmen. Benim yazdığımı kullan hem daha az yer kaplar hemde daha basit bir kullanımı var.
class Name {
public function delete(string $tableName, string $where,string $value): bool
{
$delete=$this->prepare("DELETE FROM $tableName WHERE $where ='$value'");
$delete->execute();
return $delete->rowCount();
}
}
Kullanım:
require 'Dosya_Adı';
$name = new Name();
$name->delete('name','psira','1');
Yukarıdaki kullanım sadece siler. Bunun silinip silinmediğini kontrol edebilirsin.
Kontrollü:
require 'Dosya_Adı';
$name = new Name();
if ($name->delete('name','psira','1')): //Eğer silinirse devam et
$name->delete('name','psira','2'); //ve devamında bunu da sil
echo 'silindiler';
endif;
Json ile yaptım ve php yardımıyla düzenleme silme ekleme gibi herşeyi dinamik yaptım.
Veritabınana bağlanmak çok saçma her sayfa açılığında veritabanına sorgu gidecek.Sesion olarak tutmak olabilir fakat bu verileri hem kullanıcıda hemde kedimizde sakladığımızı düşünürsek yine saçma oluyor.
Çözüm:
En mantıklısı ve doğrusu verileri sıkıştırılmış json olarak tutmak. Php tarafından okunup düzenlenebilir oluyor böylece. Sayfa açılışındaki hıza etkisi 1 salise falan oldu diyebilirim.
Json encode ve decode ile php tarafından okunup düzenlenebilir.
Dil dosyasını json türünde kaydettim böylece php tarafında json decode ile ile okuyup yazdırabiliyorum. Ve bütün değişiklikleri yapabiliyorum. Kendimce json'un daha performanslı olduğuna karar verdim. Yazdığınız yöntemler benim için yararlı değildi. En iyi yöntem için tayfun hocanın cevabını beklerdim. Sağlk olsun.