2010-11-11 9 views
12

Hola, estoy tratando de almacenar mi url actual en una variable de sesión.CodeIgniter current_url no muestra cadenas de consulta

Mi aplicación utiliza las cadenas de consulta como www.domain.com/add?url=http://www.google.com

pero current_url() devuelve 'ww.domain.com/add'. La url sin las cadenas de consulta.

He comprobado el archivo auxiliar y current_url parece simplemente anexar los segmentos uri al conjunto de sitio_sur en la configuración.

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

Alguien sabe cómo puedo agarrar las cadenas de consulta para anexar ellos, o incluso sólo tienes que tomar toda la url.

Respuesta

28

Crear una MY_url_helper:

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

genial, gracias. no sabía acerca de $ _SERVER ['QUERY_STRING'] – michael

+0

Eso fue increíble, realmente me ayudó a resolver un problema. ¡Gracias! –

+7

También puede nombrar esta función como 'current_full_url()' para que la función nativa también esté disponible. – machineaddict

5

No creo que CodeIgniter tenga ningún ayudante para esto. Sólo tiene que utilizar el soporte nativo de PHP para esto:

Echo la URL completa:

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

Sólo las cadenas de consulta:

echo $_SERVER['QUERY_STRING']; 
+2

Este método sólo funciona si tienes el proyecto en la raíz de tu dominio; de lo contrario, la carpeta del proyecto aparecerá dos veces con este método. – machineaddict

Cuestiones relacionadas