使用PHP设置默认语言

编程入门 行业动态 更新时间:2024-10-25 02:21:00
本文介绍了使用PHP设置默认语言的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

我正在尝试使用Cookie设置一个多语言网站。一切都很好,但是我无法设置默认语言。 当我不带参数进入根网站时,在php中出现错误未定义索引。

I'm trying to set a multilungal website using cookie. Everything's fine but I'm having trouble setting a default language. I'm getting an error "undefined index" in php when i get to the root website without parameter.

<?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'); } ?>

在网站打开时我错过了设置默认语言的原因吗?

What did I miss to set default language when the website opens ?

谢谢

推荐答案

您需要检查是否设置了get参数语言: isset($ _ GET ['langue'])

You need to check if your get parameter langue is set: 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'); } ?>

此外,您还需要更改以下行: $ langue = $ _GET ['langue']; 改为:

Also in you need to change this line : $langue = $_GET['langue']; to this:

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

更新

您无法访问任何GET值那不存在。您需要检查它是否已设置。如果设置了参数, isset($ _ GET ['langue'])将返回true,因此只需在代码开头使用一次此检查即可。 我建议这样做:

You cannot access any GET value that does not exist. First you need to check if it was set. isset($_GET['langue']) returns true if the parameter was set, so just use this check once at the beginning of your code. I'd suggest this:

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

然后仅使用 $ langue 而不是 $ _ GET ['langue'] 。

更多推荐

使用PHP设置默认语言

本文发布于:2023-11-01 02:28:50,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1547994.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:语言   PHP

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!