Столкнулась с invalid token еще когда тестила сайта на localhost. Возникал он, если пытаться регистрироваться с главной страницы, нажав кнопку Войти. Если жать кнопку Регистрация - то все нормально, сайт дает Зарегистрироваться. А вот с входом для Зарегистрированных пользователей возникала проблема. Перерыла весь инте, все предложенные решения, коих несусветное множество, мне не подходили.
Пришлось думать самой.
Решение нашлось, когда я обратила внимание на ссылку, которая должна была вызвать форму регистрации. Выглядела она вот так:
http://localhost/witeangel/index.php?option=com_user&task=login. Генерилась она кодом, который у меня находился в index.php:
<?php if($this->params->get("show_login", 1) == 1) : ?>
<a href="<?php echo JRoute::_( 'index.php?option=com_user&task=login' ); ?>" id="login_btn" class="first"><?php echo ($userID == 0)? JText::_('LOGIN') : JText::_('LOGOUT'); ?></a>
<?php endif; ?>
Введя эту ссылку в поисковик, получила ответ Яндекса, из которого стало ясно, что правильно эта ссылка должна выглядеть так:
http://localhost/witeangel/index.php?option=com_user&view=loginИзменив в своем index.php только одно слово task на view, получила работающую регистрацию:
<?php if($this->params->get("show_login", 1) == 1) : ?>
<a href="<?php echo JRoute::_( 'index.php?option=com_user&view=login' ); ?>" id="login_btn" class="first"><?php echo ($userID == 0)? JText::_('LOGIN') : JText::_('LOGOUT'); ?></a>
<?php endif; ?>
И вуаля, проблема с Invalid Token решена для моего случая.
К сожалению, я так и не поняла, почему не работала ссылка с task... Ведь такой же по смыслу код со ссылкой на страницы Регистрации прекрасно работал и не вызывал ошибку Invalid Token:
http://localhost/witeangel/index.php?option=com_user&task=register.
Удивительная эта Joomla. Живет своей жизнью...
Надеюсь, кому-то мое решение проблемы поможет.