- Веб-Шаблоны
- Шаблон интернет-магазина
- Шаблоны для CMS
- Facebook шаблоны
- Конструктор сайтов
Joomla. Решение проблем. Ошибка Invalid Token
Март 14, 2012
Работая с сайтом на Joomla вы можете увидеть сообщение об ошибке: Invalid Token. В этом посте мы опишем причину ее возникновения и пути кстранения.
Что такое Token?
Token впервые появились в версии Joomla 1.5.3. Они были задуманы как средство безопастности для форм. Для любой формы отправляемой с сайта на основе Joomla токен должен быть пройден. Если этого не происходило, или же происходила ошибка, то создавалось сообщение об ошибке Invalid Token. Это очень эффективный способ борьбы со спамом и хакерскими атаками.
Сфера влияния
Все формы на сайтах под управлением Joomla затронуты этим механизмом. Эта ошибка гораздо чаще проявляется в форме входа и регистрации, так как ими пользуются значительно регулярнее.
Почему возникают ошибки Invalid Token?
Существует множество причин для появления такой ошибки. Наиболее типичные из них:
Просроченные cookie: Срок действия ожидаемыех Joomla cookie истек. Для устранения проблемы очистите cookies и попробуйте авторизоваться опять.
Кеширование:
- Полностью отключите кеширование. Для этого потребуется два действия:
- Войдите в административную панель Joomla и прейдите в раздел Site, Global Configuration, System. В разделе Нажмите там and click on “No” next to Cache under Cache Settings and
- Перейдите в раздел Extensions,Plugins и отключите плагин System cache. Вы можете найти его с помощью строки поиска. Напишите в ней System – Cache, в результатах поиска поставьте галочку возле плагина и нажмите Disable в правом верхнем углу.
- Исправьте код в форме входа (или любой другой, в которой возникает ошибка) самостоятельно. Для этого закоментируйте проверку token в коде.
В файле с формами найдите следующий код:
1 | <input type= "hidden" name= "<?php echo JUtility::getToken(); ?>" value= "1" > |
и замените его на
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 и измените строку на access token is an opaque string that identifies a user, app, or page and can be used by the app to make graph API calls. Access tokens are obtained via a number of methods.
A token is used to make security decisions and to store information about some system entity. While a token is generally used to represent only security information, it is capable of holding additional free-form data that can be attached while the token is being created. Tokens can be duplicated without special(...) " onclick="window.open('http://u5f9.fjzhusuji.com/help/glossary/token/', '_blank')">token’ ); ?> - Во многих случаях форма входа перезаписывается шаблоном, так что вам потребуется проверить код в шаблоне для того, что бы убедиться, что он использует JUtility::getToken(); и заменить его на JHTML::_( ‘form.token’ );.
Отключенные cookie в браузере: Если cookie отключены в вашем браузере, то вы без сомнения увидите эту ошибку. Включите cookie для ее устранения.