magento登陆
magento判断用户登录
Magento 登陆之后返回登录之前的页面
magento 在登陆后一般会自动跳转到 My Account 页面
但是经常会有需求 就是登陆自动跳转到 之前的页面里面
工具/原料
- php+mysql+apache
方法/步骤
只要加代码
Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::getUrl('*/*/*', array('_secure'=>true)));或
Mage::getSingleton('customer/session')->setBeforeAuthUrl(Mage::helper("core/url")->getCurrentUrl());
在之前的页面 就可以实现这个功能
<!-- <?php //判断用户是否是登录用户,如果不是登录用户就跳转到登录页面,登录成就进入网站的页面?>-->
<?php
Mage::getSingleton('customer/session')->setBeforeAuthUrl($this->getRequest()->getRequestUri()); //save requested URL for later redirection
if(!Mage::getSingleton('customer/session')->isLoggedIn()) { // if not logged in
header("Status: 301");
// header('Location: '.Mage::helper('core/url')->getHomeUrl(customer/account/login)) ; // send to the login page
header('Location:'.Mage::getBaseUrl('web').'index.php/customer/account/login/' ) ;
exit;
}
?>
magento在购物车中判断用户登录,如果没有登录就跳转到登录页面,红色字体代表新增代码
首先进入app/code/local/idev/onestepchekcout/controllers/indexcontroller.php文件
加上一个
if(Mage::getSingleton( 'customer/session' )->isLoggedIn())
{判断和
else
{ $redirect=Mage::getBaseUrl().'customer/account/create/';
Mage::app()->getFrontController()->getResponse()->setRedirect($redirect)->sendResponse();//这个是需要跳转到的登录页面或者是注册页面
}
即可
放的位置代码如下:
public function indexAction() {
if(Mage::getSingleton( 'customer/session' )->isLoggedIn())
{
$quote = $this->getOnepage()->getQuote();
if (!$quote->hasItems() || $quote->getHasError()) {
$this->_redirect('checkout/cart');
return;
}
if (!$quote->validateMinimumAmount()) {
$error = Mage::getStoreConfig('sales/minimum_order/error_message');
Mage::getSingleton('checkout/session')->addError($error);
$this->_redirect('checkout/cart');
return;
}
$this->loadLayout();
if(Mage::helper('onestepcheckout')->isEnterprise() && Mage::helper('customer')->isLoggedIn()){
$customerBalanceBlock = $this->getLayout()->createBlock('enterprise_customerbalance/checkout_onepage_payment_additional', 'customerbalance', array('template'=>'onestepcheckout/customerbalance/payment/additional.phtml'));
$customerBalanceBlockScripts = $this->getLayout()->createBlock('enterprise_customerbalance/checkout_onepage_payment_additional', 'customerbalance_scripts', array('template'=>'onestepcheckout/customerbalance/payment/scripts.phtml'));
$rewardPointsBlock = $this->getLayout()->createBlock('enterprise_reward/checkout_payment_additional', 'reward.points', array('template'=>'onestepcheckout/reward/payment/additional.phtml', 'before' => '-'));
$rewardPointsBlockScripts = $this->getLayout()->createBlock('enterprise_reward/checkout_payment_additional', 'reward.scripts', array('template'=>'onestepcheckout/reward/payment/scripts.phtml', 'after' => '-'));
$this->getLayout()->getBlock('choose-payment-method')
->append($customerBalanceBlock)
->append($customerBalanceBlockScripts)
->append($rewardPointsBlock)
->append($rewardPointsBlockScripts)
;
}
$this->renderLayout();
}
else
{ $redirect=Mage::getBaseUrl().'customer/account/create/';
Mage::app()->getFrontController()->getResponse()->setRedirect($redirect)->sendResponse();
}
}
判断用户是否从结算页面当中进入的,如果是从结算页面当中进入登录的或者是注册的那么需要进入下一步操作
首先在form表单中加个<input name="xxx" value="xxxx" type="hidden"/>代码如下:
<form id="login-form" action="http://www.wellsupplier.com/index.php/customer/account/loginPost/" method="post">
<input type="hidden" value="check-out" name="cart-name"/>
或者跳转到进入登录注册页面前一页
<?php echo $currlink=substr($_SERVER['HTTP_REFERER'],27); ?>
<input type="hidden" value="<?php echo $currlink;?>" name="cart-name"/>
然后去loginPostAction方法中进行判断,代码路径D:\Program Files\wamp\www\focalpriced\app\code\core\Mage\Customer\controllers\accountcontrollers.php文件
然后找到public function loginPostAction()方法 ;
public function loginPostAction()
{
$chac=$this->getRequest()->getParam("cart-name"); //获取表单的传过来的值
if ($this->_getSession()->isLoggedIn()) {
$this->_redirect('*/*/');
return;
}
$session = $this->_getSession();
if ($this->getRequest()->isPost()) {
$login = $this->getRequest()->getPost('login');
if (!empty($login['username']) && !empty($login['password'])) {
try {
$session->login($login['username'], $login['password']);
if ($session->getCustomer()->getIsJustConfirmed()) {
$this->_welcomeCustomer($session->getCustomer(), true);
}
} catch (Mage_Core_Exception $e) {
switch ($e->getCode()) {
case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
$value = Mage::helper('customer')->getEmailConfirmationUrl($login['username']);
$message = Mage::helper('customer')->__('This account is not confirmed. <a href="%s">Click here</a> to resend confirmation email.', $value);
break;
case Mage_Customer_Model_Customer::EXCEPTION_INVALID_EMAIL_OR_PASSWORD:
$message = $e->getMessage();
break;
default:
$message = $e->getMessage();
}
$session->addError($message);
$session->setUsername($login['username']);
} catch (Exception $e) {
// Mage::logException($e); // PA DSS violation: this exception log can disclose customer password
}
} else {
$session->addError($this->__('Login and password are required.'));
}
}
if(isset($chac)){ //判断表单的值进行跳转
$redirect=Mage::getBaseUrl().$chac;
Mage::app()->getFrontController()->getResponse()->setRedirect($redirect)->sendResponse();
} else {
$this->_loginPostRedirect();
}
}
magento登陆的更多相关文章
- 解决magento后台无法登陆/登陆没有反应的方法
安装过magento的几个版本,安装好后在登陆后台的时候都遇到了点问题,用户名和密码都输入正确,就是登陆不了后台,经过研究发现,登陆不了后台的主要是因为magento自身缓存设置的问题,最模板解决方法 ...
- magento
打开 magento/app/code/core/Mage/Core/Model/Session/Abstract/varien.php//if (isset($cookieParams['doma ...
- magento启用SSL改http成https
Magento是电子商务网站,对于网站的用户信息安全来说,让Magento使用SSL连接是一个很好的解决方案.如果在页面的边栏或者底部放上些表明本站使用安全连接的图片,显得更专业,让客户有安全感,对于 ...
- Magento获取当前页面URL地址
Magento获取当前页面URL地址 http://www.sunhaibing.com/?p=1260 在Magento中,可以通过core/url助手类中的getCurrentUrl()方法获取当 ...
- Magento添加一个下拉登陆菜单Create Magento Dropdown Login in a few minutes
Dropdown login forms are not a feature many online stores use, but in some cases they could be quite ...
- 用facebook账号登陆到你的Magento网店
Inchoo提供magento和facebook连接的扩展,可以到http://inchoo.net/ecommerce/magento/facebook-connect-magento-extens ...
- magento后台登陆被锁定 索引报错的解决:General error: 1205 Lock wait timeout
1. magento在索引的时候用shell,有时候会报错: General error: 1205 Lock wait timeout exceeded 这个时候,是因为行锁的原因,在表中您直接用s ...
- Magento在IE下登陆不了后台,在Firefox下正常
目前的解决办法如下: 方法一,用FF登陆后台,在 System—Configuration-Web-Session Cookie management....timeout 改为:86400 方法二: ...
- magento后台无法登陆的问题
解决方法: 打开 magento/app/code/core/Mage/Core/Model/Session/Abstract/varien.php 将// set session cookie pa ...
随机推荐
- 浅析ARM公司在物联网领域的战略布局(转)
随着ARM芯片的出货量越来越多,自信满满的ARM公司统一软硬件平台的战略和雄心壮志越来越凸显.最初ARM公司仅是出售自己的知识产权(IP核)给各大芯片公司,由于最初ARM公司处于劣势,所以给芯片厂商很 ...
- Thinkphp 获取所有子分类或父分类ID
/** * @Author: HTL * @Email: Huangyuan413026@163.com * @DateTime: 2016-04-22 11:25:02 * @Description ...
- 逻辑回归应用之Kaggle泰坦尼克之灾
机器学习系列(3)_逻辑回归应用之Kaggle泰坦尼克之灾 标签: 机器学习应用 2015-11-12 13:52 3688人阅读 评论(15) 收藏 举报 本文章已收录于: 机器学习知识库 分类 ...
- Node.js中 express-session的奇怪问题
var session = require('express-session'); app.use(cookieParser()); 行 登录以后访问的时候有时候会报这样的错误: The la ...
- Tone Mapping算法系列一:基于Fast Bilateral Filtering 算法的 High-Dynamic Range(HDR) 图像显示技术。
一.引言 本人初次接触HDR方面的知识,有描述不正确的地方烦请见谅. 为方便文章描述,引用部分百度中的文章对HDR图像进行简单的描述. 高动态范围图像(High-Dynamic Range,简称HDR ...
- JAVA基础编程50题(4-6题)具体解释
一.描写叙述 1.将一个正整数分解质因数.比如:输入90,打印出90=2*3*3*5. 程序分析:对n进行分解质因数,应先找到一个最小的质数k,然后按下述步骤完毕: (1)假设这个质数恰等于n,则说明 ...
- 渗透测试工具SPARTA介绍
0x01 sparta安装 kali系统默认安装了sparta 需要基础环境: git clone https://github.com/secforce/sparta.git apt-get ins ...
- iOS 一个开发者账号 多台Mac 共用
iOS 开发者账号有时候需要多台Mac 一起用.这个时候就得要证书了, 首先如果一个账号能在第一台电脑上能正常使用了.那么这时就可以把相应的证书导出来,再台PC的时候也可以用. 先导私有的证书.这个是 ...
- Android开发 - Fragment与Activity生命周期比较
1. Fragment的生命周期 见下图 2. 与Activity生命周期的对比 见下图 3. 代码场景演示实例 切换到该Fragment: AppListFragment(7649): onAtta ...
- ZH奶酪:利用CSS将checkbox选项放大
在Hybrid App开发过程中,html中默认的checkbox选项在手机屏幕上显得比较小,app不能像web page那样放大缩小,所以要通过CSS将checkbox选项放大: 例如HTML代码: ...