JOMSOCIAL无效令牌错误


JOMSOCIAL INVALID TOKEN ERROR

每次登录时都会出现错误"INVALID TOKEN",它显示在joomla2.5/jomsocial2.4网站上,但在2、3刷新后,它会将配置文件页面显示为已登录…为什么会这样…是Joomla的问题吗。。。我已经卸载了一个插件alphauserpoints。。。这是个问题吗。。或者我应该修改代码default.php

<?php
// no direct access
defined('_JEXEC') or die;
JHtml::_('behavior.keepalive');
?>
<?php if ($type == 'logout') : ?>
<form action="<?php echo JRoute::_('index.php', true, $params->get('usesecure')); ?>"     method="post" id="login-form">
<?php if ($params->get('greeting')) : ?>
<div class="login-greeting">
<?php if($params->get('name') == 0) : {
    echo JText::sprintf('MOD_LOGIN_HINAME', $user->get('name'));
} else : {
    echo JText::sprintf('MOD_LOGIN_HINAME', $user->get('username'));
} endif; ?>
</div>
<?php endif; ?>
<div class="logout-button">
    <input type="submit" name="Submit" class="button" value="<?php echo         JText::_('JLOGOUT'); ?>" />
    <input type="hidden" name="option" value="com_users" />
    <input type="hidden" name="task" value="user.logout" />
    <input type="hidden" name="return" value="<?php echo $return; ?>" />
    <?php echo JHtml::_('form.token'); ?>
</div>
</form>
<?php else : ?>
<form action="<?php echo JRoute::_('index.php', true, $params->get('usesecure')); ?>"     method="post" id="login-form" >
<?php if ($params->get('pretext')): ?>
    <div class="pretext">
    <p><?php echo $params->get('pretext'); ?></p>
    </div>
<?php endif; ?>
<fieldset class="userdata">
<p id="form-login-username">
    <label for="modlgn-username"><?php echo                                        JText::_('MOD_LOGIN_VALUE_USERNAME') ?></label>
    <input id="modlgn-username" type="text" name="username" class="inputbox"  size="18" />
</p>
<p id="form-login-password">
    <label for="modlgn-passwd"><?php echo JText::_('JGLOBAL_PASSWORD') ?></label>
    <input id="modlgn-passwd" type="password" name="password" class="inputbox" size="18"  />
</p>
<?php if (JPluginHelper::isEnabled('system', 'remember')) : ?>
<p id="form-login-remember">
    <label for="modlgn-remember"><?php echo JText::_('MOD_LOGIN_REMEMBER_ME') ?></label>
    <input id="modlgn-remember" type="checkbox" name="remember" class="inputbox" value="yes"/>
</p>
<?php endif; ?>
<input type="submit" name="Submit" class="button" value="<?php echo JText::_('JLOGIN') ?>" />
<input type="hidden" name="option" value="com_users" />
<input type="hidden" name="task" value="user.login" />
<input type="hidden" name="return" value="<?php echo $return; ?>" />
<?php echo JHtml::_('form.token'); ?>
</fieldset>
<ul>
    <li>
        <a href="<?php echo JRoute::_('index.php?option=com_users&view=reset'); ?>">
        <?php echo JText::_('MOD_LOGIN_FORGOT_YOUR_PASSWORD'); ?></a>
    </li>
    <li>
        <a href="<?php echo JRoute::_('index.php?option=com_users&view=remind'); ?>">
        <?php echo JText::_('MOD_LOGIN_FORGOT_YOUR_USERNAME'); ?></a>
    </li>
    <?php
    $usersConfig = JComponentHelper::getParams('com_users');
    if ($usersConfig->get('allowUserRegistration')) : ?>
    <li>
        <a href="<?php echo JRoute::_('index.php?option=com_users&view=registration'); ?>">
            <?php echo JText::_('MOD_LOGIN_REGISTER'); ?></a>
    </li>
    <?php endif; ?>
</ul>
<?php if ($params->get('posttext')): ?>
    <div class="posttext">
    <p><?php echo $params->get('posttext'); ?></p>
    </div>
<?php endif; ?>

或者卸载是否影响了joomla 的配置文件

尝试此链接:http://developersbench.in/invalid-token-during-registration-jomsocial/#.T19wtHm45F0。你可能会从中得到一些帮助。

我所掌握的信息是,每次你打开页面并提交表单时,它都会首先验证令牌,如果令牌过期,主要是因为在页面上闲置了一段时间,那么你就会收到"无效令牌"错误。

简单地说,如果您不担心令牌,请转到文件root/librarys/joomla/environment/request.php并检查以下函数函数checkToken($method='post'),注释这之间的所有行,并简单地返回true,无论是什么情况。我还没有试过,但我想这会奏效的。