Visualizzazione risultati 1 fino 3 di 3

Discussione: mantenere i parametri cambiando lingua

  1. #1
    Guest

    Predefinito mantenere i parametri cambiando lingua

    Ho una pagina multilingua predisposta per prelevare variabili da un link esterno che rimanda a tale pagina.

    Di default il link esterno setta il linguaggio su inglese e l'indirizzo è schematizzabile così

    *index.php?lang=en&var1=X&var2=Y

    Per cambiare lingua ho trovato il seguente comando che nell'esempio sotto rimanda alla pagina in italiano

    <?php
    echo "<a href='" . $_SERVER['PHP_SELF'] . "?lang=it'>ITA</a>";
    ?>
    Se io clicco su ITA l'indirizzo passa a

    *index.php?lang=it

    ma perde sia var1 che var2.

    Esiste un altro comando/sintassi che permette di cambiare solo lang mantenendo le altre variabili?

    Ho trovato $_SERVER['QUERY_STRING'] ma ha il problema di scrivermi tutta la query e quindi di nuovo lang=en
    Ultima modifica di ht4u : 20-04-2010 alle ore 02.34.32

  2. #2
    L'avatar di sevenjeak
    sevenjeak non è connesso AlterGuru
    Data registrazione
    25-10-2007
    Residenza
    Roma
    Messaggi
    1,767

    Predefinito

    Prova con $_SERVER["REQUEST_URI"].

    Ho fatto questo script con una funzione che dovrebbe fare ciò che desideri:
    Codice PHP:
    function sostituisci_linhua($lang)
    {
    // Funzione che ha come primo parametro la lingua che desideri
    $indirizzo = $_SERVER["REQUEST_URI"];

    if (
    strstr($indirizzo, "?lang=en")) {
    $indirizzo = str_replace("?lang=en", "?lang=" . $lang, $indirizzo);
    }

    return
    $indirizzo;
    }

    echo
    "<a href='" . sostituisci_lingua("it") . "'>Italiano</a>
    Come vedi dovrai effettuare una sostituzione diversa ogni volta che cambia ?lang=*

    Premetto di non aver provato il corretto funzionamento del codice
    Ultima modifica di sevenjeak : 20-04-2010 alle ore 08.53.04

    Sevenjeak
    Software developer and much more

  3. #3
    Guest

    Predefinito

    Citazione Originalmente inviato da sevenjeak Visualizza messaggio
    Prova con $_SERVER["REQUEST_URI"].

    Ho fatto questo script con una funzione che dovrebbe fare ciò che desideri:
    Codice PHP:
    function sostituisci_linhua($lang)
    {
    // Funzione che ha come primo parametro la lingua che desideri
    $indirizzo = $_SERVER["REQUEST_URI"];

    if (
    strstr($indirizzo, "?lang=en")) {
    $indirizzo = str_replace("?lang=en", "?lang=" . $lang, $indirizzo);
    }

    return
    $indirizzo;
    }

    echo
    "<a href='" . sostituisci_lingua("it") . "'>Italiano</a>
    Come vedi dovrai effettuare una sostituzione diversa ogni volta che cambia ?lang=*

    Premetto di non aver provato il corretto funzionamento del codice
    Grazie per la dritta, ho apportato un paio di correzioni e ora funziona benissimo.

    Giusto per futura memoria metto il codice completo

    function sostituisci_lingua($lang)
    {
    // Funzione che ha come primo parametro la lingua che desideri
    $indirizzo = $_SERVER["REQUEST_URI"];

    if (strstr($indirizzo, "?lang=en")) {$indirizzo = str_replace("?lang=en", "?lang=" . $lang, $indirizzo);}
    elseif (strstr($indirizzo, "?lang=it")) {$indirizzo = str_replace("?lang=it", "?lang=" . $lang, $indirizzo);}
    elseif (strstr($indirizzo, "?lang=es")) {$indirizzo = str_replace("?lang=es", "?lang=" . $lang, $indirizzo);}
    elseif (strstr($indirizzo, "?lang=du")) {$indirizzo = str_replace("?lang=du", "?lang=" . $lang, $indirizzo);}
    elseif (strstr($indirizzo, "?lang=de")) {$indirizzo = str_replace("?lang=de", "?lang=" . $lang, $indirizzo);}
    elseif (strstr($indirizzo, "?lang=hr")) {$indirizzo = str_replace("?lang=hr", "?lang=" . $lang, $indirizzo);}
    else {$indirizzo = "?lang=" . $lang . "&" . $_SERVER['QUERY_STRING'];}

    return $indirizzo;
    }

    echo "<a href='" . sostituisci_lingua("it") . "'>ITALIANO</a>";

    echo "<a href='" . sostituisci_lingua("en") . "'>INGLESE</a>";

    echo "<a href='" . sostituisci_lingua("es") . "'>SPAGNOLO</a>";

    echo "<a href='" . sostituisci_lingua("du") . "'>OLANDESE</a>";

    echo "<a href='" . sostituisci_lingua("de") . "'>TEDESCO</a>";

    echo "<a href='" . sostituisci_lingua("hr") . "'>CROATO</a>";

    EDIT: c'è un altro problema però! Se nell'indirizzo non compare ?lang= non mi cambia la lingua!

    EDIT2: ho risolto e corretto il codice, la parte in blu è quella che risolve!!!
    Ultima modifica di ht4u : 20-04-2010 alle ore 10.07.32

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •