簡體   English   中英

magento中的自定義登錄頁面?

[英]Custom Login page in magento?

我是magento的新手,我必須做自定義登錄頁面表格,登錄后將其重定向到帳戶信息,該怎么辦? 需要magento經驗豐富的人的幫助,

在這里,我給您骨架代碼進行登錄,請檢查您的實際代碼和文件

登錄控制器的操作就像

 public function loginAction()
    {
        $session = Mage::getSingleton('customer/session');
        if ($session->isLoggedIn()) {
        // is already login redirect to account page
            return;
        }

        $result = array('success' => false);

        if ($this->getRequest()->isPost())
        {
            $login_data = $this->getRequest()->getPost('login');
            if (empty($login_data['username']) || empty($login_data['password'])) {
                $result['error'] = Mage::helper('onepagecheckout')->__('Login and password are required.');
            }
            else
            {
                try
                {
                    $session->login($login_data['username'], $login_data['password']);
                    $result['success'] = true;
                    $result['redirect'] = Mage::getUrl('*/*/index');
                }
                catch (Mage_Core_Exception $e)
                {
                    switch ($e->getCode()) {
                        case Mage_Customer_Model_Customer::EXCEPTION_EMAIL_NOT_CONFIRMED:
                            $message = Mage::helper('onepagecheckout')->__('Email is not confirmed. <a href="%s">Resend confirmation email.</a>', Mage::helper('customer')->getEmailConfirmationUrl($login_data['username']));
                            break;
                        default:
                            $message = $e->getMessage();
                    }
                    $result['error'] = $message;
                    $session->setUsername($login_data['username']);
                }
            }
        }

        $this->getResponse()->setBody(Mage::helper('core')->jsonEncode($result));
    }

而你的形式就像

<?php
$login_url  = $this->getUrl('*/*/login', array('_secure'=>(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']==='on')));
$http_mode  = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']==='on');
if($http_mode)
    $login_url  = str_replace('http:', 'https:', $login_url);  
?>
    <form method="post" id="login-form" action="<?php echo $login_url ?>">
<div class='full'>
                <label>
                    <?php echo $this->__('Email Address') ?>
                </label>
                <sup>*</sup>
                <div class="data_area">
                    <input type="text" name="login[username]" value="<?php echo $this->htmlEscape($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo $this->__('Email Address') ?>" />
                </div>
            </div>
<div class='full'>
                <label>
                    <?php echo $this->__('Password') ?>
                </label>
                <sup>*</sup>
                <div class="input-box">
                    <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo $this->__('Password') ?>" />
                </div>
            </div>

<button type="submit" class="button" title="<?php echo $this->__('Login') ?>" name="send" id="send2"><span><span><?php echo $this->__('Login') ?></span></span></button>

 <script type="text/javascript">
    //<![CDATA[
        var loginForm = new VarienForm('login-form', true);
    //]]>
    </script>

上面的示例是針對ajax的,您可以將其轉換為示例重定向到控制器中的myaccount頁面。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM