setcookie('lang', $_POST['lang']);
if(session_start()) {
$_SESSION['lang'] = $_COOKIE['lang'];
} else {
$_SESSION['lang'] = $_POST['lang'];
}
$lang = $_SESSION['lang'];
$defaultlang = 'rus';
if (!isset($lang))
{
$lang = (!file_exists("./lang/{$lang}.php")) ? $defaultlang : $lang;
}
echo "lang=".$lang;
require "./lang/{$lang}.php";
<form action="?set=lang" method="post">
<select name="lang">
<option value="rus">ru</option>
<option value="eng">en</option>
</select>
<input type="submit" value="ok" />
</form>
Основная проблема в том, что до куки доходит только со второго раза