Op deze website gebruiken we cookies om content en advertenties te personaliseren, om functies voor social media te bieden en om ons websiteverkeer te analyseren. Ook delen we informatie over uw gebruik van onze site met onze partners voor social media, adverteren en analyse. Deze partners kunnen deze gegevens combineren met andere informatie die u aan ze heeft verstrekt of die ze hebben verzameld op basis van uw gebruik van hun services. Meer informatie.

Akkoord

Vraag & Antwoord

Webprogrammeren & scripting

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

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.