Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Kohana] Problem ze zmianą hasła.
Pytajka
post
Post #1





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


Otóż, mam problem ze zmianą hasła użytkownika. Otóż z pomocą przychodzi mi funkcja change_password, jednak wywołanie jej, kończy się o braku takowej metody w wybranym modelu. W sumie to nie ważne jaki model wywołuje, zawsze jest to samo. Według dokumentacji powinna się ona znajdować w Model_Auth_User.

  1. if( isset( $_POST['submit_password'])){
  2.  
  3. $this->validation = new Validation( $_POST);
  4.  
  5. $this->validation->rule('password_old', 'not_empty')
  6. ->rule('password', 'not_empty')
  7. ->rule('password_confirm', 'not_empty');
  8.  
  9. if( $this->validation->check() == TRUE){
  10.  
  11. if( $this->auth->check_password( $_POST['password_old']) == TRUE){
  12.  
  13. if( $_POST['password'] == $_POST['password_confirm']){
  14.  
  15. $this->model = Model_Auth_User::factory('user');
  16.  
  17. if( $this->model->change_password( $_POST, TRUE)){
  18.  
  19. $this->request->redirect('panel/edit');
  20.  
  21. $success = 'Dane zostały edytowane poprawnie.';
  22.  
  23. $this->template->bind_global('success2', $success);
  24.  
  25. }
  26.  
  27. }
  28.  
  29. }
  30. else{
  31.  
  32. echo $this->auth->hash_password( $_POST['password_old']).'/'.$this->auth->get_user()->password;
  33. }
  34.  
  35. }
  36. else{
  37.  
  38. $messages = $this->validation->errors('validation');
  39.  
  40. $this->template->bind_global('messages2', $messages);
  41. }
  42.  
  43. }


I błąd -

Cytat
ErrorException [ Fatal Error ]: Call to undefined method Model_User::change_password()
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
skowron-line
post
Post #2





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

Ostrzeżenie: (0%)
-----


Cytat(Pytajka @ 6.05.2012, 11:15:35 ) *
Według dokumentacji powinna się ona znajdować w Model_Auth_User.

A komunikat błędu pokazuje że metodę pobierasz z Model_User.

Edit:
dodatkowo nie
  1. if(isset($_POST['aaa'])
tylko
  1. if($this->request->post('aaa')

i nie
  1. if( $_POST['password'] == $_POST['password_confirm'])
tylko w klasie Valid jest metoda matches której używasz w klasie Validation

Ten post edytował skowron-line 6.05.2012, 12:26:56


--------------------
I'm so fast that last night I turned off the light switch in my hotel room and was in bed before the room was dark - Muhammad Ali.
Peg jeżeli chcesz uprawiać sex to dzieci muszą wyjść, a jeżeli chcesz żeby był dobry ty też musisz wyjść - Al Bundy.

QueryBuilder, Mootools.net, bbcradio1::MistaJam
http://www.phpbench.com/
Go to the top of the page
+Quote Post
mortus
post
Post #3





Grupa: Zarejestrowani
Postów: 2 178
Pomógł: 596
Dołączył: 25.09.2009
Skąd: Piwniczna-Zdrój

Ostrzeżenie: (0%)
-----


Komunikat błędu mówi, że metoda change_password w klasie Model_User nie istnieje. Pokaż nam klasy Model_User i Model_Auth_User.

@up: Zauważ tylko, że w kodzie Pytajka używa Model_Auth_User.

Ten post edytował mortus 6.05.2012, 12:26:25
Go to the top of the page
+Quote Post
Pytajka
post
Post #4





Grupa: Zarejestrowani
Postów: 60
Pomógł: 0
Dołączył: 6.09.2011

Ostrzeżenie: (0%)
-----


Model_User dziedziczy z Model_Auth_User.

Edycja

Faktycznie metody takiej brakuje w Model_Auth_User, zastanawia mnie tylko dlaczego i skąd mam ją wziąć? Korzystam z najnowszej odsłony frameworka.

Może ktoś wyciąłby mi swój kawałek kodu i pokazał jak zmienia hasło zalogowanemu użytkownikowi?

Ten post edytował Pytajka 6.05.2012, 14:44:40
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 19.08.2025 - 18:41