• 16-03-2022, 12:19:25
    #1
    Çalışma yaptığım web sitesinde bu şekilde bir çalışma sağlıyorum. Ancak if yapıları $_GET 'i görmüyor. g() kendi yazmış olduğum fonksiyondur.

    <div class="product__view--mode d-flex align-items-center">
                                <div class="product__view--mode__list product__short--by align-items-center d-none d-lg-flex">
                                    <label class="product__view--label">Sırala : <?php echo $_GET["orderby"] == 'date' ? 'selected' : null; ?> </label>
                                    <div class="select shop__header--select">
                                        <select class="product__view--select" onchange="window.location.href=this.value;">
                                            <option value="<?php echo $url = 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>">Varsayılan Sıralama</option>
                                            <option <?php echo !g('orderby') == "price" ? 'selected' : null; ?> value="?orderby=price">Fiyat: Düşükten Yükseğe</option>
                                            <option <?php echo !g('orderby') == "price-desc" ? 'selected' : null; ?> value="?orderby=price-desc">Fiyat: Yüksekten Düşüğe</option>
                                            <option <?php echo $_GET['orderby'] == "date" ? 'selected' : null; ?> value="?orderby=date">Tarih: Son eklenenler</option>
                                            <option <?php echo g('orderby') == "rating" ? 'selected' : null; ?> value="?orderby=rating">En çok ziyaret edilen</option>
                                        </select>
                                    </div>
                                </div>
                            </div>
    function temiz($text)
    {
        $text = strip_tags($text);
        $text = preg_replace('/<a\s+.*?href="([^")]+)"[^>]*>([^<]+)<\/a>/is', '\2 (\1)', $text);
        $text = preg_replace('/<!--.+?-->/', '', $text);
        $text = preg_replace('/{.+?}/', '', $text);
        $text = preg_replace('/&nbsp;/', ' ', $text);
        $text = preg_replace('/&amp;/', ' ', $text);
        $text = preg_replace('/&quot;/', ' ', $text);
        $text=htmlspecialchars($text);
        $text=addslashes($text);
        return $text;
    }
    
    function g($par){
        $par = temiz($_GET[$par]);
        return $par;
    }
    r10.net'de ilk paylaşımım hatalarımdan ötürü özür dilerim.
  • 16-03-2022, 12:23:11
    #2
    GET ilen gelen veriyi bir değişkene atayıp öyle deneyin sorguda değişkeni tek tırnak içine almayı unutmayın
  • 16-03-2022, 12:37:20
    #3
    wisex adlı üyeden alıntı: mesajı görüntüle
    GET ilen gelen veriyi bir değişkene atayıp öyle deneyin sorguda değişkeni tek tırnak içine almayı unutmayın
    Hocam dediğiniz gibi yaptım. Ancak bu şekilde dahi çalışmıyor acaba .htaccess'den dolayı olabilir mi? web sitesinin linkini eklemek yasak mı acaba?
    <?php echo $_GET['orderby']; ?>
  • 16-03-2022, 12:43:01
    #4
    Gönderdiğiniz linki de yazar mısınız? Bu arada function g ye gerek yok. Zaten get değerini direk fonksiyona yazabilirsiniz. İsim değiştirip yazmışsınız get diğerini fonksiyon direk işlevini yitirmiş.
  • 16-03-2022, 13:03:57
    #5
    blap adlı üyeden alıntı: mesajı görüntüle
    Gönderdiğiniz linki de yazar mısınız? Bu arada function g ye gerek yok. Zaten get değerini direk fonksiyona yazabilirsiniz. İsim değiştirip yazmışsınız get diğerini fonksiyon direk işlevini yitirmiş.
    <?php echo print_r($_GET); ?>
    Aşağıda bulunan sitede bunu yazdırdım. Cevap bu şekilde
    [COLOR=#000000][FONT=Josefin Sans, sans-serif][SIZE=3]Array ( [kategori_id] => 106 ) 1[/SIZE][/FONT][/COLOR]
    alan adı hariç URL: ekonomik-prefabrik-evler?orderby=price
  • 16-03-2022, 13:12:31
    #6
    kategori_id=106&orderby=price iki değişken arasında & kullanın url de
  • 16-03-2022, 13:37:11
    #7
    blap adlı üyeden alıntı: mesajı görüntüle
    kategori_id=106&orderby=price iki değişken arasında & kullanın url de
    Hocam çok teşekkür ederim. Sorunu çözdüm. Eğer merak eden arkadaşlar olursa altta ekliyorum kod bloklarını.
    .htaccess
    RewriteRule ^fiyatlari-([0-9a-zA-Z-_]+)$ listeleme-sayfasi.php?kategori_id=103&orderby=$1 [NC,L]
    RewriteRule ^evler-([0-9a-zA-Z-_]+)$ [COLOR=#000000][FONT=Open Sans]listeleme-sayfasi[/FONT][/COLOR].php?kategori_id=112&orderby=$1 [NC,L]
    RewriteRule ^evler-([0-9a-zA-Z-_]+)$ [COLOR=#000000][FONT=Open Sans]listeleme-sayfasi[/FONT][/COLOR].php?kategori_id=106&orderby=$1 [NC,L]
    RewriteRule ^evler-([0-9a-zA-Z-_]+)$ [COLOR=#000000][FONT="Open Sans"]listeleme-sayfasi.[/FONT][/COLOR]php?kategori_id=107&orderby=$1 [NC,L]
    RewriteRule ^evleri-([0-9a-zA-Z-_]+)$ [COLOR=#000000][FONT=Open Sans]listeleme-sayfasi[/FONT][/COLOR].php?kategori_id=108&orderby=$1 [NC,L]
    RewriteRule ^evler-([0-9a-zA-Z-_]+)$ [COLOR=#000000][FONT=Open Sans]listeleme-sayfasi[/FONT][/COLOR].php?kategori_id=110&orderby=$1 [NC,L]
    RewriteRule ^evler-([0-9a-zA-Z-_]+)$ [COLOR=#000000][FONT=Open Sans]listeleme-sayfasi[/FONT][/COLOR].php?kategori_id=113&orderby=$1 [NC,L]
    [B][/B]

    <select class="product__view--select" onchange="window.location.href=this.value;">
                                            <option selected value="<?php echo $url = 'https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']; ?>">Varsayılan Sıralama</option>
                                            <option <?php echo $siraget == "price" ? 'selected' : null; ?> value="<?php echo $url ?>-price">Fiyat: Düşükten Yükseğe</option>
                                            <option <?php echo $siraget == "price-desc" ? 'selected' : null; ?> value="-price-desc">Fiyat: Yüksekten Düşüğe</option>
                                            <option <?php echo $siraget == "date" ? 'selected' : null; ?> value="-date">Tarih: Son eklenenler</option>
                                            <option <?php echo $siraget == "rating" ? 'selected' : null; ?> value="-rating">En çok ziyaret edilen</option>
                                        </select>
    [B][/B]