Visualizzazione dei risultati da 1 a 2 su 2

Discussione: $_GET e $_SESSION

  1. #1

    $_GET e $_SESSION

    ciao,

    mi serve un'idea per gestire le lingue con le sessioni.
    Attualmente ho le 2 classiche bandierine che bisogna cliccare per settare la lingua.
    IL settaggio della lingua avviene via GET e il valore che passo lo inserisco nella sessione in questo modo:

    Codice PHP:
    <?php 
    if (isset($_GET['lang'])){ 

    $_SESSION['lang'] = $_GET['lang']; 
    $lang $_SESSION['lang'];  
     } else { 
    echo
    "devi selezionare una lingua per iniziare"; } ?>
    il problema è che per ogni link presente nella pagina ci devo appendere nella querystring il valore di $lang per mantenere la lingua settata nella varie pagine, il che mi rompe un pò.
    c'è un modo per evitare questo e settare il $_GET['lang'] una sola volta nelle sessioni e modificare il valore solo al cambio della lingua? NO immagino....

  2. #2
    Beh, nel modo da te postato, l'istruzione IF lavora se è settata la variabile $_GET['lang'], per questo ti si de-setta subito dopo.
    Io lavorerei maggiormente su questo ragionamento (da applicare alla tua applicazione):
    codice:
    $_SESSION['lang'] = $_GET['lang'];
    
    if ($_SESSION['lang'] == 'EN') {
          $sitoininglese;
    } elseif ($_SESSION['lang'] == 'FR') {
          $sitoinfrancese;
    } elseif ($_SESSION['lang'] == 'ES') {
          $sitoinspagnolo;
    } else {
          echo 'Seleziona una lingua';
    }
    Oppure, ancora meglio, usare l'istruzione SWITCH:
    codice:
    $_SESSION['lang'] = $_GET['lang'];
    
    switch ($_SESSION['lang']) {
          case 'EN':
          $sitoininglese;
          break;
    
          case 'FR':
          $sitoinfrancese;
          break;
    
          case 'ES':
          $sitoinspagnolo;
          break;
    
          default:
          echo 'Seleziona una lingua';
    }
    p.s.
    di solito, la lingua di un sito, è sempre meglio gestirla con i cookie per non dover chiedere all'utente ogni volta di scegliere la lingua.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.