Buenos Días, estoy trabajando con el framework de php CodeIgniter versión 3 y he implementado una parte donde salen todos los idiomas que soporta el sitio y quiero que cuando un usuario de click en el idioma el valor idioma de la session se cambia al valor nuevo y regrese a la página en que se encontraba el usuario en vez de ir al home o al index.
Me falta solamente hacer que se redireccione a la url anterior en la cual se encontraba antes de ir a la función que cambia su idioma en la session y quiero hacerlo con php.
Saludos Dairon
entre Desarrolladores
Recibe ayuda de expertos
Registrate y pregunta
Es gratis y fácil
Recibe respuestas
Respuestas, votos y comentarios
Vota y selecciona respuestas
Recibe puntos, vota y da la solución
Pregunta
Redireccionar a la url anterior en que estaba el usuario
- preguntó
- Web
- 33207 Vistas
- 2 Respuestas
- solucionada
2 Respuestas
Hola dairon, se me ocurren 2 formas, utilizando el referer HTTP_REFERER
o obteniendolo via $_GET
.
por referer:
public function language()
{
$this->load->library('user_agent');
// si no existe el referer o no pertenece a este sitio, redirigimos.
if ( !$this->agent->referrer() ||
stripos($this->agent->referrer(), base_url()) === false )
{
redirect();
}
// si el referer es este mismo metodo, redirigimos.
else if( stripos($this->agent->referrer(), '/language') !== false)
{
redirect();
}
/* definimos el lenguaje aqui */
// redirigimos!
redirect($this->agent->referrer());
}
via $_GET:
public function language()
{
$url = $this->input->get('ref', TRUE);
// si no esta definida la url, es invalida o no pertenece a este sitio
// redirigimos
if ( !isset($url) ||
filter_var($url, FILTER_VALIDATE_URL) === false ||
stripos($url, base_url()) === false )
{
redirect();
}
// si el referer es este mismo metodo, redirigimos.
else if( stripos($url, '/language') !== false)
{
redirect();
}
/* definimos el lenguaje aqui */
// redirigimos!
redirect($url);
}
asegurate en esta linea: stripos($this->agent->referrer(), '/language')
de cambiar /language
por la url de tu sitio donde cambias tu lenguaje.
recuerda agregar ?ref=[url actual] al enlace que cambiar el lenguaje.
Por favor, accede o regístrate para añadir un comentario.
$pagina_anterior = $_SERVER['HTTP_REFERER'];
redirect($pagina_anterior);
function redirect ($url)
{
header("Location: $pagina_anterior");
die();
}
La mayoría te dirá que así sin embargo no recomiendo para nada esto y es posible que ni siquiera funcione(en local si, en producción no), debes usar obj_start() para usarlo y aun asi da mucha lata.
recomiendo usar:
`echo '<META HTTP-EQUIV="Refresh" Content="0; URL=$url">';//tambien debe ir arriba(recomiendo usar` variables globales para escribir el echo)
en el ultimo de los casos:
echo "<script language='javascript'>window.location='$url'</script>;"
¿que pasa si el usuario chistoso desactiva js?
Por favor, accede o regístrate para añadir un comentario.
Por favor, accede o regístrate para responder a esta pregunta.
En el blog
-
- 407152
- 1
- Jul 5, 2015
Sin Respuesta
-
- 169
- 0
- Mar 19
-
- 86
- 2
- Feb 26
-
- 1148
- 0
- Nov 7, 2023
-
- 302
- 0
- Sep 19, 2023
-
- 305
- 0
- Ago 21, 2023
-
- 388
- 0
- May 14, 2023
-
- 358
- 0
- Abr 21, 2023
-
- 446
- 0
- Mar 31, 2023
- ver todas
Preguntas relacionadas
Actividad Reciente
ArtEze respondió hace 2 días
Alguien sabe, no me ignorenArtEze seleccionó una respuesta hace 2 días
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió hace 2 días
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó hace 2 días
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió hace 2 días
No me deja instalar OracleArtEze respondió hace 2 días
Formulario que guarde los datos de un jsonArtEze comentó hace 2 días
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en djangoSantiago2610 preguntó Mar 19
Acualizar ChoiceField en djangogonzalss preguntó Feb 26
Script /boot/ scraping
Ultimas Preguntas
Preguntas relacionadas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150470 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos
Todos los Usuarios Usuarios Nuevos
...