Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.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
Authentication Magento 1-如何在登录后重定向上一页_Authentication_Magento_Magento 1.9 - Fatal编程技术网

Authentication Magento 1-如何在登录后重定向上一页

Authentication Magento 1-如何在登录后重定向上一页,authentication,magento,magento-1.9,Authentication,Magento,Magento 1.9,我使用的是Magento 1.9。*我想在用户成功登录后重定向上一页。我找到了一个解决方案 为此,请执行以下步骤 打开header.phtml将此代码添加到文件顶部 if(!Mage::helper('customer')->isLoggedIn()) { $loginback=$this->helper('core/url')->getCurrentUrl(); $check=strstr($loginback, 'customer/account/login'); i

我使用的是Magento 1.9。*我想在用户成功登录后重定向上一页。

我找到了一个解决方案

为此,请执行以下步骤 打开
header.phtml
将此代码添加到文件顶部

if(!Mage::helper('customer')->isLoggedIn()) {
 $loginback=$this->helper('core/url')->getCurrentUrl();
 $check=strstr($loginback, 'customer/account/login');
 if(!strlen($check)){
 Mage::getSingleton('core/session')->setLoginBackUrl($loginback);
 }
}
/app/code/core/Mage/Customer/controllers
覆盖到本地或自定义模块并添加此功能

protected function _loginPostRedirect()
{
    $session = $this->_getSession();

    $backUrlcustom=Mage::getSingleton('core/session')
    ->getLoginBackUrl();

    if(isset($backUrlcustom) && $backUrlcustom !=""){
          $session->setBeforeAuthUrl($backUrlcustom);
    }
    $this->_redirectUrl($session->getBeforeAuthUrl(true));
}

这对我来说很有用。

为此,配置设置需要是
系统->配置->客户->客户配置->登录选项集:登录后将客户重定向到帐户仪表板=否

但还有一些工作要做。请检查您提到的核心控制器
/app/code/core/Mage/Customer/controllers/AccountController.php
class
\u loginPostRedirect
方法,检查
if($referer){
部分。这就是您需要去的地方

因此,在任何类中都不需要更改任何内容。 只需在登录表单phtml的
标记中添加以下代码

<?php if (!Mage::getStoreConfigFlag(
        Mage_Customer_Helper_Data::XML_PATH_CUSTOMER_STARTUP_REDIRECT_TO_DASHBOARD
    )) { ?>
    <input name="referer" type="hidden" value="<?php echo Mage::helper('core')->urlEncode(Mage::getBaseUrl()); ?>" />
<?php } ?>

Dhrumin和Sandipan的解决方案可以工作,但我不想覆盖核心类,我需要一个登录和重定向的解决方案。对于magento 1.9.x,似乎我们唯一要做的就是设置使用者会话的变量“BeforeAuthUrl”。登录和注册方法都重定向到此url(如果存在)。我将此代码段放在我的头中。phtml:

if (!Mage::helper('customer')->isLoggedIn()) {
$loginback = $this->helper('core/url')->getCurrentUrl();
$checkLogin = strstr($loginback, 'customer/account/login');
$checkRegister = strstr($loginback, 'customer/account/create');
if (!strlen($checkLogin) && !strlen($checkRegister) ) {
    Mage::getSingleton('customer/session')->setBeforeAuthUrl($loginback);
 }
}

你尝试过什么?你遇到过任何错误吗?你有什么要分享的吗?基于“我想要这个”我们帮不了你键入statementHi@m_callens,我尝试在主页上重定向,但我需要重定向最后一页,例如用户在购物车页面上打开登录页面,然后成功登录,然后它重定向购物车页面而不是我的帐户页面。知道我能做什么吗?我能用会话管理吗???请让我知道你是否理解并有任何想法。此解决方案从2018年8月起,n是最快捷、最简单的方式
<?php if (!Mage::getStoreConfigFlag(
        Mage_Customer_Helper_Data::XML_PATH_CUSTOMER_STARTUP_REDIRECT_TO_DASHBOARD
    )) { ?>
    <input name="referer" type="hidden" value="<?php echo Mage::helper('core')->urlEncode(Mage::helper('core/http')->getHttpReferer()); ?>" />
<?php } ?>
if (!Mage::helper('customer')->isLoggedIn()) {
$loginback = $this->helper('core/url')->getCurrentUrl();
$checkLogin = strstr($loginback, 'customer/account/login');
$checkRegister = strstr($loginback, 'customer/account/create');
if (!strlen($checkLogin) && !strlen($checkRegister) ) {
    Mage::getSingleton('customer/session')->setBeforeAuthUrl($loginback);
 }
}