7

PHP で、ボタンをクリックしたときにサイトの言語 (英語、ドイツ語など) を変更したい。これはその問題にアプローチする正しい方法ですか?

<?php 
  $language;
  if ($language == "en") {
    include("headerEn.php");
  } else {
    include("header.php");
  } 
?>
<a href="index.php"><?php $language = "en"; ?>
<img src="images/language/languageNO.png"></a>

<a href="index.php"><?php $language = "no"; ?>
<img src="images/language/languageEN.png"></a>

サイトの言語を変更し、ユーザーが戻ったときにそれを保持する最良の方法は何ですか?

4

7 に答える 7

10

あなたはこれを行うことができます

<a href="index.php?language=en">
<a href="index.php?language=no">

言語を取得してCookieに保存し、Cookieに従ってファイルをインクルードします

if ( !empty($_GET['language']) ) {
    $_COOKIE['language'] = $_GET['language'] === 'en' ? 'en' : 'nl';
} else {
    $_COOKIE['language'] = 'nl';
}
setcookie('language', $_COOKIE['language']);

そしてより

if ( $_COOKIE['language'] == "en") {
   include("headerEn.php");
} else {
   include("header.php");
} ?>
于 2013-02-25T13:32:01.317 に答える
3

言語のないサイトにたどり着かないように、デフォルト値を設定しておくことをお勧めします。

$language = $_REQUEST["language"];
$default_header="myheaderXXX.php";

switch ($language) {
    case "en":
      include("headerEn.php");
      break;

    case "no":
      include("header.php");
      break;

    default:
      include($default_header);
}

次に、次のようなリンクを作成します。

<a href="index.php?language=en">
<a href="index.php?language=no">
于 2013-02-25T13:35:29.693 に答える
3

アプローチを変更せずに解決策を提供するには、次のようにすることができます。

<?php 
if(isset($_GET['language']))
  $language = $_GET['language'];
else
  $language = "";

if ($language == "en") {
   include("headerEn.php");
} else {
   include("header.php");
} ?>

<a href="index.php?language = en"><img src="images/language/languageNO.png">      </a>
<a href="index.php?language = no"><img src="images/language/languageEN.png"></a>

選択を保持したい場合は、この値をデータベースまたはセッションに保存できます。

于 2013-02-25T13:34:19.507 に答える
0

このように同じコードを実装できます。コードを編集しました。

<?php 
$language; ?>
<?php if ($language == "en") : ?>
    <?php include("headerEn.php"); ?>
     <a href="index.php"><?php $language = "en"; ?><img src="images/language/languageNO.png"></a> 
<?php else: ?>
    <?php include("header.php"); ?>
     <a href="index.php"><?php $language = "no"; ?><img src="images/language/languageEN.png"></a>
<?php endif; ?> 

これはあなたの問題を解決します。

于 2013-02-25T13:36:56.350 に答える
0

$languageこの値をセッション変数に保存してみてください。ページがリロードされたら、セッション変数が設定されているかどうかを確認します。

設定されている場合はそれを使用します$language

ノート:

$language = $_GET['language'];
于 2013-02-25T13:33:14.020 に答える
0

PHP 内の変数を html で変更することはできません。PHP はサーバーサイド HTML はクライアントサイド

ただし、 GET変数を使用して変更できます。これが最も簡単な方法です。

于 2013-02-25T13:33:22.863 に答える