То, почему поле пароля CakePHP, пусто при попытке получить доступ к нему с помощью $this-> данные?

Добавление кода STL C ++ 11 на основе решения, предложенного @Pham Trung. Может быть удобно.

#include <iostream>
#include <set>

int main() {
    int N;
    std::cin>>N;
    for (int nn=0;nn<N;nn++){
        long long n,m;
        std::set<long long> mSet;
        long long maxVal = 0; //positive input values
        long long sumVal = 0;

        std::cin>>n>>m;
        mSet.insert(m);
        for (long long q=0;q<n;q++){
            long long tmp;

            std::cin>>tmp;
            sumVal = (sumVal + tmp)%m;
            auto itSub = mSet.upper_bound(sumVal);
            maxVal = std::max(maxVal,(m + sumVal - *itSub)%m);
            mSet.insert(sumVal);                
        }
        std::cout<<maxVal<<"\n";
    }
}
6
задан Chuck Burgess 19 January 2013 в 16:25
поделиться

3 ответа

. Это связано с тем, что компонент Auth удаляет пароль из массив данных (в целях безопасности). почему вы вообще хотите, чтобы он содержал пароль? логика «запомни меня» (которую, как я полагаю, вы используете из полей формы) будет обрабатывать вход в систему без пароля.

2
ответ дан 17 December 2019 в 02:33
поделиться

У меня была та же проблема с некоторой аутентификацией ExtJS, над которой я работал несколько недель назад.

Странный обходной путь - перейти на /config/core.php и временно измените уровень отладки, например, измените с Configure :: write ('debug', 0); на Configure :: write ('debug', 1); , а затем запустите свой код - не обязательно часть с компонентом Auth - (и после этого измените уровень отладки обратно, если хотите). $ this-> data ['User'] ['password'] теперь будет заполнено хеш-значением, как и предполагалось.

Причина, по которой это в первую очередь, все еще лучше меня :)

0
ответ дан 17 December 2019 в 02:33
поделиться

Я также хотел бы увидеть вашу функцию login (), но эта проблема действительно кажется странной. Вы можете обойти это, переименовав поле пароля, а затем внутри функции входа сделайте что-то вроде:

$this->data['password']=$this->Auth->password($this->data['User']['pwd']);
//now you can call $this->Auth->login and it will work
1
ответ дан 17 December 2019 в 02:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: