• User Attivo

    Certamente


  • User Attivo

    Non mi funziona...
    Allora io ho le bandierine in un file funzioni.inc.php che includo in tutte le pagine.
    Le bandierine sono nella seguente funzione:
    [PHP]<? function testa(){?>
    <div class="testa">
    <a href="index.php"><img src="immagini/logoTop.png" alt="Home Page" class="logoTop" /></a>
    <div id="bandiere">
    <a href="#" onclick="lingue(it);"><div class="IT"></div></a>
    <a href="#" onclick="lingue(en);"><div class="EN"></div></a>
    </div>
    </div>
    <?php }[/PHP]

    E in ogni pagina richiamo la funzione testa().
    Ora la funzione lingue() dove la devo inserire? Sempre dentro il file funzioni.inc.php o addirittura dentro la funzione testa()? Se metto il redirect dentro la funzione lingue(), non mi reinderizza a funzioni.inc.php?


  • User Attivo

    ma non devi mica mettere le bandiere in una funzione!
    Devi mettere il codice del cookie dentro alla funzione e richiamarla.
    Le bandiere sono semplici link


  • User Attivo

    Io le metto dentro una funzione insieme a tutta la testata del sito perchè se cambio una cosa dovrei cambiarla in tutte le pagine. Così modifico la funzione e automaticamente si cambia in tutte le pagine....ma parliamo delle bandierine....

    E' giusto così?
    [PHP]<? function testa(){?>
    <?
    function lingua($lingua){
    setcookie("lingua",$lingua,time()+3600000000000);
    header("location:".$_SERVER['PHP_SELF']);
    }
    ?>
    <div class="testa">
    <a href="index.php"><img src="immagini/logoTop.png" alt="Home Page" class="logoTop" /></a>
    <div id="bandiere">
    <a href="#" onclick="lingua('it');"><div class="IT"></div></a>
    <a href="#" onclick="lingua('en');"><div class="EN"></div></a>
    </div>
    </div>
    <?php }?>[/PHP]


  • User Attivo

    Allora, se devi avere le bandiere modificabili mettile in un file esterno e includilo.
    La funzione della lingua è una cosa a se stante. Non deve essere una sottofunzione o dipendende da qualcosa,


  • User Attivo

    Infatti è in un file a parte che includo "funzioni.inc.php"

    Così com'è?

    [PHP]<? function testa(){?>
    <div class="testa">
    <a href="index.php"><img src="immagini/logoTop.png" alt="Home Page" class="logoTop" /></a>
    <div id="bandiere">
    <a href="#" onclick="lingua('it');"><div class="IT"></div></a>
    <a href="#" onclick="lingua('en');"><div class="EN"></div></a>
    </div>
    </div>
    <?php }
    function lingua($lingua){
    setcookie("lingua",$lingua,time()+3600000000000);
    define("kLingua",$_COOKIE['lingua']);
    header("location:".$_SERVER['PHP_SELF']);
    }?>[/PHP]


  • User Attivo

    Non mi funziona 😞


  • User Attivo

    La funzione la puoi richiamare ma sempre in javascript:[PHP]
    <script type="text/javascript">

    function lingua(var1)
    {        
    <?php
    	setcookie("lingua",?>var1<?php ,time()+3600000000000); 
        define("kLingua",$_COOKIE['lingua']); 
        header("location:".$_SERVER['PHP_SELF']);  
    ?>
    }
    </script>[/PHP]
    

    Non l'ho testata ma dovrebbe funzionare. Mettila prima delle bandiere.

    Se non funziona allora crea una funzione per lingua, preimpostando la lingua e cambiando i nomi delle funzioni in italiano(), inglese() e richiamandole con l'onclick:
    [PHP]
    function italiano()
    {
    <?php
    setcookie("lingua","it" ,time()+3600000000000);
    define("kLingua",$_COOKIE['lingua']);
    header("location:".$_SERVER['PHP_SELF']);
    ?>
    }
    </script>[/PHP]


  • User Attivo

    Mi da errore qui:
    (nel primo esempio di codice che mi hai scritto)
    [PHP]setcookie("lingua",?>var1<?php ,time()+3600000000000);[/PHP]

    Parse error: syntax error, unexpected ';' in /web/htdocs/www.finsicilia.it/home/comen2010/funzioni.inc.php on line 5


  • User Attivo

    Immaginavo (bisogna provarci a volte).
    Allora crea una funzione per ogni lingua e la richiami dalle bandiere:
    [PHP]
    <script type="text/javascript">
    function italiano(){
    <?php
    setcookie("lingua","it" ,time()+3600000000000);
    define("kLingua",$_COOKIE['lingua']);
    header("location:".$_SERVER['PHP_SELF']);
    ?>
    }
    function inglese(){
    <?php
    setcookie("lingua","en" ,time()+3600000000000);
    define("kLingua",$_COOKIE['lingua']);
    header("location:".$_SERVER['PHP_SELF']);
    ?>
    }
    function francese(){
    <?php
    setcookie("lingua","fr" ,time()+3600000000000);
    define("kLingua",$_COOKIE['lingua']);
    header("location:".$_SERVER['PHP_SELF']);
    ?>
    }
    </script>
    [/PHP]

    Chiaramente inserisci il tutto in un file incluso e poi lo richiami dalle bandiere con l'evento onclick:
    onclick="italiano();" >
    e così per le altre lingue.
    Non credo ci siano errori di battitura ma è tardi. Provaci e fammi sapere.
    Buona notte :ciauz:


  • User Attivo

    Niente, ci rinuncio... non funziona!
    Se faccio in questo modo non mi carica la pagina perchè l'header lo fa sballare.
    Se levo l'header il cookie non lo setta comunque...
    Ci rinuncio! 😞


  • User Attivo

    Mai rinunciare. Ci sono mille vie per ottenere un risultato!
    Il più semplice, a questo punto, è settare un get sulla stessa pagina:
    [PHP]
    if(isset($_GET['lingua'])){
    setcookie("lingua",$_GET['lingua'] ,time()+3600000000000);
    header("location:".$_SERVER['PHP_SELF']);
    }
    //il define tienilo fuori se no viene creato solo se è settato il GET lingua
    define("kLingua",$_COOKIE['lingua']);

    [/PHP]
    E nelle bandiere metti:
    [PHP]
    <div id="bandiere">
    <a href="<?php echo $_SERVER['PHP_SELF']; ?>?lingua=it"><div class="IT"></div></a>
    <a href="<?php echo $_SERVER['PHP_SELF']; ?>?lingua=en"><div class="EN"></div></a>
    </div>
    [/PHP]
    Così ti fai un semplice controllo del GET. Se c'è la variabile lingua settata allora setta il cookie in automatico e fa un refresh della pagina.
    Così ti basta aggiungere una bandiera cambiando il valore della variabile lingua e hai una nuova lingua.
    Fammi sapere...


  • User Attivo

    Ciao ragazzi, ho creato un file italiano.php che l'ho incluso nel file config.php.

    Adesso provo a vedere se funziona il tutto scrivo nel file italiano.php questo codice

    define("kHome","Home");
    define("kContattaci","Contattaci");
    define("kEshop","E-Shop");

    Vado nella index.php è scrivo:

    <?php echo "KHome | KContattaci | kEshop"; ?>

    Ma non mi stampa niente, cioè mi stampa i nome delle costanti come mai?

    Ciao


  • User Attivo

    Semplice, perchè così come hai scritto le costanti sono lette come stringa, in quanto sono tra doppi apici. Per ottenere il valore delle costanti, devi pensarle come variabili ma senza il dollaro davanti. Per questo uso la k 😉
    Quindi metti kHome." | ".kecc.. E funzionerà tutto perfettamente!
    [URL=http://www.giorgiotave.it/forum/gt-world/101972-forum-gt-disponibile-alle-versioni-per-telefoni-cellulari.html]Postato via Mobile


  • User Attivo

    Perfetto adesso va 😉 Grazie mille 😉


  • User Attivo

    Con il GET non dovrebbero esserci problemi, era stato il mio primo pensiero...mi sono solo bloccato perchè nel caso in cui sono nella pagina "pinco.php?p=34&t=ciao" e provo a fare un <? $_SERVER['PHP_SELF']; ?>?ln=en mi cancella tutti i valori GET che avevo prima..... 😞


  • User Attivo

    Se hai delle variabili GET già impostate devi usare $_SERVER['REQUEST_URI'] e gli aggiungi:
    $_SERVER['REQUEST_URI']."&lingua=it
    così ti rimangono le variabili invariate, aggiungendoti solamente la lingua.
    Se invece non hai delle variabili GET settate non c'è problema.
    Fatti un controllo. Se il GET è settato allora aggiungi &lingua=it altrimenti aggiungi ?lingua=it


  • User Attivo

    C'è un modo per sapere se sono settate variabili GET in generale o devo sapere io per quella pagina quali potrebbero essere e vedo se è settata?
    Comunque veramente grazie mille 😉


  • User Attivo

    E se lo facessimo con AJAX così non c'è bisogno di ri-caricare la pagina?


  • User Attivo

    La parte con il GET va che è una meraviglia. C'è solo una cosa che vorrei migliorare..se mi date una mano ve ne sono grato.

    Praticamente nel redirect (header) faccio un controllo. Se sono settate variabili GET redirect a $_SERVER['REQUEST_URI'] se no a $_SERVER['PHP_SELF']

    Però devo controllare che tra queste variabili non sia solo la variabile Lingua.

    E poi nelle bandierine:
    [PHP]<a href="<?php echo $_SERVER['PHP_SELF']; ?>?lingua=it"><div class="IT"></div></a>
    <a href="<?php if(isset($_GET) && count($_GET)) echo $_SERVER['REQUEST_URI']."&lingua=en"; else echo $_SERVER['PHP_SELF']."?lingua=en"; ?>"><div class="EN"></div></a>[/PHP]
    Con questo codice, se ho la pagina index.php?news=2&lingua=en, se clicco sulla bandiera inglese mi collegherà a index.php?news=2&lingua=en&lingua=en