Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/252.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 Magento 1-将referer参数添加到getLoginPostUrl()中_Php_Magento_Magento 1 - Fatal编程技术网

Php Magento 1-将referer参数添加到getLoginPostUrl()中

Php Magento 1-将referer参数添加到getLoginPostUrl()中,php,magento,magento-1,Php,Magento,Magento 1,我正在尝试创建一个表单,尽可能无缝地将登录集成到流程中 目前,我正在使用Mage::helper('customer')->getLoginPostUrl()作为登录表单,如果有更好的方法可以使用,我洗耳恭听,它可以工作,但最终会出现在用户仪表板上 我查了一下函数,并找到了它 if($this->\u getRequest()->getParam(self::REFERER\u QUERY\u PARAM\u NAME)){ 但我不确定如何以函数将读取它的方式给它param 我注意到,如果我使用

我正在尝试创建一个表单,尽可能无缝地将登录集成到流程中

目前,我正在使用
Mage::helper('customer')->getLoginPostUrl()
作为登录表单,如果有更好的方法可以使用,我洗耳恭听,它可以工作,但最终会出现在用户仪表板上

我查了一下函数,并找到了它
if($this->\u getRequest()->getParam(self::REFERER\u QUERY\u PARAM\u NAME)){
但我不确定如何以函数将读取它的方式给它param

我注意到,如果我使用
Mage::helper('customer')->getLoginUrl()
,它会添加referer本身,因此我跟踪了它,发现它是如何将编码的referer添加到url的,并以此结束

<?php echo Mage::helper('customer')->getLoginPostUrl(); ?>referer/<?php echo Mage::helper('core')->urlEncode($this->getUrl("frontname/controller/function")); ?>
这是可行的,但我想一定有更好的办法。有人知道吗


如果没有…这对我很有效,以防其他人也在寻找相同的东西。

我也有同样的问题。由于配置中的设置,您的客户被重定向到仪表板。转到

系统>配置>客户>客户配置>登录选项

然后将“登录后将客户重定向到帐户仪表板”改为“否”。Magento将开始侦听该Referer参数,并将您的客户返回到他们单击“登录”之前所在的页面


我知道这是一个古老的主题,可能很晚才有帮助,但这个问题是问题的关键,也许它会帮助其他人。

我是这样做的,希望这对其他人也有帮助:

Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode($this->getUrl("frontname/controller/function"))))
我是这样做的

第1步。

系统>配置>客户>客户配置>登录选项

然后将“登录后将客户重定向到帐户仪表板”转到“否””。Magento将开始侦听该referrer参数,并将您的客户返回到他们单击“登录”之前所在的页面

第2步。

在header.phtml中

if(!Mage::helper('customer')->isLoggedIn() and $this->getRequest()->getControllerName() != 'account'){
     $referer = Mage::helper('core')->urlEncode(Mage::getUrl('', array('_current' => true,'_use_rewrite' => true)));
     Mage::getSingleton('core/session')->setCustomRefererUrl($referer);
}
第3步。

以登入形式

 <?php $referer = $this->getRequest()->getParam(Mage_Customer_Helper_Data::REFERER_QUERY_PARAM_NAME); 
    echo Mage::helper('core')->urlDecode($referer);
    ?>
    <form action="<?php echo Mage::getUrl('customer/account/loginpost', array('referer' => $referer)); ?>" method="post" id="login-form">

我会将vladislav mosalsky的答案与来自amardeep aryan的
\u当前的
片段结合起来,这样您只需要一份代码就可以使用

Mage::app()->getFrontController()->getResponse()->setRedirect(
    Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode(
        Mage::getUrl('', array('_current' => true,'_use_rewrite' => true))
    )))
);

我必须在表单中放入什么内部操作属性?它放在哪里?您的代码放在header.phtml中?^我不理解您的问题。您发布的代码必须放在哪里?它放在表单操作中还是需要放在header.phtml中?整个代码段都是为了在PHP点击该代码时重定向,所以在save中的控制器中例如,如果您只是在寻找生成URL的方法,那么只需使用内部两个Mage::getURL调用。
Mage::app()->getFrontController()->getResponse()->setRedirect(
    Mage::getUrl('customer/account/login', array('referer' => Mage::helper('core')->urlEncode(
        Mage::getUrl('', array('_current' => true,'_use_rewrite' => true))
    )))
);