Ver Mensaje Individual
  #4 (permalink)  
Antiguo 15/10/2012, 08:38
Avatar de maycolalvarez
maycolalvarez
Colaborador
 
Fecha de Ingreso: julio-2008
Ubicación: Caracas
Mensajes: 12.120
Antigüedad: 16 años, 4 meses
Puntos: 1532
Respuesta: Web multi-idioma usando "session_start();"

exacto, porque sólo revisas si se pide el cambio de idioma, no todo lo demás, +karma por aplicar correctamente las indicaciones, saludos

aunque el
isset($_SESSION['languages']) está demás, no hace falta porque si la variable de sesión fue establecida, es innecesario re-establecerla, simplemente verifica si no está establecida y aplicas lo del bloque else:

Código PHP:
Ver original
  1. <?php
  2.         require ('idiomas.php');
  3.         session_start();
  4.        
  5.         if (isset($_GET['languages'])){
  6.             $idioma = $_GET['languages'];
  7.             $_SESSION['languages'] = $idioma;
  8.         }elseif (isset($_POST['languages'])){
  9.             $idioma = $_POST['languages'];
  10.             $_SESSION['languages'] = $idioma;
  11.         }elseif (! isset($_SESSION['languages'])){ //fíjate en el NOT (!)
  12.             $lang = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
  13.             $languages = strtolower($lang);
  14.             $languages = str_replace( ' ', '', $languages );
  15.             $languages = explode( ",", $languages );
  16.             $idioma = $languages[0];
  17.             $_SESSION['languages'] = $idioma; //aquí aplicamos
  18.         }
  19. ?>

y si optimizamos el código que se repite:

Código PHP:
Ver original
  1. <?php
  2.         require ('idiomas.php');
  3.         session_start();
  4.         $idioma;
  5.        
  6.         if (isset($_GET['languages'])){
  7.             $idioma = $_GET['languages'];
  8.         }elseif (isset($_POST['languages'])){
  9.             $idioma = $_POST['languages'];
  10.         }elseif (! isset($_SESSION['languages'])){ //fíjate en el NOT (!)
  11.             $lang = $_SERVER["HTTP_ACCEPT_LANGUAGE"];
  12.             $languages = strtolower($lang);
  13.             $languages = str_replace( ' ', '', $languages );
  14.             $languages = explode( ",", $languages );
  15.             $idioma = $languages[0];
  16.         }
  17.         //aquí aplicamos:
  18.         $_SESSION['languages'] = $idioma;
  19. ?>
__________________
¡Por favor!: usa el highlight para mostrar código
El que busca, encuentra...

Última edición por maycolalvarez; 15/10/2012 a las 08:48