こんにちは、セッションの使い方について質問があります。
サイトの言語を変更したいと考えています。したがって、言語設定のロジックは次のとおりです。
私のサイトを呼び出すときに、browser_accept_language があるかどうかがチェックされます。言語設定がある場合は優先言語として使用され、それ以外の場合はデフォルト言語が設定されます。次のステップでは、セッションに保存されている設定が既にあるかどうかがチェックされます。language のセッション値がある場合、優先言語はセッション エントリに変更されます。
わかりました、それはロジック部分です。今私はコーディングしようとしました。問題は、それが機能していないようで、その理由がわからないことです。
したがって、phpは次のとおりです。
<?PHP
session_start();
header ("Content-Type: text/html; charset=utf-8");
include_once "scripts/db_connect.php";
if (isset($_SERVER["HTTP_ACCEPT_LANGUAGE"])){
$max = 0.0;
$languages = explode(",", (strtolower($_SERVER["HTTP_ACCEPT_LANGUAGE"])));
foreach($languages as $language){
$language = explode(';', $language);
$q = (isset($language[1])) ? ((float) $language[1]) : 1.0;
if ($q > $max){
$max = $q;
$pref_language = $language[0];
}
}
$pref_language = trim($pref_language);
}
$_SESSION['language'] = $pref_language_changed;
if (isset ($_SESSION['language']) ){
$pref_language = $pref_language_changed;
}...
続いて、フッターの mainwrapper 用の html が続きます。
if ($pref_language === "af" OR $pref_language === "en"{
$footer = "footer1";
}else{
$footer = "footer2";
}
include_once "../scripts/".$footer.".php";
フッター自体は次のとおりです。
... <ul class="flag">
<li id="'.$language_flag.'">
<ul class="drop_down">
<form action="'.$_SERVER['PHP_SELF'].'" method="post">
<a href="/foo"><li id="one"><div>language1</div></li></a>
<a href="/bar"><li id="two"><div>language2</div></li></a>
</form>
</ul>
</li>
</ul>...
<!--Footer -->';
if (isset($_POST['one'])){
$_SESSION['language'] = "language1";
}
if (isset($_POST['two'])){
$_SESSION['language'] = "language2";
}
?>
これが私のすべてのページの構成要素です。
セッションの使い方を教えてくれる人がいたら、本当に感謝しています。
どうもありがとう。