Tayfun hocanın videoda yaptığı direktifleri kullanmak için, Core/View.php içerisindeki directive altındaki returnlere bakın.
Ben hata alma kodu için bu direktife baktım ve kodunu aşağı ekledim. Kolay gelsin.
<?php if (isset($errors[' . $name . '])): ?>
<div class="error-msg"><?=$errors[' . $name . '][0]?></div>
<?php endif; ?>
Tarayıcılar ve kullandığın host css dosyalarını ve javascript dosyalarını cache alabiliyor. Bu tür durumlarda sonradan yaptığın değişiklikleri göremeyebilirsin.
Çözümü;
Tarayıcında Ctrl+f5 tuşuna bas. Önbellek temizlenir ve cache silinir.
Hala düzelmezse dosya yollarını kontrol et. Doğru mu?
Aldığın hosting sağlayıcısı sana cloudflare bilgileri verdiyse cloudflare hesabına giriş yapıp geliştirici modunu aç.
Geliştirici modunu açmak
settings>development mode
Cookie ile bunu yapabilirsin. Session yerine cooike kullanırsın fakat güvenli bir şifreleme yöntemi kullanman gerekiyor.
Cookieler ile dilediğin kadar oturumu açık tutabilirsin. Hatta biraz daha geliştirip seçenek haline getirebilirsin.
Kullanıcı giriş yaparken oturumu sürekli açık tut seçeneğini işaretlediğinde sürekli açık kalacak şekilde cookie kullanırsın. Tıklamazsa normal olarak session kullanırsın.
Şuna göz atabilirsin;
Şu şekilde bir kullanım yaptığınızda sorununuz çözülecektir.
$_POST = array_map(function($post){
return htmlspecialchars($post);
},$_POST);
Blade tema moturunu kullanmak istemiyorsanız ekstra birşey yapmanıza gerek yok.
Sadece view klasöründe bulunan .blade.php uzantılarını .php yapın.
Kütüphaneleri güncellemek çok basit. Composer ile bütün güncelleme işlemleri 1 tıkta yapılabiliyor.
Composer nedir ne değildir bilmiyorsan. Şu içeriklere göz at;
- Video: https://www.youtube.com/watch?v=wmqB20fnfho
- Yazılı: http://www.erbilen.net/etiket/composer-nedir/
Php sürümünü güncellemek istediğin takdirse ise, yine ekstra birşey yapmana gerek yok.
Güncelleme sunucu tarafında gerçekleşir. Sonrasında gelmiş yeniliklere bakarak yazılımında kullanabilirsin.
[Düzenleme]
Geliştirici kütüphaneyi geliştirmeyi bıraksa bile kullanabilirsin. Fakat burada popüler kütüphaneler seçmeye dikkat et. Böylece sorun yaşamazsın.
Daha öğrenim aşamasındasın, yapılacak nice uygulamalar var.
- Wordpress'de eklenti geliştirebilirsin.
- Tema satış sitelerinde tema yapıp satabilirsin.
- Xenforo gibi forum scriptlerine eklenti ve tema geliştirebilirsin.
- Kişisel portföy sayfası yapabilirsin.
- Profesyonel seviyeye geldiğinde öğrendiklerinden eğitim verebilirsin.
Aslında bunun gibi onlarca seçenek var. Zaten yapılmış diye bırakacak mısın?
Belki daha iyisini sen yapacaksın. Herşeyi geçelim türkiyede bir müşteri bulduğunda adam türkçe destek ister. Şuana kadar yapılmışların çoğu ingilizce.
Bu kütüphanelerin bazıları laravel tarafından kullanılıyor ve çok popüler kütüphanelerdir. Performans anlamında gayet iyiler. Güvenlik bakımından da sizi endişelendirecek bir şey olduğunu sanmıyorum. Bütün kodlar açık kaynaklı.
Tayfun hocanın hazırladığı boilerplate başlangıç için ufak çaplı bir örnek. Daha geniş işlerde bu boilerplate'e daha fazla kütüphane eklenebilir veya laravel gibi frameworkler kullanılabilir. Fakat doğru geliştirildiği sürece mühasabe gibi projelerde kullanılması yanlış değildir.
Sanırım aynı sayfaya post etmenin sakıncılarını merak ediyorsun.
Öncelikle şöyle başlayayım. Formdan gelen verileri aynı sayfaya göndermen ekstra güvenlik sorunu yaratmaz. Genel olarak formlarda kullanman gereken önlemleri alman yeterlidir. Peki bunlar nedir;
- CsrfToken => Sitemize girmeden bize sahte veriler göndermeye çalışanları durdurur.
- Zararlı kodlardan arındırmak. (Örnek 0.1)
- Form butonuna basılıp basılmadığını kontrol etmek (Örnek 0.2)
- Başındaki ve sonundaki boşlukları silmek (Örnek 0.3)
[Önrek 0.1]
<?php
$csrfToken = md5(uniqid());
$_SESSION['csrfToken'] = $csrfToken;
?>
<form action="" method="post">
<input name="text1" type="text">
<input name="text2" type="text">
<input name="csrfToken" value="<?= $csrfToken ?>" type="text" hidden>
<button>gönder</button>
</form>
if ($_SESSION['csrfToken'] == $csrfToken) {
//
}
[örnek 0.2]
$_POST = array_map(function($post){
return htmlspecialchars($post);
},$_POST);
[Örnek 0.3]
<form action="" method="post">
<input name="text1" type="text">
<input name="text2" type="text">
<button name="button">gönder</button>
</form>
if ($_POST['button']) {
//
}
[Örnek 0.4]
$name = trim($_POST['name']);
Geçen gün soruları geziyordum ve bir soru çok hoşuma gitti cevabı da vardı. Dedim bunu kaydedeyim zamanı geldiğinde gelip bakarım. Birde ne göreyim soruları kaydetme özelliği yok.
Siteye soruları kaydetme özelliğinin gelmesi çok rahatlık sağlar.