Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Session lang

Hybrid View

  1. #1
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,509
    La variabile $lang ti serve da qualche altra parte all'interno dello stesso file php? Perché altrimenti è inutile.

    Penso che nella logica ci sia qualcosa che non va, secondo me nell'ultimo else non ci entrerai mai, almeno una $_SESSION'lang'] o $_COOKIE['lang'] a quel punto saranno sempre settate.
    Qual'ora, cambiando la logica, entrassi in quell'else vorrebbe dire che nessuna tra $_SESSION'lang'] e $_COOKIE['lang'] è settata e lì dentro non le setti, quindi non le avrai disponibili nelle altre pagine.

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2017
    Messaggi
    52
    Quote Originariamente inviata da Alhazred Visualizza il messaggio
    La variabile $lang ti serve da qualche altra parte all'interno dello stesso file php? Perché altrimenti è inutile.

    Penso che nella logica ci sia qualcosa che non va, secondo me nell'ultimo else non ci entrerai mai, almeno una $_SESSION'lang'] o $_COOKIE['lang'] a quel punto saranno sempre settate.
    Qual'ora, cambiando la logica, entrassi in quell'else vorrebbe dire che nessuna tra $_SESSION'lang'] e $_COOKIE['lang'] è settata e lì dentro non le setti, quindi non le avrai disponibili nelle altre pagine.
    Ho modificato così. In pratica se la lingua del device non esiste tra le traduzioni viene impostata quella di default. Ma non ho ben chiaro quando impostare il setcookie, se solo dopo il GET oppure anche in altri punti

    Codice PHP:
    if(isset($_GET['lang'])) {
                
    $lang $_GET['lang'];
                
    $_SESSION['lang'] = $lang;
                
    setcookie('lang'$langtime() + (3600 24 30));
                } else {
                if(!isset(
    $_COOKIE['lang']) && !isset($_SESSION['lang'])) { 
                
    $http_lang substr($_SERVER["HTTP_ACCEPT_LANGUAGE"],0,2);
                if (
    file_exists('../applicazioni/lingue/' $http_lang)) {
                
    $lang $http_lang
                } else {
                    
    $lang $this->defaultLanguage
                }
                
    $_SESSION['lang'] = $lang
                }
                if(isset(
    $_SESSION['lang'])) {   
                
    $lang $_SESSION['lang'];
                
    $_SESSION['lang'] = $lang;
                } elseif (isset(
    $_COOKIE['lang'])) {
                    
    $lang $_COOKIE['lang'];
                
    $_SESSION['lang']= $lang;
                }
                
           } 

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 © 2026 vBulletin Solutions, Inc. All rights reserved.