1

我有一个扩展

在控制器 php 文件中,我在下面有一行

public function accountverificationAction() {
        $customerEmail = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
        $mobile_num = $this->getRequest()->getParam('mobile_number');
        $mobile_code = $this->getRequest()->getParam('mobile_code');        
        $smsModel = Mage::getModel('ardindata/ardindata');

        Mage::getSingleton('core/session')->setVerificationphase('mobile');

        if($mobile_num) {
            $sms_response = $smsModel->sendSms($mobile_num,$customerEmail);
            if(is_numeric($sms_response)) {
                Mage::getSingleton('core/session')->setVerificationphase('code');
            } else {
                if(empty($sms_response)) {
                    $message = $this->__('Error: Please enter a valid mobile number');
                } else {
                    $message = $this->__('Error: '.$sms_response);
                }
                Mage::getSingleton('core/session')->addError($message);
            }
        }

    if($mobile_code) {
        $verificationCompleted = $smsModel->customerVerification($customerEmail,$mobile_code);
        if($verificationCompleted != '1') {
            $message = $this->__('Verification Failed!');
            Mage::getSingleton('core/session')->addError($message);
        }
    }

    $this->loadLayout();
    $this->renderLayout();
}

因此,我首先将值“ mobile ”设置为Mage::getSingleton('core/session') ...我想在if(is_numeric($sms_response))之后将其更改为“ code ”,但它不会更改并且仅回显“移动“!

不知道为什么,谁能帮我解决?

谢谢大家

4

1 回答 1

0

在为核心/会话变量分配新值之前,您需要取消设置旧的分配值。

修正后的完整功能代码:

public function accountverificationAction() {
    $customerEmail = Mage::getSingleton('customer/session')->getCustomer()->getEmail();
    $mobile_num = $this->getRequest()->getParam('mobile_number');
    $mobile_code = $this->getRequest()->getParam('mobile_code');        
    $smsModel = Mage::getModel('ardindata/ardindata');

    Mage::getSingleton('core/session')->setVerificationphase('mobile');

    if($mobile_num) {
        $sms_response = $smsModel->sendSms($mobile_num,$customerEmail);
        if($sms_response) {
            Mage::getSingleton('core/session')->unsVerificationphase();
            Mage::getSingleton('core/session')->setVerificationphase('code');
        } else {
            if(empty($sms_response)) {
                $message = $this->__('Error: Please enter a valid mobile number');
            } else {
                $message = $this->__('Error: '.$sms_response);
            }
            Mage::getSingleton('core/session')->addError($message);
        }
    }
于 2013-10-16T05:31:55.633 回答