私はPHPを使い始めていますので、どうしたらいいのか分かりません。関数を使って$ _SESSION varの値を更新しようとしていますが、機能していません。すべての まず、私がセッションを開始し、それは私のheader.phpの中で「未定義」であればセッションにデフォルト値を設定します。
<?php
session_start();
if (!isset($_SESSION["locale"])) {
$_SESSION["locale"] = 'pt_BR';
}
?>
それから私は私のPHPの関数を呼び出すいくつかのAJAXを持っています。 PHPファイル内の後
$('#change_locale_br').click(function() {
$.ajax({
type: "POST",
url: "i18n/i18n_functions.php",
data: { action: "changelocale", new_locale: "pt_BR" },
success: function() {
}
});
});
、私は次のコードを持っている:
<?php
function changelocale($l) {
$_SESSION["locale"] = $l;
}
if(isset($_POST['action']) && $_POST['action'] == 'changelocale'){
$l = $_POST['new_locale'];
changelocale($l);
}
?>
だからchangelocale機能が異なる値(語pt_BR、ESおよびなど)と呼ばれているが、呼び出された後、それはdoesnのを$ _SESSION ["locale"]値を実際に変更しません。
私は多くの研究を行い、ここでの提案やPHPのマニュアルページでは何も提案されていません。この場合、何ができるのか誰かが知っていますか?
ありがとうございます。
投稿を編集しました。 'session_start()'を試しましたか? [エラー報告を有効にする](https://stackoverflow.com/questions/1053424/how-do-i-get-php-errors-to-display)後にエラーメッセージが表示されますか? – FrankerZ
はい、header.php(これは他のページにも含まれています)で行いました。私はエラーメッセージを受け取っていません。 –
'print_r($ _ SESSION)'を実行するとどうなりますか?それを設定する前後に印刷し、あなたの投稿応答(JavaScriptから)に更新された値が表示されていることを確認してください。 – FrankerZ