2011-12-19 5 views
0

Я думал, что это будет просто, но я думаю, что есть какая-то проблема ... Я разрабатываю пользовательскую часть кода для установки Joomla, и мне нужно отменить некоторые переменные сеанса до выполнение моего кода. Так что, естественно, у меня естьJoomla - Unset multiple session variables not working

$session->clear('var1'); 
$session->clear('var2'); 
$session->clear('var3'); 
$session->clear('var4'); 

но страница выглядит совершенно пустой и ничего не происходит. Какие-либо предложения?

ответ

1

Предполагая, что вы получили переменную $ сессионный так:

$session = JFactory::getSession(); 

Если вы получаете пустую страницу, вы, вероятно, некоторые ошибки в коде. У вас есть доступ к журналу ошибок? Если нет, вы можете попытаться заставить отображать ошибки из своего кода, если это не производственная среда (хотя это не лучший способ это сделать) или включить режим отладки от администратора joomla.

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

Кроме того, если скрипт не врезаться, вы можете проверить, что значение возвращается при каждом вызове $ session-> ясно («ххх») (Она должна возвращать значение, которое вы только что очищенную.

Последнее, что мне кажется, что варны, которые вы сохранили в сеансе, находятся в другом «контексте». Когда вы получаете/устанавливаете данные для сеанса, вы можете передать «пространство имен» в качестве дополнительного параметра, поэтому эти vars хранятся в этом «namespace» (на самом деле, он хранится внутри другого индекса внутри сеанса. Поэтому, если это возможно, вы должны проверить, хранятся ли эти переменные в сеансе с использованием другого «пространства имен»:

$session->set('var1', $value, 'another_namespace'); 

Если да, то вы должны очистить его, как это:

$session->clear('var1', 'another_namespace'); 

P.S .: Я сказал «пространство имен», потому что это имя параметра, который Joomla использует в этих методах сессии, но не запутаться с PHP пространств имен.

Надеюсь, это помогло!