Foros del Web » Programando para Internet » PHP »

No consigo recibir esta variable por URL

Estas en el tema de No consigo recibir esta variable por URL en el foro de PHP en Foros del Web. Buenas, Tengo un problema y es que la URL tienen esta forma http://www.dominio.com/?lang=ca http://www.dominio.com/seccion1/?lang=ca Quiero poder recibir la variable "lang", para así poder decir que ...
  #1 (permalink)  
Antiguo 09/10/2009, 15:33
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
No consigo recibir esta variable por URL

Buenas,

Tengo un problema y es que la URL tienen esta forma

http://www.dominio.com/?lang=ca
http://www.dominio.com/seccion1/?lang=ca

Quiero poder recibir la variable "lang", para así poder decir que hago con el contenido.

Lo he probado con un echo $_GET['lang']; pero al tener /? parece que no lo coge correctamente.

¿Cómo podría leerla?

Muchas gracias de antemano!
  #2 (permalink)  
Antiguo 09/10/2009, 15:41
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 15 años, 6 meses
Puntos: 1517
Respuesta: No consigo recibir esta variable por URL

Ese metodo funciona, pero solamente es util cuando vas a usar el index.php. Si tu quieres verlo en otro archivo con otro nombre, te sugiero usar url amigables
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 09/10/2009, 16:39
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: No consigo recibir esta variable por URL

He creado esta función

Código PHP:
function idioma_url(){
    
$url_base $_SERVER['SERVER_NAME'];
    
$url_fin $_SERVER['REQUEST_URI'];
    
$url "http://".$url_base.$url_fin;
    echo 
$url;
    
$maximo strlen($url);
    
$cadena substr($url,$maximo-2,$maximo);
return 
$cadena;}

$idioma='es'//por defecto ES
$idioma_url=idioma_url();
echo 
$idioma_url;
if (
$idioma_url=='ca'){
    
$idioma='ca';

Pero cuando hago el echo $url no me aparece la dirección completa sino que se corta justo al llegar al simbolo de interrogación. No entiendo porqué...

Deseo coger los dos ultimo caracteres de la URL y no me deja!

¿Cómo lo puedo hacer? esta díficil con ese interrogante por medio... No hay ningun comando para sacar toda la URL incluido la parte final que no me está cogiendo?

Gracias de antemano.
  #4 (permalink)  
Antiguo 09/10/2009, 16:48
Avatar de neodani  
Fecha de Ingreso: marzo-2007
Mensajes: 1.811
Antigüedad: 17 años, 8 meses
Puntos: 20
Respuesta: No consigo recibir esta variable por URL

Toma ya!! lo he conseguido.

He impreso todas los campos de $_SERVER

Código PHP:
<?php
    
echo '<table border="1">';

    foreach(
$_SERVER as $k => $v) {
        echo 
'<tr><td>'.$k.'</td><td>'.$v.'</td></tr>';
    }
    echo 
'</table>';
?>
Así pude ver si había algun campo que me devolviese la parte del idioma. Y ahí estaba! $_SERVER['QUERY_STRING']

Código PHP:
$idioma='es'//por defecto ES
if ($_SERVER['QUERY_STRING']=='lang=ca'){
    
$idioma='ca';

Un saludo
  #5 (permalink)  
Antiguo 09/10/2009, 22:08
Avatar de suap  
Fecha de Ingreso: julio-2009
Ubicación: La taberna de Moe's
Mensajes: 54
Antigüedad: 15 años, 4 meses
Puntos: 4
Respuesta: No consigo recibir esta variable por URL

gracias me parece muy buen aporte ya que estoy en lo mismo que tu.
  #6 (permalink)  
Antiguo 10/10/2009, 05:45
 
Fecha de Ingreso: julio-2006
Mensajes: 96
Antigüedad: 18 años, 4 meses
Puntos: 2
Respuesta: No consigo recibir esta variable por URL

Estimados no mezclemos los temas! , como bien han dicho en el arreglo _SERVER podremos acceder a la clave QUERY_STRING y procesamos mediante explode separando las partes o con alguna regexp.

Saludos!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 12:07.