我在我的網站上添加了一個多語言系統,但遇到了這個錯誤。每次我嘗試設置我的$ _SESSION一定的價值,它說注意:全局會話中的未定義索引
Notice: Undefined index: lang in ...\pages\lang.php on line 3
我注意到什麼,當我試圖設置$ _SESSION在我的核心文件,它的工作原理,但如果我想要包含將會話設置爲核心文件的文件,則會拋出該錯誤。下面是core.php中的片段:
<?php
session_start();
//some code
//if I type $_SESSION['lang'] = 'smth'; here, it will work
if (!isset($_GET['page']) || $_GET['page'] == "" || !file_exists('pages/'.$_GET['page'].'.php')) {
include 'pages/home.php';
} else {
include 'pages/'.$_GET['page'].'.php';
}
?>
頁/ lang.php:
<?php
$lang = $_GET['lang'];
$_SESSION['lang'] == $lang;
var_dump($_SESSION); //prints an empty array (array { })
//header("Location: index.php");
?>
任何想法?謝謝。
看起來'$ _GET ['lang']'沒有被定義。 – Hammerite
直接在include指令中使用查詢參數是一個可怕的BAD思想 - 它允許遠程用戶通過修改瀏覽器中的url來包含他們想要的任何文件。至少你已經強制實施了一個'.php'擴展名,但是仍然可以讓它們在你的服務器上包含任何.php文件,無論你是否希望它們。 –
@Hammerite,它在URL中定義。 – Tom