Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/joomla/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在Joomla中成功注册后将用户重定向到自定义URL_Php_Joomla_Joomla1.5_Joomla1.7 - Fatal编程技术网

Php 在Joomla中成功注册后将用户重定向到自定义URL

Php 在Joomla中成功注册后将用户重定向到自定义URL,php,joomla,joomla1.5,joomla1.7,Php,Joomla,Joomla1.5,Joomla1.7,我希望我的用户在成功注册Joomla后重定向到自定义URL。 我找不到任何选择! 我怎样才能做到这一点呢?如果您使用的是Joomla!”的内置菜单加载注册页面,或者从登录模块到达注册页面时,无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向) 最好的出发点是查看本手册“”部分中的现有解决方案。似乎列出了几个既支持旧的1.5样式站点又支持新的1.7/2.5样式站点的站点 (顺便说一下,如果您仍然使用1.7,您应该更新到最新的2.5,因为1.7行中存在严重的安全问题。)如果您使用的是Joo

我希望我的用户在成功注册Joomla后重定向到自定义URL。 我找不到任何选择!
我怎样才能做到这一点呢?

如果您使用的是Joomla!”的内置菜单加载注册页面,或者从登录模块到达注册页面时,无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向)

最好的出发点是查看本手册“”部分中的现有解决方案。似乎列出了几个既支持旧的1.5样式站点又支持新的1.7/2.5样式站点的站点


(顺便说一下,如果您仍然使用1.7,您应该更新到最新的2.5,因为1.7行中存在严重的安全问题。)

如果您使用的是Joomla的内置菜单加载注册页面,或者从登录模块到达注册页面时,无法重定向(这很奇怪,因为您可以在登录模块中登录后设置重定向)

最好的出发点是查看本手册“”部分中的现有解决方案。似乎列出了几个既支持旧的1.5样式站点又支持新的1.7/2.5样式站点的站点


(顺便说一句,如果您仍然使用1.7,您应该更新到最新的2.5,因为1.7行中存在严重的安全问题。)

在代码集中执行以下操作:

$app=JFactory::getapplication();
$app->redirect('index.php?option=com_users&view=login'));

在代码集中执行以下操作:

$app=JFactory::getapplication();
$app->redirect('index.php?option=com_users&view=login'));

你可以通过一个插件来实现这一点(至少在Joomla 3.x中是这样——不知道这会在多大程度上立即生效)。这里的键是onUserAfterSave事件,它告诉您该用户是新用户还是现有用户

我在一段时间前写了下面的代码,所以想不起重定向无法从onUserAfterSave事件处理程序中执行的确切原因,但我认为如果您尝试从核心Joomla用户管理代码中执行重定向,则重定向随后会被覆盖,因此,在会话中保存一个标志,并在以后的事件处理程序中检查它

class PlgUserSignupRedirect extends JPlugin
{
    public function onUserAfterSave($user, $isnew, $success, $msg)
    {
        $app = JFactory::getApplication();

        // If the user isn't new we don't act
        if (!$isnew) {
            return false;
        }

        $session = JFactory::getSession();
        $session->set('signupRedirect', 1);

        return true;
    }

    function onAfterRender() {
        $session = JFactory::getSession();
        if ($session->get('signupRedirect')) {
            JFactory::getApplication()->redirect('/my-post-signup-url');
            $session->clear('signupRedirect');
        }
    }
}

你可以通过一个插件来实现这一点(至少在Joomla 3.x中是这样——不知道这会在多大程度上立即生效)。这里的键是onUserAfterSave事件,它告诉您该用户是新用户还是现有用户

我在一段时间前写了下面的代码,所以想不起重定向无法从onUserAfterSave事件处理程序中执行的确切原因,但我认为如果您尝试从核心Joomla用户管理代码中执行重定向,则重定向随后会被覆盖,因此,在会话中保存一个标志,并在以后的事件处理程序中检查它

class PlgUserSignupRedirect extends JPlugin
{
    public function onUserAfterSave($user, $isnew, $success, $msg)
    {
        $app = JFactory::getApplication();

        // If the user isn't new we don't act
        if (!$isnew) {
            return false;
        }

        $session = JFactory::getSession();
        $session->set('signupRedirect', 1);

        return true;
    }

    function onAfterRender() {
        $session = JFactory::getSession();
        if ($session->get('signupRedirect')) {
            JFactory::getApplication()->redirect('/my-post-signup-url');
            $session->clear('signupRedirect');
        }
    }
}