• 12-12-2017, 19:16:21
    #1
    VSM
    Kimlik doğrulama veya yönetimden onay bekliyor.
    Selamun Alykum Arkadaşlar. inanın arkadaşlar 1 haftadır kafayı yedim denemediğim kod kalmadı.. ben php de amatörüm.. Elimde bulunan bir scriptti türkçeleştirdim. Buraya kadar herşey tamam fakat son anda fark ettim sitenin url kısmında sorun olduğu. url kısmında büyük küçük harf duyarlılığı, türkçe karakter sorunu, ve - işaretlerini eklemediğini fark ettim.
    şunki url bu şekilde çıkıyor https://www.uzmanlardan.org/profile/10/Jhon%20Doe ama norma olması gereken url https://www.uzmanlardan.org/profile/10/jhon-Doe bu şekilde olması gerek .. internette araştırdım str_replace kod yardımı ile düzelte bileceğimi araştırdım ama 1 haftadır yapacağım projeye link url yüzünden bir türlü başlayamadım.. aşağıda benim function.php ben hangi kodu eklersem linkler düzelir arkadaşlar?
    Arkadaşlar Bu Sorunu Düzelte bilecek Arkadaşlar var ise pm ile kullanıcı adı şifremi atabilirim.


    str_replace ile alakalı function.php kodum
    //Get Profile URL Data
        function profile_url($id,$sub){
            global $godb;
            $sql = "SELECT * FROM doctors_list WHERE id='$id'";
            $qu = $godb->query($sql);
            $doctor = mysqli_fetch_array($qu);
            if ($sub == "url") {
                $url = "profile/".$id."/".str_replace(" ", "-", $doctor['name']);
                return $url;
            }
            if ($sub == "photo") {
                $url = "assets/images/doctors_photo/".$doctor['photo'];
                return $url;
            }
        }
    aşağıdaki kod .htaccess kodu
    RewriteEngine On    # Turn on the rewriting engine
    # not rewrite css, js and images
    RewriteCond %{REQUEST_URI} !\.(?:css|js|jpg|gif|png)$ [NC]
    RewriteRule    ^home    index.php    [NC,L]
     
    RewriteRule    ^contact    contact.php    [NC,L]      
    RewriteRule    ^faq    faq.php    [NC,L]      
    RewriteRule    ^about    about.php    [NC,L]      
    RewriteRule    ^featured    featured.php    [NC,L]      
    RewriteRule    ^all    alldoctors.php    [NC,L]      
        
    RewriteRule    ^profile/([([0-9]+)/(.*)$    profile.php?id=$1    [NC,L]  
    RewriteRule    ^category/(.*)$    category.php?cat=$1    [NC,L]  
    RewriteRule    ^search    search.php    [NC,L]
  • 12-12-2017, 19:39:02
    #2
    Kimlik doğrulama veya yönetimden onay bekliyor.
    VSM adlı üyeden alıntı: mesajı görüntüle
    str_replace ile alakalı function.php kodum
    //Get Profile URL Data
        function profile_url($id,$sub){
            global $godb;
            $sql = "SELECT * FROM doctors_list WHERE id='$id'";
            $qu = $godb->query($sql);
            $doctor = mysqli_fetch_array($qu);
            if ($sub == "url") {
                $url = "profile/".$id."/".str_replace(" ", "-", $doctor['name']);
                return $url;
            }
            if ($sub == "photo") {
                $url = "assets/images/doctors_photo/".$doctor['photo'];
                return $url;
            }
        }
    .htaccess e dokunmadan sadece function profile_url yi şu şekilde değiştir.
      function profile_url($id,$sub){
            global $godb;
            $sql = "SELECT * FROM doctors_list WHERE id='$id'";
            $qu = $godb->query($sql);
            $doctor = mysqli_fetch_array($qu);
            if ($sub == "url") {
                $url = "profile/".$id."/".preg_replace('/[^A-Za-z0-9-]+/', '', $doctor['name']);
                return $url;
            }
            if ($sub == "photo") {
                $url = "assets/images/doctors_photo/".$doctor['photo'];
                return $url;
            }
        }
    str_replace yerine preg_replace kullandım.
  • 12-12-2017, 19:49:58
    #3
    coder16 adlı üyeden alıntı: mesajı görüntüle
    .htaccess e dokunmadan sadece function profile_url yi şu şekilde değiştir.
    function profile_url($id,$sub){ global $godb; $sql = "SELECT * FROM doctors_list WHERE id='$id'"; $qu = $godb->query($sql); $doctor = mysqli_fetch_array($qu); if ($sub == "url") { $url = "profile/".$id."/".preg_replace('/[^A-Za-z0-9-]+/', '', $doctor['name']); return $url; } if ($sub == "photo") { $url = "assets/images/doctors_photo/".$doctor['photo']; return $url; } }
    str_replace yerine preg_replace kullandım.

    bu kodu alıp diyer function.php kodunu silip bunu ekliyeceğim dimi?

    bide kodu değiştirdim hiçbirşey değişmedi? acaba başka bir sıkıntımı var?
  • 12-12-2017, 20:06:02
    #4
    VSM adlı üyeden alıntı: mesajı görüntüle
    bu kodu alıp diyer function.php kodunu silip bunu ekliyeceğim dimi?

    bide kodu değiştirdim hiçbirşey değişmedi? acaba başka bir sıkıntımı var?
    Kod düzgün çalışıyor fakat bu function.php kullandığın scripteki başka bir işlevi olabilir. Link nasıl veriliyor onu yazarmısın php kodunu ? href="" olan kısmı
  • 12-12-2017, 20:18:46
    #5
    coder16 adlı üyeden alıntı: mesajı görüntüle
    Kod düzgün çalışıyor fakat bu function.php kullandığın scripteki başka bir işlevi olabilir. Link nasıl veriliyor onu yazarmısın php kodunu ? href="" olan kısmı

    hocam size pm attım. scripte href kodunu nasıl nerede bulacağımı inanın bilmiyorum.
  • 12-12-2017, 23:23:54
    #6
    Seo url kullanırsan eğer bu sorunu yaşamazsın.

    Örnek olarak şöyle yapabilirsin ;

    $text="Jhon%20Doe";
    $text=str_replace("%20","-",$text);
    echo $text;
    Çıktısı : Jhon-Doe olacaktır.

    Fonksiyonuna göre yapmak için ise şu şekilde yapabilirsin.

    //Get Profile URL Data
        function profile_url($id,$sub){
            global $godb;
            $sql = "SELECT * FROM doctors_list WHERE id='$id'";
            $qu = $godb->query($sql);
            $doctor = mysqli_fetch_array($qu);
            if ($sub == "url") {
                $url = "profile/".$id."/".str_replace("%20", "-", $doctor['name']);
                return $url;
            }
            if ($sub == "photo") {
                $url = "assets/images/doctors_photo/".$doctor['photo'];
                return $url;
            }
        }
    ama önerim bir sef link fonksiyonu kullanman daha mantıklı olacaktır.
    seflink($doctor['name']); Çıktısı : Jhon-Doe olacaktır yine
    Kolay Gelsin
  • 12-12-2017, 23:38:06
    #7
    D62 adlı üyeden alıntı: mesajı görüntüle
    Seo url kullanırsan eğer bu sorunu yaşamazsın.

    Örnek olarak şöyle yapabilirsin ;

    $text="Jhon%20Doe"; $text=str_replace("%20","-",$text); echo $text;
    Çıktısı : Jhon-Doe olacaktır.

    Fonksiyonuna göre yapmak için ise şu şekilde yapabilirsin.

    //Get Profile URL Data function profile_url($id,$sub){ global $godb; $sql = "SELECT * FROM doctors_list WHERE id='$id'"; $qu = $godb->query($sql); $doctor = mysqli_fetch_array($qu); if ($sub == "url") { $url = "profile/".$id."/".str_replace("%20", "-", $doctor['name']); return $url; } if ($sub == "photo") { $url = "assets/images/doctors_photo/".$doctor['photo']; return $url; } }
    ama önerim bir sef link fonksiyonu kullanman daha mantıklı olacaktır.
    seflink($doctor['name']); Çıktısı : Jhon-Doe olacaktır yine
    Kolay Gelsin

    hocam yine düzelmedi... buradaki $url = "profile/".$id."/".str_replace(" ", "-", $doctor['name']); kodda hocam burada bi sıkıntı var galiba ben oraya ne yapsam düzelmiyor.. phpden de anlamıyorum koddaki sıkıntıyı çözeyim.. inanın ne yapacağımı şaşırdım
  • 12-12-2017, 23:49:07
    #8
    tam olarak ne hata veriyor onu söylersen eğer yardımcı olalım ?

    bu şekilde denermisin.

    //Get Profile URL Data
        function profile_url($id,$sub){
            global $godb;
          //  $sql = "SELECT * FROM doctors_list WHERE id='$id'";
          //  $qu = $godb->query($sql);
          //  $doctor = mysqli_fetch_array($qu);
            if ($sub == "url") {
                $name = $doctor['name'];
                $name=str_replace("%20","-",$name);
                $url = "profile/".$id."/".$name."";
                return $url;
            }
            if ($sub == "photo") {
                $url = "assets/images/doctors_photo/".$doctor['photo'];
                return $url;
            }
        }
  • 13-12-2017, 00:08:37
    #9
    D62 adlı üyeden alıntı: mesajı görüntüle
    tam olarak ne hata veriyor onu söylersen eğer yardımcı olalım ?

    bu şekilde denermisin.

    //Get Profile URL Data function profile_url($id,$sub){ global $godb; // $sql = "SELECT * FROM doctors_list WHERE id='$id'"; // $qu = $godb->query($sql); // $doctor = mysqli_fetch_array($qu); if ($sub == "url") { $name = $doctor['name']; $name=str_replace("%20","-",$name); $url = "profile/".$id."/".$name.""; return $url; } if ($sub == "photo") { $url = "assets/images/doctors_photo/".$doctor['photo']; return $url; } }
    işte sıkıntı hata vermemesi ama denilen kodları function.php ekliyorum çalışmasa bile eski sistemden devam etmesi..

    size pm ile site panel bilgilerini pm atsam kontrol ede bilirmisiniz?