Vraag & Antwoord

Webprogrammeren & scripting

[PHP] Verschillende talen m.b.v. sessions

Anoniem
None
4 antwoorden
  • Ik wil op mijn website gebruik maken van 3 verschillende talen ([i:f5ffb48bce]nederlands/engels/duits[/i:f5ffb48bce])

    Nu wil ik d.m.v. sessions ervoor zorgen dat ik niet iedere keer de taal mee hoef te geven in de link. Echter werkt dit niet helemaal zoals ik dat zou willen.
    [code:1:f5ffb48bce]
    <?php
    session_start();

    if(!isset($language)) $language="NL";

    session_register("language");
    ?>

    <a href="language.inc.php?language=NL">
    <img border="0" alt="Nederlands" src="../images/flags/nederlands-off.gif" width="20" height="17"></a>
    <a href="language.inc.php?language=EN">
    <img border="0" alt="English" src="../images/flags/english-off.gif" width="20" height="17"></a>
    <a href="language.inc.php?language=DE">
    <img border="0" alt="Deutsch" src="../images/flags/deutsch-off.gif" width="20" height="17"></a>

    <br><br>
    De taal op dit moment is: <?php echo $language; ?>[/code:1:f5ffb48bce]

    Het probleem is dat hij de variabele niet update, de taal blijft dus altijd nederlands.

    Nu weet ik dat je die sessie variabele ook weer kan verwijderen met [i:f5ffb48bce]session_unset();[/i:f5ffb48bce] maar dat werkt ook niet en ik ben bang dat als ik straks een login systeem heb dat hij die variabelen ook verwijderd, hoe kan ik dat oplossen ?

    Je hebt ook [i:f5ffb48bce]session_name([naam])[/i:f5ffb48bce]
    als je meerdere sessie's wilt maken met verschillende namen, hoe weet het systeem dan welke variabele er bij welke sessie naam horen ?

    [size=10:f5ffb48bce][b:f5ffb48bce]session_start()[/b:f5ffb48bce] laadt alle session data in het geheugen.
    [b:f5ffb48bce]session_destroy()[/b:f5ffb48bce] Verwijdert alle session data uit het geheugen.
    [b:f5ffb48bce]session_register(var)[/b:f5ffb48bce] registreert de variabele 'var' in een session.
    [b:f5ffb48bce]session_unregister(var)[/b:f5ffb48bce] controleert of de variabele var al is geregistreerd
    [b:f5ffb48bce]session_name([naam])[/b:f5ffb48bce] geeft de session name als waarde, als naam is ingevuld wordt de session name veranderd in naam.
    [b:f5ffb48bce]session_id([id])[/b:f5ffb48bce] geeft de session id als waarde, als id is ingevuld wordt de session id veranderd in id.
    [b:f5ffb48bce]session_unset()[/b:f5ffb48bce] maakt alle variabelen in een session 'vrij'.[/size:f5ffb48bce]


    Ik maak gebruik van PHP 4.1.2
    ik heb ook ergens gelezen dat het gebruik van de variabele sinds 4.0 is veranderd in $SESSION['variabele']

    klopt dit en zo ja, bij welke functies word dit dan gebruikt ?
  • Ik weet niet zeker of dit helemaal is wat je bedoelt maar probeer dit eens:

    [code:1:9654765768]
    <?php
    session_start();
    session_register("language");

    if($_SESSION['language'] == ""){ $_SESSION['language'] ="NL" };
    ?>
    [/code:1:9654765768]

    Dan benander je voor de rest de variable $language als $_SESSION['language'].

    Probeer maar eens.

    Groet,
    Marcel
  • Marcel, bedankt voor je antwoord,

    Ik had het al gevonden, alleen nog geen tijd gehad om het te posten dus
    bij deze :lol:

    if (!isset($_GET['language']) and !isset($_SESSION['language'])) {
    $language="NL";
    }
    elseif( isset( $_GET['language'])) {
    $language = $_GET['language'];
    }
    else {
    $language = $_SESSION['language'];
    }

    $_SESSION['language'] = $language;
  • Nu is het me ook helemaal duidelijk wat je bedoelde.

    Keep up the good work!

Beantwoord deze vraag

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.