2014-10-21 4 views
0

Странная ситуация. У меня есть проекты класса, который имеет следующий конструкторНеопределенная переменная: _SESSION в классе

public function __construct($db){ 
    $this->db = $db; 
    $this->lang = strtolower($_SESSION['la']); 
} 

Я использую AJAX, чтобы вызвать функцию простой прибудет(), но ошибка возвращаемая

<b>Notice</b>: Undefined variable: _SESSION in <b>D:\Sites\proman\class\Projects.php</b> on line <b>10</b><br /> 

В моей index.php я имею session_start(), так что это не проблема. Я могу даже print_r ($ _ SESSION) в методе построения, и я вижу переменную сеанса 'la'. ##

Я попытался добавить session_start() также в начало моего класса Projects.php, но затем я получу предупреждая, что сессия уже началась.

Это моя сессия инициализации в верхней части index.php ## также установить это язык по умолчанию (ла) переменной, если никто не будет выбран пользователем

<?php 
    session_start(); 
    if(!isset($_SESSION['la'])) $_SESSION['la'] = "EN"; 
?> 

Это выход print_r() в конструкторе проектов ## Array ([la] => FR) Любая идея может быть неправильной здесь? Спасибо!

+1

Можем ли мы увидеть ваш файл 'index.php'? Убедитесь, что 'session_start()' находится в верхней части этого файла. –

+1

И покажите нам вывод 'print_r ($ _ SESSION)' при вводе внутри конструктора. –

+0

Спасибо за ваш ответ! Добавлено на вопрос – Notflip

ответ

2

Я думаю

<b>Notice</b>: Undefined variable: _SESSION in <b>D:\Sites\proman\class\Projects.php</b> on line <b>10</b><br /> 

является результат вашего AJAX вызова. Правильно?

Проблема в том, что вам недостает session_start() в файле, запрошенном с помощью ajax. Я думаю, что файл Projects.php в вашем классе. Поскольку вы используете ajax, а не include/require, session_start() на странице index.php недостаточно. Отдельно session_start() необходим для страницы ajax (здесь Projects.php).

Добавить новый session_start() на страницу ajax (Projects.php) и сообщить мне, исправлена ​​ли проблема.

+1

Привет! Я добавил файл в файл, который запрашивает файл Projects.php, и теперь он работает. Вы были правы, AJAX не знает о session_ в index.php. Благодаря! – Notflip

+0

Вы всегда приветствуете друга. – AeJey