Güzel anlatım olmuş ama biraz daha geliştirmen lazım.
Break - case yapısında "sürekli caselerin içerisinde kontrol ettirin " diyorsun ne kadar çok tekrarı olur farkındamısın?
Php dosyanızın üzerinde bir kere session'ı kontrol ettirilmesi yeterli. Kodlar yukarıdan aşağıya doğru okunur ilk başta session yoksa gelen isteği başka sayfaya yönlendirebilir veya php sayfanızın çalışmasını durdurabilirsiniz. Böylece sürekli case içerisinde kontrol ettirmek yerine 1 if ile sorunu çözmüş olursunuz.
Header.php 'nin ayrı olarak gözükmesi nasıl bir açık oluşturur bilemedim bu şekilde bildiğiniz bir açık var mı? header'ı zaten anasayfada görüyorlar tek olarak görülmesi açık teşkil edecekse anasayfada gözükmeside teşkil etmez mi? Bu konuda bilgin varsa paylaşırsan çok sevinirim.
Şifreleme yöntemleri ve klasörlere index.php dosyasının atılmasına değinmen güzel olmuş, çoğu kişi bunları atlıyor :)
E-posta olayında kullanıcıdan eposta şeklinde isteniyorsa backend bölümünde veri tabanında eposta olarak sorgulanıyordur yani sorgulama işlemi yapılmasa bile ıd : pass yanlış hatası döner.
İç içe şifreleyip kısaltma olayı çok hoşuma gidiyor benimde onu göstermen güzel olmuş geri dönüşü olmayan şifreleme.
Ama scriptin satışını yaparken sıkıntılar oluyor sattığım kişi scripti değiştirmek istediğinde veri tabanını başka scripte aktardığında çoğu kişi bu şekilde şifrelemediği için çalışmıyor :D
Pdo'nun yanılş kullanımlarında SQL injection açığını xss, csrf, cookie çaldırma, shel exec gibi açıkları anlatmanızı öneririm.