• 22-06-2021, 14:29:11
    #1
    Merhabalar ücretsiz dağıtmak ve kendimi geliştirmek amaçlı yazdığım bir blog scriptinde yorum sistemini yaparken abuk subuk bir yerden takıldım.


    Buradan if else yapısında islem basarili basarisiz sorguları döndürüyorum, ANCAK başlıklarım seo uyumlu olduğu için şu şekilde gözüküyor;
    http://localhost/blog/grafik-tasarima-nasil-baslanir/3
    Anlayacağınız üzere her blog'da farklı bir url oluşuyor.
    Kısaca if else yapısında Location'lara ne geleceğini bulamadım.
    (Nasıl Anlatacağımı Bulamadım. En iyisi siz sorun ben cevaplayayım.)
  • 22-06-2021, 14:39:54
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    açıkçası tam olarak ne istediğinizi anlayamadım ama yine de anladığım kadarını açıklayayım sanırım varsayılan url ile seo url arasındaki bağımsızlıktan bahsediyorsunuz öyleyse eğer route olarak koddaki yapı kullanılır ancak seo uyumlu url yapısını php ile dinamik bir şekilde kullanmak için route location yapılandırması gerekmektedir. her dosyanın kaynağında bunu manuel ayrı ayrı yapabilirsiniz veya tek bir route dosyası oluşturup GET ve POST dahil olmak üzere tüm url yapılarını değiştirebilirsiniz.
  • 22-06-2021, 14:48:15
    #3
    Yorum sistemi mantığınızda hata var.
    Yorumun hangi blog içeriğine ekleneceğini gösteren bir sütun eklemelisiniz. yorum_blog_id gibi.
    Sonra kullanıcıya da blog_id değeri postlatmalısınız. Ardından bu değeri veritabanında kontrol ettirmeli ve doğruysa mevcut url yapınızı bu idye göre çektiğiniz blog sayfası verilerini kullanarak location için kullanabilirsiniz.
    Ek olarak yorumlar_ad ve yorumlar_icerik verilerini direkt olarak veritabanına yazdırmanızı önermem, büyük güvenlik sorunları yaratabilir.
    stripslashes veya htmlspecialchars fonksiyonlarını bu güvenlik sorunlarını gidermek için kullanabilirsiniz.

    İyi forumlar.
  • 22-06-2021, 14:51:04
    #4
    metehandemir adlı üyeden alıntı: mesajı görüntüle
    Yorum sistemi mantığınızda hata var.
    Yorumun hangi blog içeriğine ekleneceğini gösteren bir sütun eklemelisiniz. yorum_blog_id gibi.
    Sonra kullanıcıya da blog_id değeri postlatmalısınız. Ardından bu değeri veritabanında kontrol ettirmeli ve doğruysa mevcut url yapınızı bu idye göre çektiğiniz blog sayfası verilerini kullanarak location için kullanabilirsiniz.
    Ek olarak yorumlar_ad ve yorumlar_icerik verilerini direkt olarak veritabanına yazdırmanızı önermem, büyük güvenlik sorunları yaratabilir.
    stripslashes veya htmlspecialchars fonksiyonlarını bu güvenlik sorunlarını gidermek için kullanabilirsiniz.

    İyi forumlar.

    Zaten yorum tablom bu şekilde hocam, ancak orada kullanıcının yorum yapmasını sağlayan kodu yazdım. Mesela kullanıcıya status'ü nedne ekleteyim, yada blog_id'yi onları post etmedim.
  • 22-06-2021, 14:56:55
    #5
    ozgur_medya adlı üyeden alıntı: mesajı görüntüle

    Zaten yorum tablom bu şekilde hocam, ancak orada kullanıcının yorum yapmasını sağlayan kodu yazdım. Mesela kullanıcıya status'ü nedne ekleteyim, yada blog_id'yi onları post etmedim.
    blog_id ileteceksiniz ki hangi yazıya yorum yapılmış ayırt edilsin ayrıca yorum,beğeni vs gibi işlemleri ajax kullanarak yapmanızı tavsiye ederim.
  • 22-06-2021, 14:59:21
    #6
    Yorumu php dosyana gönderdiğin form'dan blog_id adında hidden bir input açıp bu inputa value olarak yorum atılacak içeriğin idsini girmelisin.
    'yorumlar_status' sütununu da yorumları onaya bağlı yapmak için kullanabilirsin.
    Örnek bir yorum ekleme kod bloğu hazırladım, inceleyerek ve özelleştirerek yapıyı otutturabilirsin.
    if(isset($_POST["yorumlarekle"])) {
        $yorumlar_ad = htmlspecialchars($_POST["yorumlar_ad"]);
        $yorumlar_icerik = htmlspecialchars($_POST["yorumlar_icerik"]);
        $blog_id = htmlspecialchars($_POST["blog_id"]);
        if(!empty($yorumlar_ad) AND !empty($yorumlar_icerik) AND !empty($blog_id)) {
            $blog = $db->prepare("SELECT seo FROM bloglar WHERE id=?");
            $blog->execute([$blog_id]);
            $blog_info = $blog->fetch();
            if($blog_info) {
                $url_yapisi = SITE_URL.'blog/'.$blog_info["seo"];
                $kaydet = $db->prepare("INSERT INTO yorumlar SET yorumlar_ad=?, yorumlar_icerik=?, blog_id=?, yorumlar_status=?");
                $insert = $kaydet->execute([$yorumlar_ad, $yorumlar_icerik, $blog_id, 1]);
                if($insert) {
                    header("Location:".$url_yapisi."?islem=basarili");
                } else {
                    header("Location:".$url_yapisi."?islem=basarisiz");
                }
            }
        }
        exit;
    }
  • 22-06-2021, 15:04:37
    #7
    metehandemir adlı üyeden alıntı: mesajı görüntüle
    Yorumu php dosyana gönderdiğin form'dan blog_id adında hidden bir input açıp bu inputa value olarak yorum atılacak içeriğin idsini girmelisin.
    'yorumlar_status' sütununu da yorumları onaya bağlı yapmak için kullanabilirsin.
    Örnek bir yorum ekleme kod bloğu hazırladım, inceleyerek ve özelleştirerek yapıyı otutturabilirsin.
    if(isset($_POST["yorumlarekle"])) {
        $yorumlar_ad = htmlspecialchars($_POST["yorumlar_ad"]);
        $yorumlar_icerik = htmlspecialchars($_POST["yorumlar_icerik"]);
        $blog_id = htmlspecialchars($_POST["blog_id"]);
        if(!empty($yorumlar_ad) AND !empty($yorumlar_icerik) AND !empty($blog_id)) {
            $blog = $db->prepare("SELECT seo FROM bloglar WHERE id=?");
            $blog->execute([$blog_id]);
            $blog_info = $blog->fetch();
            if($blog_info) {
                $url_yapisi = SITE_URL.'blog/'.$blog_info["seo"];
                $kaydet = $db->prepare("INSERT INTO yorumlar SET yorumlar_ad=?, yorumlar_icerik=?, blog_id=?, yorumlar_status=?");
                $insert = $kaydet->execute([$yorumlar_ad, $yorumlar_icerik, $blog_id, 1]);
                if($insert) {
                    header("Location:".$url_yapisi."?islem=basarili");
                } else {
                    header("Location:".$url_yapisi."?islem=basarisiz");
                }
            }
        }
        exit;
    }
    Teşekkürler hocam, bu mantık ile yaptım. Bu arada xss açıklarını her projenin sonunda eklerim genelde belirtmek istedim. İyi forumlar dilerim.
  • 22-06-2021, 15:43:49
    #8
    ozgur_medya adlı üyeden alıntı: mesajı görüntüle
    Merhabalar ücretsiz dağıtmak ve kendimi geliştirmek amaçlı yazdığım bir blog scriptinde yorum sistemini yaparken abuk subuk bir yerden takıldım.


    Buradan if else yapısında islem basarili basarisiz sorguları döndürüyorum, ANCAK başlıklarım seo uyumlu olduğu için şu şekilde gözüküyor;
    http://localhost/blog/grafik-tasarima-nasil-baslanir/3
    Anlayacağınız üzere her blog'da farklı bir url oluşuyor.
    Kısaca if else yapısında Location'lara ne geleceğini bulamadım.
    (Nasıl Anlatacağımı Bulamadım. En iyisi siz sorun ben cevaplayayım.)
    çözümü buldunmu bilmiyorum ama benim yazdıklarından anladığım işlem başarılı veya başarız olduğunda yönlendirme yaparken url kısmını da hangi post açıksa onun urlsini yazdıracak değişkeni kullanmalısın.