Codeigniter'消息:第一次加载时未定义的索引:site_lang'问题

时间:2017-03-14 03:36:19

标签: php mysql codeigniter session multilingual

我开发了一个网站,它在我的localhost中工作正常。 但是我想在上线之前在局域网中进行测试。 我面临的一个问题是,在浏览器或任何其他机器上首次加载时会显示错误,直到我更改语言一次。当我改变语言时,问题再也不会发生了。 我是新人,这是我的第一个项目,所以任何人都可以在这方面帮助我。 提前致谢

遇到PHP错误

Severity: Notice

Message: Undefined index: site_lang

Filename: models/companies.php

Line Number: 15

回溯:

File: C:\xampp\htdocs\fp\application\models\companies.php
Line: 15
Function: _error_handler

File: C:\xampp\htdocs\fp\application\controllers\home.php
Line: 19
Function: get_companies

File: C:\xampp\htdocs\fp\index.php
Line: 315
Function: require_once

这是我的模特:

 //---- Table Companies ---
public function get_companies()
{   
    // Retrieve titles for all languages 
    $sql = "SELECT * FROM `ci_companies` WHERE `co_id` = 1"; 
    // Retrieve appropriate title according to the chosen language in the system 
    $sql = "SELECT `co_id`, `co_name`, SUBSTRING(`co_detail`,1,100) AS `co_detail`, `co_img`, `co_img2` FROM `ci_companies` WHERE `co_lang` = '".$_SESSION['site_lang']."'";
    $query = $this->db->query($sql);
    return $query->result();
}

这是我的控制器:

function switchLang($language = "") {

    $language = ($language != "") ? $language : "english";
    $this->session->set_userdata('site_lang', $language);

    redirect($_SERVER['HTTP_REFERER']);

}

1 个答案:

答案 0 :(得分:0)

由于错误使用single quotes而尝试使用此错误。

$language = $this->session->userdata('site_lang');//or $_SESSION['site_lang']

$sql = "SELECT `co_id`, `co_name`, SUBSTRING(`co_detail`,1,100) AS `co_detail`, `co_img`, `co_img2` FROM `ci_companies` WHERE `co_lang` = '{$language}'";