CakePHP MD5 и строка сеанса Cake - PullRequest
       0

CakePHP MD5 и строка сеанса Cake

0 голосов
/ 27 октября 2011

Может кто-нибудь увидеть проблему с этой строкой: $emailtoken = md5($user['User']['password'].CAKE_SESSION_STRING);

Так как выдает следующую ошибку: Use of undefined constant CAKE_SESSION_STRING - assumed 'CAKE_SESSION_STRING'

Он все еще создает токен, но выдает эту ошибку, а затем при использовании токена говорит, что он недействителен: /

Вот полная функция:

        function admin_resetpassword ( $token = null )
        {
            // User submits their email address
            if (!empty($this->data['User']['email']))
            { 
                // user submitted initial form 
                $user = $this->User->findByEmail($this->data['User']['email']); 
                if (empty($user))
                { 
                    $this->Session->setFlash('Unknown email.'); 
                    return;  
                }
                else
                { 
                    $emailtoken = md5($user['User']['password'].CAKE_SESSION_STRING); 
                    // send email (temp flash to test code) 
                    $this->Session->setFlash($emailtoken); 
                    return; 
                } 
            }
// If the token is not empty on the url
        if (!empty($token))
        { 
            $user = $this->User->find(array("MD5(User.password + '".CAKE_SESSION_STRING."')"=>$token));

            if (empty($user))
            { 
                $this->Session->setFlash('Invalid token.'); 
                return; 
            } 

            if (!empty($this->data['User']['password']))
            { 
                $user['User']['password'] = $this->data['User']['password']; 
                $this->user->save($user); 
                $this->Session->setFlash('New password set.'); 
                $this->redirect('/'); 
            } 

            $this->set('token', $token); 
            $this->render('newpassword2'); 
        } 


    }

1 Ответ

0 голосов
/ 28 октября 2011

проблема в том, что CAKE_SESSION_STRING не определен (как указано в ошибке). Если вы хотите получить salt или cipherSeed, используйте Configure::read('Security.salt'); или $this-Session->id; Но вы знаете, что этот идентификатор сеанса теряется после определенного периода бездействия, верно? Вы не сможете получить этот идентификатор сессии позже (если не сохраните его где-нибудь).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...