2010-11-11 18 views
12

Merhaba Geçerli URL'mizi bir oturum değişkeninde depolamaya çalışıyorum.CodeIgniter current_url sorgu dizelerini göstermiyor

Uygulamam www.domain.com/add?url=http://www.google.com

ama current_url gibi sorgu dizeleri() döndürüyor 'ww.domain.com/add' kullanır. Sorgu dizeleri olmayan URL.

Yardımcı dosyayı kontrol ettim ve current_url, uri bölümlerini yapılandırmada set edilen site_url dosyasına eklemiş görünüyor.

function current_url() 
{ 
    $CI =& get_instance(); 
    return $CI->config->site_url($CI->uri->uri_string()); 
} 

kimse onları eklemek için sorgu dizeleri kapmak nasıl biliyorum, hatta sadece bütün url kapmak.

cevap

28

bir MY_url_helper oluşturun:

Echo tam URL'yi:

echo base_url().ltrim($_SERVER['REQUEST_URI'], '/'); 

Sadece sorgu dizeleri Sadece bunun için PHP'nin yerel desteğini kullanma

function current_url() 
{ 
    $CI =& get_instance(); 

    $url = $CI->config->site_url($CI->uri->uri_string()); 
    return $_SERVER['QUERY_STRING'] ? $url.'?'.$_SERVER['QUERY_STRING'] : $url; 
} 
+1

, teşekkürler. $ _SERVER hakkında bilgi vermedi ['QUERY_STRING'] – michael

+0

Bu harika, gerçekten bir sorunu çözmemde bana yardımcı oldu. Teşekkür ederim! –

+7

Ayrıca, yerel işlevi de kullanıma açmak için bu işlevi "current_full_url()" gibi adlandırabilirsiniz. – machineaddict

5

CodeIgniter'in bunun için herhangi bir yardımcı olduğunu düşünmüyorum.

echo $_SERVER['QUERY_STRING']; 
+2

bu yöntem yalnızca olacak Eğer projeniz alan kökünüzde varsa, aksi takdirde projenin klasörü bu yöntemle iki kez görünecektir. – machineaddict