Intereting Posts
MySQL-Невозможно перейти к строке 0 по индексу результата MySQL debug_backtrace () от зарегистрированной функции выключения в PHP В PHP после назначения ресурса указателя файла переменной с помощью функции fopen (), как я могу получить имя файла из переменной? 2 штуки аналогичного PHP, один работает один нет? выполнять клики и выйти из веб-сайта, используя cURL и php phpunit не находит никаких тестов с тегом Director xml, но делает с (некоторыми) файлами теги Неожиданная ошибка при отправке значения json с использованием PHP PHP – использование выпадающего списка для изменения темы сайта Codeigniter ГДЕ И ИЛИ вместе Zend_Gdata_Photos перечисляет все альбомы и фотографии htaccess файлы, php, включает в себя каталоги и окна XAMPP конфигурации кошмар Является ли $ view в MVP-программе MVC правильным использованием глобальных переменных? Codeigniter: сброс значений формы Как проверить транзакции Android в приложении для биллинга на моем сервере? XML-анализ с помощью php

Установите lang по умолчанию, используя php

Я пытаюсь установить многоязычный веб-сайт с помощью cookie. Все в порядке, но у меня проблемы с настройкой языка по умолчанию. Я получаю сообщение об ошибке «undefined index» в php, когда я попадаю на корневой сайт без параметров.

<?php if (isset ($_COOKIE['CHOIXlang']) && $_GET['langue'] != 'fr' && $_GET['langue'] != 'en' && $_GET['langue'] != 'es') { $langue = $_COOKIE['CHOIXlang']; } else if ($_GET['langue'] == 'en' || $_GET['langue'] == 'fr' || $_GET['langue'] == 'es') { $langue = $_GET['langue']; set_cookie($langue); } else { $langue = substr($HTTP_SERVER_VARS['HTTP_ACCEPT_LANGUAGE'],0,2); set_cookie($langue); } ?> <?php function set_cookie($langue) { $expire = 365*24*3600; if (setcookie("CHOIXlang", $langue, time() + $expire) != TRUE) { } else { setcookie("CHOIXlang", $langue, time() + $expire); } } ?> 

И в теле:

 <?php if ($_GET['langue'] == "fr" || $langue == "fr") { include('lang/fr-lang.php'); } elseif ($_GET['langue'] == "en" || $langue == "en") { include('lang/en-lang.php'); } elseif ($_GET['langue'] == "es" || $langue == "es") { include('lang/es-lang.php'); } ?> в <?php if ($_GET['langue'] == "fr" || $langue == "fr") { include('lang/fr-lang.php'); } elseif ($_GET['langue'] == "en" || $langue == "en") { include('lang/en-lang.php'); } elseif ($_GET['langue'] == "es" || $langue == "es") { include('lang/es-lang.php'); } ?> в <?php if ($_GET['langue'] == "fr" || $langue == "fr") { include('lang/fr-lang.php'); } elseif ($_GET['langue'] == "en" || $langue == "en") { include('lang/en-lang.php'); } elseif ($_GET['langue'] == "es" || $langue == "es") { include('lang/es-lang.php'); } ?> в <?php if ($_GET['langue'] == "fr" || $langue == "fr") { include('lang/fr-lang.php'); } elseif ($_GET['langue'] == "en" || $langue == "en") { include('lang/en-lang.php'); } elseif ($_GET['langue'] == "es" || $langue == "es") { include('lang/es-lang.php'); } ?> 

Что я пропустил, чтобы установить язык по умолчанию при открытии веб-сайта?

спасибо

    Вам нужно проверить, установлен ли ваш параметр langue: isset($_GET['langue'])

     <?php if (!isset($_GET['langue']) { include('lang/default-lang.php'); } elseif ($langue == "fr") { include('lang/fr-lang.php'); } elseif ($langue == "en") { include('lang/en-lang.php'); } elseif ($langue == "es") { include('lang/es-lang.php'); } ?> в <?php if (!isset($_GET['langue']) { include('lang/default-lang.php'); } elseif ($langue == "fr") { include('lang/fr-lang.php'); } elseif ($langue == "en") { include('lang/en-lang.php'); } elseif ($langue == "es") { include('lang/es-lang.php'); } ?> в <?php if (!isset($_GET['langue']) { include('lang/default-lang.php'); } elseif ($langue == "fr") { include('lang/fr-lang.php'); } elseif ($langue == "en") { include('lang/en-lang.php'); } elseif ($langue == "es") { include('lang/es-lang.php'); } ?> в <?php if (!isset($_GET['langue']) { include('lang/default-lang.php'); } elseif ($langue == "fr") { include('lang/fr-lang.php'); } elseif ($langue == "en") { include('lang/en-lang.php'); } elseif ($langue == "es") { include('lang/es-lang.php'); } ?> в <?php if (!isset($_GET['langue']) { include('lang/default-lang.php'); } elseif ($langue == "fr") { include('lang/fr-lang.php'); } elseif ($langue == "en") { include('lang/en-lang.php'); } elseif ($langue == "es") { include('lang/es-lang.php'); } ?> 

    Также вам нужно изменить эту строку: $langue = $_GET['langue']; к этому:

     if (isset($_GET['langue'])) $langue = $_GET['langue']; 

    ОБНОВИТЬ

    Вы не можете получить доступ к значению GET, которое не существует. Сначала вам нужно проверить, установлено ли это. isset($_GET['langue']) возвращает true, если параметр был установлен, поэтому просто используйте эту проверку один раз в начале вашего кода. Я бы предложил следующее:

     $langue = ""; if (!isset($_GET['langue']){ $langue = $_GET['langue']; } 

    затем используйте только $langue вместо $_GET['langue'] .

    Установить значение по умолчанию Lan может быть следующим образом:

     if (@$_GET['lang'] == 'en') include('en-lang.php'); else include('fr-lang.php'); 

    Для этого используйте $ _GET:

    Это немного длинный, но может быть немного лучше подходит:

     <?php session_start(); if (isset($_SESSION['lang'])) $lang = $_SESSION['lang']; if (isset($_GET['lang'])) { $lang = preg_replace('/[^a-zA-Z]/', '', $_GET['lang']); $_SESSION['lang'] = $lang; } if (!isset($lang)) $lang = 'fr'; $langfile = $lang . '-lang.php'; if (file_exists($langfile)) include ($langfile); else include('fr-lang.php'); ?>