Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Aggiungere una variabile ad un URL

    Ho una pagina che deve contenere la variabile "lang" uguale ad it o en nell'url in maniera da tenere traccia della lingua.
    Una volta settata non è un problema, ma vorrei sapere com'è possibile aggiungerla la prima volta che un utente si collega al siti e quindi ad index.php.
    Vorrei in pratica che se la variabile $_GET['lang'] non è settata, venga aggiunto all'url corrente (index.php) ?lang=it .
    Ho provato con il codice sottostante ma non funziona, qualcuno sa dirmi il perchè ?
    grazie
    - Kiko -
    Codice PHP:
    if (!isset($_GET['lang']) $_SERVER['PHP_SELF'] = $_SERVER['PHP_SELF'].'/?lang=it'
    .....vivi nel rispetto di chi vive nel rispetto degli altri ......

  2. #2
    Probabilmente ti sto dicendo una stupidaggine....ma se non ricordo male durante una lezione di web programming il mio prof disse che i nuovi browser riconoscono la lingua per visualizzare una pagina, semplicemente mettendola alla fine del file. Esempio:
    index.html.it
    Ma probabilmente avrò capito o male iterpretato io...

    edit:
    o forse non ho capito la tua domanda....

  3. #3
    Utente di HTML.it L'avatar di lloyd27
    Registrato dal
    Mar 2006
    Messaggi
    256
    Originariamente inviato da peppeocchi
    Probabilmente ti sto dicendo una stupidaggine....ma se non ricordo male durante una lezione di web programming il mio prof disse che i nuovi browser riconoscono la lingua per visualizzare una pagina, semplicemente mettendola alla fine del file. Esempio:
    index.html.it
    Ma probabilmente avrò capito o male interpretato io...

    edit:
    o forse non ho capito la tua domanda....
    Io questa non l'ho mai sentita.

    Comunque, una volta che sei dentro ad una pagina non c'è modo di poter modificare l'url del browser. L'unico modo è quello di ricaricare la pagina con un header del tipo

    Codice PHP:
    header('Location: ' $_SERVER['PHP_SELF'] . '&lang=it'); 
    Ma non vedo l'utilità di questo, puoi semplicemente utilizzare una variabile predefinita all'interno del codice PHP, ed aggiungerla a tutti i link nella pagina come se nulla fosse..

  4. #4

    Re: Aggiungere una variabile ad un URL

    Originariamente inviato da MadBob
    ma vorrei sapere com'è possibile aggiungerla la prima volta che un utente si collega al siti e quindi ad index.php.
    Vorrei in pratica che se la variabile $_GET['lang'] non è settata, venga aggiunto all'url corrente (index.php) ?lang=it .
    Ti basta inserire questo codice all'inizio dello script:

    Codice PHP:
    $_GET['lang'] = isset($_GET['lang']) ? $_GET['lang'] : 'it'

  5. #5
    Beh, probabile, infatti ho fatto una bella premessa prima.....comunque mi documenterò meglio e posterò eventuali aggiornamenti.

    Invece cercando in rete, il primo risultato su google è stato questo:

    http://www.visivagroup.it/showthread.php?t=22591

  6. #6
    Utente di HTML.it L'avatar di gianiaz
    Registrato dal
    May 2001
    Messaggi
    8,027

    Re: Re: Aggiungere una variabile ad un URL

    Originariamente inviato da filippo.toso
    Ti basta inserire questo codice all'inizio dello script:

    Codice PHP:
    $_GET['lang'] = isset($_GET['lang']) ? $_GET['lang'] : 'it'
    Ovviamente so che tu filippo non hai bisogno di suggerimenti, ma mi permetto di correggerti, in linea di principio non bisognerebbe mai reimpostare i valori di $_GET e $_POST.

    Meglio all'inizio del codice mettere una variabile di default (ad esempio $lang), che viene cambiata se è settato $_GET['lang'], e in tutto il sito fare riferimento a $lang.

    I motivi sono:

    1. Se una variabile è $_GET, devi essere sicuro che arrivi proprio dall'url, diverse volte mi è capitato di mettere mano a codice (chilometrico) scritto da altri e magari alla linea 1200 del file pippo.php trovare in $_GET['chiave'] un valore che era stato settato e risettato mille volte. Non c'è niente di peggio per rendere un codice illeggibile e difficile da mantenere.

    2. Se domani decidi di gestire in altro modo la ricezione della lingua (ad esempio usando il valore inviato dal browser come suggerito dal link di peppeocchi), basterà cambiare una sola linea.

    3. Aggiungo una cosa, oltre a settare la lingua cosi come arriva dal browser, bisognerebbe controllare che la lingua sia presente, perchè se cambio l'url e metto http://www.sito.com/index.php?lang=cinese, potrebbero esserci dei problemi.

    Morale io suggerirei questo:

    codice:
    $accepted_langs = array('it', 'en');
    $lang = 'it';
    if(isset($_GET['lang']) && in_array($_GET['lang'], $accepted_langs)) {
      $lang = $_GET['lang'];
    }
    MadBob, come dice filippo non è necessario reindirizzare la prima volta, ma prevedere semplicemente un caso di default.

    Ciao

  7. #7
    Grazie a tutti per le mille risposte !
    la mia necessità nasce dal fatto che voglio utilizzare l'url rewriting e trasformare quella variabile in www.sito.it/it/ etc. e mi trovo "spiazzato" la prima volta visto che la variabile non c'è e non so come settare le regole del rewriting.
    - Kiko -
    .....vivi nel rispetto di chi vive nel rispetto degli altri ......

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