Note that there are some explanatory texts on larger screens.

plurals
  1. POphp session variable lost
    primarykey
    data
    text
    <p>I work with php5 and apache2 on my development machine. The production server is apparently similar.</p> <p>I have a script set_language.php that creates a session variable according to the language chosen:</p> <pre><code>&lt;?php session_start(); $back = $_SERVER['HTTP_REFERER']; if (isset($_GET['lang'])) { if ($_GET['lang'] == 'fr') $_SESSION['lang'] = 'fr'; else if ($_GET['lang'] == 'en') $_SESSION['lang'] = 'en'; } header( "Location: $back" ) ; exit(); ?&gt; </code></pre> <p>Then I include the code below on all pages:</p> <pre><code>session_start(); if(isset($_SESSION['lang']) &amp;&amp; $_SESSION['lang'] == 'en') { require('lang_en.php'); } else if(isset($_SESSION['lang']) &amp;&amp; $_SESSION['lang'] == 'fr') { require('lang_fr.php'); } </code></pre> <p>Than I can get language-dependent variables with:</p> <pre><code>echo $lang[sometexttotranslate]; </code></pre> <p>On the development server it works as expected. I click on the link to set the language and my session variables contain lang=en or fr</p> <p>On the production server:</p> <p>$_SESSION['lang'] = <strong>dn</strong> or <strong>dr</strong> (should be en or fr)</p> <p>echo $lang[sometexttotranslate] = <strong>d</strong> (should be a translated text)</p> <p>Any idea where the "d"'s come from?</p> <p>This is not a redirection/header/session_start() problem.</p> <hr> <p>print_r($_SESSION) on first load:</p> <p><strong>Array ( [lang] => fr )</strong></p> <p>print_r($_SESSION) after a click on the english link (set_lang.php above):</p> <p><strong>Array ( [lang] => dn )</strong></p> <p>print_r($_SESSION) after a click on the french link (set_lang.php above):</p> <p><strong>Array ( [lang] => dr )</strong></p> <p>print_r($_SESSION) after login:</p> <p><strong>Array ( [lang] => dr [valid] => 1 [pseudo] => GYC [uid] => 3 )</strong></p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload