Этот вопрос основан на предыдущем вопросе, который я задал, но становится беспорядочным с редактированием, поскольку я не был уверен, где проблема может возникнуть. (Пожалуйста, сообщите, должен ли этот вопрос быть закрыт)
Я разрабатываю с PHP 5.3.3 в среде разработки + Apache 2 (там работает мой код) Производственный сервер имеет PHP 5.2.6 и тот же сервер (тот же код здесь не работает)
Благодаря Melsi по другому вопросу мне удалось сузить проблему до нескольких строк кода.
Проблема заключается в следующем: во включенном файле я запускаю сеанс и проверяю переменную. В зависимости от этой переменной сеанса я включаю языковой файл.
Структура выглядит так:
-index.php INCLUDE -menus.php -lang_fr.php -lang_en.php
Файлы следующие:
index.php
<?php //SET LANGUAGE if (isset($_GET['lang']) && $_GET['lang'] == 'fr') { $_SESSION['lang'] = 'fr'; } else if (isset($_GET['lang']) && $_GET['lang'] == 'en') { $_SESSION['lang'] = 'en'; } else { $_SESSION['lang'] = 'en'; } include_once 'include/menus.php'; ?> <html> <head> <title>building...</title> </head> <body> <?php echo($links); ?> <br><br> print_r($_SESSION); <br><br> <?php print_r($_SESSION); ?> </body> </html>
MENUS.PHP
<?php session_start(); if(isset($_SESSION['lang']) && $_SESSION['lang'] == 'en') { include_once('lang_en.php'); } else if(isset($_SESSION['lang']) && $_SESSION['lang'] == 'fr') { include_once('lang_fr.php'); } else { $_SESSION['lang'] = 'fr'; include_once('lang_fr.php'); } $links = <<<EOT <a href="/index.php?lang=en">English</a> <a href="/index.php?lang=fr">French</a> EOT; ?>
LAN_EN и FR.PHP
<?php $lang['test'] = "Test"; ?>
Это на моем локальном сервере работает и отображает правильные переменные сеанса, когда я нажимаю ссылки.
На рабочем сервере я получаю:
-Первая нагрузка: Массив ([lang] => fr) (по умолчанию, правильно)
-Нажмите ссылку по-английски: Массив ([lang] => Tn)
-Щелкните по французской ссылке: Массив ([lang] => Tr)
Если я изменю в файле языка «Тест» на «Pest», результаты выше будут «Pn» и «Pr»,
Я хотел бы знать, если что-то не так с кодом или с сервером создания конфигурации (по их поддержке нет ничего плохого), и если да, то в чем проблема.
Примечание. Проблема исчезает, когда я удаляю include в menus.php