Categories

Новые шаблоны

Joomla. Решение проблем. Ошибка Invalid Token

Chris Diaz Март 14, 2012
Rating: 3.0/5. From 4 votes.
Please wait...

Работая с сайтом на Joomla вы можете увидеть сообщение об ошибке: Invalid Token. В этом посте мы опишем причину ее возникновения и пути кстранения.

Что такое Token?

Token впервые появились в версии Joomla 1.5.3. Они были задуманы как средство безопастности для форм. Для любой формы отправляемой с сайта на основе Joomla токен должен быть пройден. Если этого не происходило, или же происходила ошибка, то создавалось сообщение об ошибке Invalid Token. Это очень эффективный способ борьбы со спамом и хакерскими атаками.

Сфера влияния

Все формы на сайтах под управлением Joomla затронуты этим механизмом. Эта ошибка гораздо чаще проявляется в форме входа и регистрации, так как ими пользуются значительно регулярнее.

Почему возникают ошибки Invalid Token?

Существует множество причин для появления такой ошибки. Наиболее типичные из них:

Просроченные cookie: Срок действия ожидаемыех Joomla cookie истек. Для устранения проблемы очистите cookies и попробуйте авторизоваться опять.

Кеширование:

  1. Полностью отключите кеширование. Для этого потребуется два действия:
    1. Войдите в административную панель Joomla и прейдите в раздел SiteGlobal ConfigurationSystem. В разделе Нажмите там and click on “No” next to Cache under Cache Settings and
    2. Перейдите в раздел Extensions,Plugins и отключите плагин System cache. Вы можете найти его с помощью строки поиска. Напишите в ней System – Cache, в результатах поиска поставьте галочку возле плагина и нажмите Disable в правом верхнем углу.
  2. Исправьте код в форме входа (или любой другой, в которой возникает ошибка) самостоятельно. Для этого закоментируйте проверку token в коде.

В файле с формами найдите следующий код:

  <input type="hidden" name="<?php echo JUtility::getToken(); ?>" value="1" />  

и замените его на

   <?php echo JHTML::_( 'form.token' ); ?>  

В режиме совместимости (legacy mode или Joomla 1.0 mode): Использование Joomla в режиме Legacy mode может вызывать эту проблему. Просто отключите соответствующий плагин.

Использование стандартного кода для проверки token: некоторые версии Joomla/шаблонов Joomla используют специальный код для проверки token. Этот код требует изменений. Внесите следующие изменения:

  • Откройте файл /modules/mod_login/tmpl/default.php и измените строку <?php JUtility::getToken(); ?> на  <?php echo JHTML::_( ‘form.token’ ); ?>
  • Во многих случаях форма входа перезаписывается шаблоном, так что вам потребуется проверить код в шаблоне для того, что бы убедиться, что он использует JUtility::getToken(); и заменить его на JHTML::_( ‘form.token’ );.

Отключенные cookie в браузере: Если cookie отключены в вашем браузере, то вы без сомнения увидите эту ошибку. Включите cookie для ее устранения.

Шаблон Joomla
Эта запись была размещена в Joomla! Туториалы и помечена как joomla, token error. Добавьте в закладки постоянную ссылку.

Submit a ticket

Если вы не смогли найти подходящее решение проблемы, пожалуйста воспользуйтесь следующей ссылкой, чтобы отправить запрос команде технической поддержки.
Отправить запросВы получите ответ в течение 24 часов