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

    aiuto sistema per la gestione delle lingue in un sito web

    salve ho un problemone per la gestione delle lingua in un sito internet
    praticamente ho creato il file en.php dove ci sono tutte le stringhe in inglese e il file it.php dove ci sono tutte le stringhe in italiano
    esempio:
    it.php

    <?php
    $home="Pagina iniziali";
    $registrati="Registrati";
    ?>
    en.php
    <?php
    $home="Home";
    $registrati="Register";
    ?>
    ecc

    nella mia home page metto il link per scegliere la lingua tipo
    codice:
    session_start();
    Clicca qui per l inglese
    include $lingua;
    session_destroy();
    <font color="white"><?php echo $home; ?> - <?php echo $registrati; ?></font>
    e nella pagine inglese.php
    codice:
    <?php
    $lingua="en.php";
    session_register("lingua");
    header("location:index.php");
    ?>

    ecco il problema:
    per modificare la lingua è necessario che distruggo la sessione della lingua attuale come potete vedere sotto include $lingua;
    perkè se non la distruggo non mi fa registrare la nuova sessione sulle altre lingua quando ci vado a cliccare
    peròòòòò se distruggo la sessione mi va in conflitto perchè mi distrugge anche la sessione di login e questo è male!!!!!!!
    questo metodo per la gestione delle lingue lo inventato io quindi non so fino a quando sia giusto mi date una mano su come posso fare?
    grazie

    ecco il sito internet:
    http://www.cettarte.net/new%20world/new_world/home.php

  2. #2
    Moderatore di PHP L'avatar di Alhazred
    Registrato dal
    Oct 2003
    Messaggi
    12,503
    Ti do un'altra idea.

    Nelle pagine invece delle stringhe metti delle costanti, del tipo
    <?php echo SALUTO ?>

    poi ti crei un file con le definizioni di tutte queste costanti, un file per ogni lingua.

    Metti link di questo tipo per la selezione della lingua sulle pagine
    eng
    e all'inizio della pagina includi il file giusto a seconda del parametro lang che ricevi.

  3. #3
    Costanti o variabili cambia poco.
    Il suo problema è quello di mantenere la sessione.

    Comunque anzichè distruggere la sessione, perchè semplicemente non ne cambi il valore?

    $_SESSION['lingua'] = 'it';
    Ciao!

  4. #4
    Giusto.
    Potresti anche utilizzare i COOKIE, che per la lingua di un sito non sono mai un errore.
    Così quando l'utente si collegherà nuovamente al tuo sito avrà già la lingua impostata.
    Setti un cookie con time()+360000000 e sei sicuro che gli dura per un pò.
    Comunque sono d'accordo con Alhazred.
    Se utilizzi le costanti non avrai problemi di variabili soprascritte.
    Ti fai un
    Codice PHP:
    //le k davanti aiutano a capire al volo che è una costante
    define("kNomecostante","Valorecostante"); 
    Ce l'ho fatta! - ItalianPixel -

  5. #5
    @agadir92

    Evitiamo di inserire termini inutili come "aiuto" nel titolo come indicato nel regolamento. Per questa volta sistemo io però più attenzione per i prossimi thread.

  6. #6
    grazie a tutti ottimo sia quello delle sessioni che del link
    ps: scusate mod visto che non è una guida ho pensato di mettere l appellativo aiuto per indicare che chiedevo

    edit:lo fatto con le sessioni, e funziona benissimo solo che volevo impostare i cockie in modo che ti resta memorizzato, nella pagina che modifica la sessione cioè la lingua ho aggiunto dopo la modifica
    time()+36000000;
    però se riavvio il browser non mi resta memorizzata la sessione cioè l impostazione, mi potreste spiegare meglio come funzionano i cockie funzionano da salvataggi nella memoria del browser? insomma spiegatemi gentilmente come posso utilizzarli per mantenere salvata la lingua sul proprio pc grazie!

  7. #7
    Beh, la sessione dura, appunto, per tutta la durata della sessione.
    Riavvio computer = chiusura browser
    Chiusura del browser = chiusura sessione
    oppure session_destroy() = chiusura sessione
    I cookie vengono salvati in un file sul computer dell'utente.
    Quando riavvii il browser, la sessione viene riaperta, perdendo i dati della sessione precedente, mentre i cookie vengono recuperati dalla lista dei cookie, permanenti fino a data concordata (+3600, +100000000 secondi o quello che preferisci).
    Per questo per la lingua va utilizzato il cookie.
    La sessione può servire per un login, in quanto rimane "salvato nell'etere" fino a chiusura del browser o distruzione della sessione stessa, quindi più sicuro nella protezione di zone riservate in quanto non salva dati sensibili dentro a un file.
    Basta che setti i cookie così:

    Codice PHP:
    //l'ultimo valore è la scadenza. 3600 secondi = 1 ora
    setcookie("nomecookie","valorecookie",time()+3600); 
    e lo richiami all'inizio della pagina:
    Codice PHP:
    include "lingue/".$_COOKIE['nomecookie'].".php; 
    e sei a posto.
    Ce l'ho fatta! - ItalianPixel -

  8. #8
    grazie, proprio quello che cercavo!

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.