Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1

    valore diverso da query string

    ciao a tutti,
    ho una variabile a cui assegno un valore così:
    $lang = $_GET["lang"];
    ...in query string gli passo IT oppure EN in base alla lingua scelta dall'utente, e fin qui tutto bene, ma come faccio a ad assegnare alla variabile $lang valore IT quando in query string nn viene passato nulla o viene passato qualcosa di diverso da IT o EN????

    Mi aiutate?

    Grazie
    ciao

  2. #2
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    if (! isset($_GET['lang']) || ($_GET['lang'] != 'IT' && $_GET['lang'] != 'EN')) $lang = 'IT';
    else $lang = $_GET['lang'];

  3. #3
    codice:
    if(isset($_GET["lang"]) AND $_GET["lang"] != '' )  {
    
          if($_GET["lang"] == 'IT' OR $_GET["lang"] == 'EN'  {
                  $lang = $_GET["lang"];
          }   else $lang = 'IT';
            
    } else $lang = 'IT';

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  4. #4
    Utente di HTML.it L'avatar di badaze
    Registrato dal
    Jun 2002
    residenza
    Lyon
    Messaggi
    5,372
    codice:
    if (!isset($_GET['lang'])) {
     $lang = 'IT';
    } else {
     if ($_GET['lang'] != 'IT' and $_GET['lang'] != 'EN') {
       $lang = 'IT';
     } else {
       $lang = $_GET['lang'];
     }
    }

  5. #5
    azz... ho perso tempo con i saluti....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  6. #6
    grazie 1000 a tutti!!

  7. #7
    raga ho appena provato le vostre soluzione ma non riesco a risolvere il problema.
    Ad esempio ho provato così:
    <? $lang = $_GET["lang"];
    if (! isset($_GET['lang']) || ($_GET['lang'] != 'IT' && $_GET['lang'] != 'EN')) $lang = 'IT';
    else $lang = $_GET['lang'];
    ?>
    ho provato a stampare a video il valore di $lang ma nn và.... e il risultato nn cambia anche con le altre soluzioni... il valore di $lang è sempre uguale a quello che viene passato in querystring o se nn viene passato nulla in query string a video non mi stampa niente.

    Come posso risolvere dove sta l'errore??

  8. #8
    la faccio figa

    codice:
    $lang = !isset($_GET['lang'])
      ? 'IT'
      : (
        $_GET['lang']=='IT' ||  $_GET['lang']=='EN'
        )
          ? $_GET['lang']
          : 'IT';


    te l'ho spezzato su + righe per fartelo capire meglio, ma in realtà poteva stare su una sola

    si chiama "operatore ternario" (che bello, credo che sia una delle poche volte che mi ricordo come si chiama ) in pratica ti permette di restituire un valore od un altro in base alla condizione booleana

    ovvero

    $variabile = CONDIZIONE_BOOLEANA ? RESTITUITO_QUESTO_VALORE_SE_TRUE : RESTITUITO_QUESTO_VALORE_SE_FALSE

    la condizione booleana deve valere true o false

    in tutti e 3 i parametri puoi mettere qualsiasi cosa vuoi, ma ricordati ovviamente che nel primo deve essere gestito come valore booleano...un po come un if
    codice:
    if (CONDIZIONE_BOOLEANA) {
      $variabile = RESTITUITO_QUESTO_VALORE_SE_TRUE;
    } else {
      $variabile = RESTITUITO_QUESTO_VALORE_SE_FALSE;
    }
    xo è + comodo da usare

    quello che ti ho scritto su un doppio operatore ternario, in pratica lanci il primo, se il valore che ritorna il primo è true (isset restituisce false se il valore non è settato, ma quel punto esclamativo all'inizio inverte il valore booleano...!true = false e al contrario...quindi !false diventa true) allora lancia il secondo operatore ternario che verifica se il contenuto è IT o EN altrimenti, se false, in tutti e due i casi, restituisce IT

    è possibile anche farlo con un solo operatore ternario cosi...

    codice:
    $lang = isset($_GET['lang']) && $_GET['lang']=='IT' &&  $_GET['lang']=='EN'
      ? $_GET['lang']
      : 'IT';


    non so se mi sono spiegato, ma c'ho provato

  9. #9
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Mi sa che nel primo caso, quello in cui ne hai usati due, tutto ciò che sta dopo il primo due punti deve stare fra parentesi, altrimenti php capisce male

  10. #10
    no questo no

    o meglio, io ne sono arrivati ad usare anche 3 in cascata (anche se dopo mi sono domandato il xche dato che avevo una chilometrica, incomprensibile, riga di codice)

    [OT]
    piuttosto ho notato che in certi casi php mi fonde...
    oggi pome a lavoro avevo qualcosa del tipo...

    $query = "xyz tyz......." . $valore == 'X' ? 'X' : 'Y' . " asdasd";

    e $query, invece di contenermi il tutto mi conteneva solo il valore ritornato dal ternario

    se lo metto, tutto, tra parantesi invece va
    buggetto dello zend engine 1?

    PS: monto php 4.3.9 a lavoro

    [i problemi strani li becco tutti io ]
    [/OT]

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.