Я сделал сайт на localhost. Затем я загрузил его на разные серверы, и никаких проблем. Однако на этот раз я попытался загрузить Интернет на другой сервер, и на этом коде, который точно так же работает на других сайтах, не работает должным образом. Я упрощал ошибку и должен быть в одной из следующих строк.
Если я ввожу URL моего веб-сайта, мой код должен автоматически добавить язык по умолчанию в URL (что эс), если этот еще не был указан. Например, если я наберу mydomain.com, оно должно быть преобразовано в mydomain.com/es.
Вот коды (Примечание: lang был объявлен в htaccess и является именем первого параметра, введенного в URL, в данном случае, языком):
index.php КОД:
<?php
$idiomas = array("ES", "GL", "EN");
if (!(isset($_GET['lang']) && $_GET['lang'] == "admin")) {
require_once("pages/language.php");
}
?>
language.php КОД:
<?php
if (isset($_GET['lang']) && $_GET['lang'] != "") {
switch ($_GET['lang']) {
case strtolower($idiomas[0]):
case strtolower($idiomas[1]):
case strtolower($idiomas[2]):
case 'admin':
$_SESSION['lang'] = $_GET['lang'];
break;
default: {
header("Location: ".ROOT);
}
}
}
else {
if (!isset($_SESSION['lang']) || $_SESSION['lang'] == "") {
echo '<meta http-equiv="refresh" content="0; url='.strtolower($idiomas[0]).'">';
exit;
}
}
?>
Теперь, что происходит: вы печатаете mydomain.com и этот превращается в mydomain.com/es на URL, верно, но он начинает делать это каждую миллисекунду, перезагружая и перезагружая страницу навсегда. Я понял, что когда mydomain.com/es уже в URL, в language.php первое условие если не сохраняется, и он должен быть сохранен.
Я не знаю, почему этот код всегда работал на разных серверах, а не на этом. Любая идея, пожалуйста? Заранее спасибо.
Что касается вас, URL-адрес преобразуется в другой URL-адрес, это может быть причиной вашей проблемы, поскольку $ _GET [‘lang’] не будет существовать для другого преобразованного URL-адреса.
Пожалуйста, проверьте файл .htaccess в вашем каталоге кодов.
Есть проблема с обработкой сеанса
Вы должны начать с session_start ();
также вы должны установить переменную «lang» при перенаправлении …
Другим вариантом будет включение в конец URL параметра? Lang = (метод GET)
echo '<meta http-equiv="refresh" content="0; url=/'.strtolower($idiomas[0]).'?lang='.$idiomas[0].'">';