Solved

PHP session variable

Posted on 2009-07-15
8
191 Views
Last Modified: 2013-12-13
Hi

I have a website that uses language files for all the text and I want to have a default language and use a form to allow users to select a different language.

I want to store the selected or default language in a session variable.

The code I'm using is in the code section.

The outcome is that the site loads in the default language of english and the page changes to german if the german button is pressed but it changes back to english when you navigate to a different page.

I'm clearly going wrong but I have no idea where so your help is appreciated.

Cheers
Andy
Code to set session variable:
 

if(isset($_POST['language'])) {

    $_SESSION['language'] = $_POST['language'];

}else{

    $_SESSION['language'] = 'english';}
 

Form for user language selection:
 

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">

            <input type="submit" name="language" value="german" />

        	<input type="submit" name="language" value="english" />

            </form>

Open in new window

0
Comment
Question by:slicethepie
  • 4
  • 2
  • 2
8 Comments
 
LVL 28

Expert Comment

by:gamebits
ID: 24859383
You should do it the other way around, check if the session isset if not set the session using the post variable, this way when you get to the next page and the session has been set it will not default to English.
0
 

Author Comment

by:slicethepie
ID: 24859414
I think you meant like this:



if(isset($_SESSION['language'])) {
    $_SESSION['language'] = $_POST['language'];
}else{
    $_SESSION['language'] = 'english';}




Which gives me this as a result:

Undefined index: language in

I'm guessing this is because the form hasn't been submitted yet
0
 
LVL 28

Expert Comment

by:gamebits
ID: 24859540
I was think more like


if(!isset($_SESSION['language'])) {
    $_SESSION['language'] = $_POST['language'];
}

0
 

Author Comment

by:slicethepie
ID: 24859683
Cool, it works. Thanks

How does it know what the default language is though?
0
Better Security Awareness With Threat Intelligence

See how one of the leading financial services organizations uses Recorded Future as part of a holistic threat intelligence program to promote security awareness and proactively and efficiently identify threats.

 

Author Comment

by:slicethepie
ID: 24859743
I was wrong, it doesn't work it just had the variable stored from earlier in my session

variable is just empty so the site can't load the language file
0
 
LVL 10

Accepted Solution

by:
racmail2001 earned 50 total points
ID: 24859841
can you try this?
if(!isset($_SESSION['language'])) {  $_SESSION['language'] = 'english';}

// if language is not set - go with english

if (isset($_POST['language'])){    $_SESSION['language'] = $_POST['language'] ;}

// if you have post for language, change it with hat user selected

Open in new window

0
 
LVL 10

Expert Comment

by:racmail2001
ID: 24859847
i hope my spelling it's corect
0
 

Author Comment

by:slicethepie
ID: 24860037
Works perfectly, thank you
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Introduction HTML checkboxes provide the perfect way for a web developer to receive client input when the client's options might be none, one or many.  But the PHP code for processing the checkboxes can be confusing at first.  What if a checkbox is…
Things That Drive Us Nuts Have you noticed the use of the reCaptcha feature at EE and other web sites?  It wants you to read and retype something that looks like this.Insanity!  It's not EE's fault - that's just the way reCaptcha works.  But it is …
The viewer will learn how to dynamically set the form action using jQuery.
This tutorial will teach you the core code needed to finalize the addition of a watermark to your image. The viewer will use a small PHP class to learn and create a watermark.

762 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

21 Experts available now in Live!

Get 1:1 Help Now