• 18-11-2014, 17:01:56
    #1
    Arkadaşlar merhaba,

    SEF link fonksiyonunu çağırırken sıkıntı yaşıyorum.

    Alıntı
    <?php

    if ($_POST){

    $kategori_adi = p("kategori_adi");
    $kategori_link = sef_link($kategori_adi);
    $kategori_desc = p("kategori_desc");
    $kategori_keyw = p("kategori_keyw");
    $kategori_anasayfa_konu = p("kategori_anasayfa_konu");
    $kategori_full_konu = p("kategori_full_konu");

    if (!kategori_adi) {
    echo 'kategori adı boş bırakılamaz!';
    }else {

    echo $kategori_link;

    }

    }

    ?>

    <form action="" method="post">
    <div class="module_content">
    <fieldset>
    <label>Kategori Adı</label>
    <input type="text" name="kategori_adi">
    </fieldset>
    <fieldset>
    <label>Kategori Açıklaması</label>
    <textarea rows="2" name="kategori_desc"></textarea>
    </fieldset>
    <fieldset>
    <label>Kategori Keywords</label>
    <textarea rows="2" name="kategori_keyw"></textarea>
    </fieldset>
    <fieldset>
    <label>Kategori Anasayfa Konu (.php)</label>
    <input type="text" name="kategori_anasayfa_konu" />
    </fieldset>
    <fieldset>
    <label>Kategori Full Konu (.php)</label>
    <input type="text" name="kategori_full_konu" />
    </fieldset>
    </div>
    <footer>
    <div class="submit_link">
    <input type="submit" value="Kategori Ekle" class="alt_btn">
    </div>
    </form>
    </footer>
    </article><!-- end of post new article -->

    <div class="spacer"></div>
    bu ?do=KategoriEkle sayfası.

    İlgili fonksiyonda ;

    Alıntı
    function sef_link($baslik){
    $bul = array('Ç', 'Ş', 'Ğ', 'Ü', 'İ', 'Ö', 'ç', 'ş', 'ğ', 'ü', 'ö', 'ı');
    $yap = array('c', 's', 'g', 'u', 'i', 'o', 'c', 's', 'g', 'u', 'o', 'i');
    $perma = strtolower(str_replace($bul, $yap, $baslik));
    $perma = preg_replace("@[^A-Za-z0-9\-_\.\+]@i", ' ', $perma);
    $perma = trim(preg_replace('/\s+/', ' ', $perma));
    $perma = str_replace(' ', '-', $perma);
    return $perma;
    }
    Şeklinde.

    Ancak Türkçe karakterleri kabul etmiyor hiçbirtürlü. Ve kategori adını boş bırakınca kategori ismi boş bırakılamaz uyarısı gelmiyor.

    Nerede hata yapıyorum çıldırıcam, gözden kaçan birşey var ama
  • 18-11-2014, 17:48:59
    #2
    hocam p fonksiyonunuzun içierisinde ne var bilmiyorum ama if(!$kategori_adi) kısmını if($kategori_adi == '') şeklinde değiştirin.

    	function minimize($text)
    	{
    		$tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','ş','Ş','ı','İ','ğ','Ğ','&uuml;','&Uuml;','&ouml;','&Ouml;','&Ccedil;','&ccedil;');
    		$eng = array('s','s','i','i','g','g','u','u','o','o','c','c','s','s','i','i','g','g','u','u','o','o','c','c');
    		$text = str_replace($tr,$eng,$text);
    		$text = strtolower(trim($text));
    		$text = preg_replace('/&.+?;/', '', $text);
    		$text = preg_replace('/[^%a-z0-9 _-]/', '', $text);
    		$text = preg_replace('/\s+/', '-', $text);
    		$text = preg_replace('|-+|', '-', $text);
    		return $text;
    	}
    ben bu şekilde kullanıyorum. şimdiye kadar sorun yaşamadım. bide bu şekilde deneyin isterseniz.
  • 19-11-2014, 10:46:36
    #3
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    hocam p fonksiyonunuzun içierisinde ne var bilmiyorum ama if(!$kategori_adi) kısmını if($kategori_adi == '') şeklinde değiştirin.

    	function minimize($text)
    	{
    		$tr = array('ş','Ş','ı','İ','ğ','Ğ','ü','Ü','ö','Ö','Ç','ç','ş','Ş','ı','İ','ğ','Ğ','&uuml;','&Uuml;','&ouml;','&Ouml;','&Ccedil;','&ccedil;');
    		$eng = array('s','s','i','i','g','g','u','u','o','o','c','c','s','s','i','i','g','g','u','u','o','o','c','c');
    		$text = str_replace($tr,$eng,$text);
    		$text = strtolower(trim($text));
    		$text = preg_replace('/&.+?;/', '', $text);
    		$text = preg_replace('/[^%a-z0-9 _-]/', '', $text);
    		$text = preg_replace('/\s+/', '-', $text);
    		$text = preg_replace('|-+|', '-', $text);
    		return $text;
    	}
    ben bu şekilde kullanıyorum. şimdiye kadar sorun yaşamadım. bide bu şekilde deneyin isterseniz.
    Hocam çok teşekkür ederim yanıtınız için.

    Ancak zannediyorum ki hata ?do=kategori_ekle sayfasında. Çünkü benim fonksiyonumda, sizin verdiğiniz fonksiyonda başka denediğim fonksiyonlarda çalışıyor. Sorun fonksiyon'da değil anladığım kadarıyla. Ancak çözemiyorum işte hatayı sinir oldum
  • 19-11-2014, 19:06:36
    #4
    hocam ilk mesajınızda ?do=KategoriEkle son mesajınızda ise ?do=kategori_ekle şeklinde verdiniz sayfa linkini. sorun olacağı için değil ama benimde kafam karıştı. neyse orası okadar önemli değil. ama ilk mesajınızda türkçe karakterlerden dolayı sorun aldığınızı belirttiniz. yada ben yanlış anladım. birde formu post ettiğinizde var_dump($_POST) diyerek tüm değerler doğru geliyormu bi kontrol edin.
  • 19-11-2014, 21:48:22
    #5
    sehzadem adlı üyeden alıntı: mesajı görüntüle
    hocam ilk mesajınızda ?do=KategoriEkle son mesajınızda ise ?do=kategori_ekle şeklinde verdiniz sayfa linkini. sorun olacağı için değil ama benimde kafam karıştı. neyse orası okadar önemli değil. ama ilk mesajınızda türkçe karakterlerden dolayı sorun aldığınızı belirttiniz. yada ben yanlış anladım. birde formu post ettiğinizde var_dump($_POST) diyerek tüm değerler doğru geliyormu bi kontrol edin.
    Dostum doğrusu ?do=kategori_ekle , ikincisinde yanlış yazmışım özür dilerim.

    dump ettiğimde tüm değerler doğru geliyo maalesef
  • 20-11-2014, 00:57:19
    #6
    değerler geliyorsa sorun nerede ozaman hocam. dediğim gibi saf olarak kontrol etmeyi deneyin $kategori_adi = $_POST['kategori_adi'] gibi. bu şekilde deneyin bide. değerler doğruysa geriye sadece p fonsiyonunuzun içinde ne varsa o kalıyor. p fonksiyonunuda paylaşırmısınız hocam