2017-09-21 15 views
0

CMSページから呼び出されたログインフォームを取得しようとしていますが、テストするとページにリダイレクトされてログインしません。CMSページのMagento顧客ログインフォームが機能しません

私は、これは私は、デフォルトのログインページがURLの形式を持って気づくと、右のフォームキーを持っていないと行うことです

www.mydomain.com/customer/account/login/referer/blahblahblahを推測します/

この形式では、関数getPostActionUrl()が呼び出されます。 HICHはwww.mydomain.com/customer/account/loginPost/referer/blahblahblah/

、フォームアクションのために、このURLを生成

それでは、どのように私は自分のフォームがそのblahblahblahキーを使用するのですか?

フォームでは、form_keyという非表示の入力が生成されます。しかしこれはblahblahblahと同じではありません。

ここにフォームのコードを示します。誰もがblahblahblahキーを取得する方法を提案し、フォームコードでそれをドロップすることはできますか?

<div class="block block-login"> 
<div class="block-title"> 
    <strong><span><?php echo $this->__('Login') ?></span></strong> 
</div> 
<?php echo $this->getChildHtml('customer.form.login.extra')?> 
<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form"> 
    <?php echo $this->getBlockHtml('formkey'); ?> 
    <div class="block-content"> 
     <label for="mini-login"><?php echo $this->__('Email:') ?></label> 
     <input type="text" name="login[username]" value="<?php echo $this->escapeHtml($this->getUsername()) ?>" id="email" class="input-text required-entry validate-email" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Email Address')) ?>" /> 
     <label for="mini-password"><?php echo $this->__('Password:') ?></label> 
     <input type="password" name="login[password]" class="input-text required-entry validate-password" id="pass" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Password')) ?>" /> 
     <div class="actions"> 
      <button type="submit" class="button" title="<?php echo Mage::helper('core')->quoteEscape($this->__('Login')) ?>" name="send" id="send2"><span><span><?php echo $this->__('Login') ?></span></span></button> 
     </div> 
    </div> 
</form> 
<script type="text/javascript"> 
//<![CDATA[ 
var dataForm = new VarienForm('login-form', true); 
//]]> 

答えて

0

が、これは研究のビットで動作するようになりました。 Magento adding referer param to getLoginPostUrl()

部分的に成功解決のために私に根拠を与えた:すべての

まず、私はこのスレッドを発見しました。

アプリ/設計/フロントエンド/ベース/デフォルト/テンプレート/ CMS/cmslogin.phtml

ではまず第一に、(私はこのログインフォーム用に作成したカスタムファイル)

私が交換

、と

<form action="<?php echo $this->getPostActionUrl() ?>" method="post" id="login-form"> 

<?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"> 

ログインフォームを動作させるために必要なことはすべてそうだったようです。

「設定>顧客>顧客設定>ログインオプション>ログイン後に顧客をアカウントダッシュボードにリダイレクトする」がNOに設定されていると、フォームがダッシュボードにリダイレクトされています。 CMSページ(ユーザーがログインしていて特定の顧客グループのメンバーが異なるコンテンツを表示しているとき)にリダイレクトします。これを個別に尋ねます。

関連する問題