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
- 51307 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
-
- 689732
- 1
- Jul 5, 2015
Sin Respuesta
-
- 89
- 0
- Oct 18
-
- 168
- 0
- Jul 9
-
- 541
- 1
- Mar 19
-
- 417
- 2
- Feb 26
-
- 4802
- 0
- Nov 7, 2023
-
- 481
- 0
- Sep 19, 2023
-
- 465
- 0
- Ago 21, 2023
-
- 637
- 0
- May 14, 2023
- ver todas
Preguntas relacionadas
Actividad Reciente
alyvrs preguntó Oct 19
Ayuda , necesito mostrar datos creados solo por el…ManHol preguntó Jul 9
pasar un archivo de excel a csv en pythonArtEze respondió Abr 24
Alguien sabe, no me ignorenArtEze seleccionó una respuesta Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze preguntó Abr 24
Bajar extensión de Chrome sin actualizar el navega…ArtEze respondió Abr 24
No me deja instalar OracleArtEze respondió Abr 24
Formulario que guarde los datos de un jsonArtEze comentó Abr 24
Script /boot/ scrapingSantiago2610 comentó Mar 23
Acualizar ChoiceField en django
Ultimas Preguntas
Preguntas relacionadas
Usuarios Top
- Leonardo-Tadei
- 227320 Puntos
- Peter
- 150480 Puntos
- white
- 75880 Puntos
- carlossevi
- 63580 Puntos
- magarzon
- 30650 Puntos
- pregunton
- 20400 Puntos
Todos los Usuarios Usuarios Nuevos
...