• 30-09-2018, 00:44:17
    #1
    Arkadaşlar bir sitemde şu şekilde bir fonksiyon kullanıyorum.
    function TarayiciAdres(){
    $adres = 'http://'.$_SERVER['HTTP_HOST' ].$_SERVER['REQUEST_URI'];
    return $adres;
    }
    ve sonrasında şu şekilde link i parçalıyorum
    $link = explode('/', TarayiciAdres());
    sonuç olarak localde
    Array
    (
        [0] => http:
        [1] =>
        [2] => localhost
        [3] => xxxx
        [4] =>
    )
    üstteki sonuçu veriyor ama sunucuya atınca altta bulunan sonucu veriyor
    Array
    (
        [0] => http:
        [1] =>
        [2] => xxxx.com
        [3] =>
    )
    buda böyle olunca yaptığım işlerde numaralar 1 boy küçülmem gerekiyor buna nasıl bir çözüm bulabilirim?
  • 30-09-2018, 01:14:44
    #2
    $link değişkenini ne için kullanacağınızı belirtirseniz daha net bir şey söylenebilir. onun dışında:

    if( $_SERVER['HTTP_HOST' ] == 'localhost' )
    {
       unset($link[2]);
       $link= array_values($link);
    }
    şeklinde bir kod ekleyebilirsiniz.
  • 30-09-2018, 01:20:24
    #3
    murun3xi adlı üyeden alıntı: mesajı görüntüle
    $link değişkenini ne için kullanacağınızı belirtirseniz daha net bir şey söylenebilir. onun dışında:

    if( $_SERVER['HTTP_HOST' ] == 'localhost' )
    {
       unset($link[2]);
       $link= array_values($link);
    }
    şeklinde bir kod ekleyebilirsiniz.
    Hocam linki parçaladıktan sonra örnek olarak

    Array
    (
        [0] => http:
        [1] =>
        [2] => localhost
        [3] => xxxx
        [4] =>
        [5] =>kayit
    )
    
    if($link[5]=='kayit'){
     echo "bu işlemi yap"; } else{ header('location:index'); }
    örnek olarak bu şekilde kullanıyorum hocam linkden gelenleri alıp gelenlere göre işlem yaptırıyorum.
  • 30-09-2018, 01:27:01
    #4
    PhYtOnX adlı üyeden alıntı: mesajı görüntüle
    Hocam linki parçaladıktan sonra örnek olarak

    Array
    (
        [0] => http:
        [1] =>
        [2] => localhost
        [3] => xxxx
        [4] =>
        [5] =>kayit
    )
    
    if($link[5]=='kayit'){
     echo "bu işlemi yap"; } else{ header('location:index'); }
    örnek olarak bu şekilde kullanıyorum hocam linkden gelenleri alıp gelenlere göre işlem yaptırıyorum.
    Tamam o halde;
    $link = explode('/', TarayiciAdres());
    bu satırın altına dediğim kodu eklersen sorun çözülür. Ancak genel olarak hangi sayfada olduğunu öğrenmek için bu yol pek kullanılmıyor benim bildiğim.
  • 30-09-2018, 03:01:57
    #5
    function requestUri(){
    
        $root = rtrim($_SERVER['DOCUMENT_ROOT'],'/');
        $path = str_replace($root, '', dirname($_SERVER['SCRIPT_FILENAME']));
        $request_uri = trim(str_replace($path, '', $_SERVER['REQUEST_URI']), '/');
    
        return explode('/', $request_uri);
    }
    Hangi dizinde çalıştırırsanız ordan itibaren request uri parçalarını döndürür.

    www/deneme => localhost/deneme/sayfa/kayit => sayfa, kayit
    public => domain.com/sayfa/kayit => sayfa, kayit
  • 30-09-2018, 03:24:40
    #6
    murun3xi adlı üyeden alıntı: mesajı görüntüle
    Tamam o halde;
    $link = explode('/', TarayiciAdres());
    bu satırın altına dediğim kodu eklersen sorun çözülür. Ancak genel olarak hangi sayfada olduğunu öğrenmek için bu yol pek kullanılmıyor benim bildiğim.
    Teşekkürler hocam verdiğiniz kodla yeni bir fonksiyon oluşturdum işimi çözdüm..


    Met adlı üyeden alıntı: mesajı görüntüle
    function requestUri(){
    
        $root = rtrim($_SERVER['DOCUMENT_ROOT'],'/');
        $path = str_replace($root, '', dirname($_SERVER['SCRIPT_FILENAME']));
        $request_uri = trim(str_replace($path, '', $_SERVER['REQUEST_URI']), '/');
    
        return explode('/', $request_uri);
    }
    Hangi dizinde çalıştırırsanız ordan itibaren request uri parçalarını döndürür.

    www/deneme => localhost/deneme/sayfa/kayit => sayfa, kayit
    public => domain.com/sayfa/kayit => sayfa, kayit
    İşe yaramadı hocam yine bir çok yerde hata devam etti ama diğer arkaşın verdiği kodla oluşturduğum fonksiyonla çözdüm işimi teşekkürler yinede.