Solved

PHP session variable

Posted on 2009-07-15
8
192 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
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 

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

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Generating table dynamically is the most common issue faced by php developers.... So it seems there is a need of an article that explains the basic concept of generating tables dynamically. It just requires a basic knowledge of html and little maths…
This article discusses how to create an extensible mechanism for linked drop downs.
The viewer will learn how to create and use a small PHP class to apply a watermark to an image. This video shows the viewer the setup for the PHP watermark as well as important coding language. Continue to Part 2 to learn the core code used in creat…
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.

895 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

17 Experts available now in Live!

Get 1:1 Help Now