Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Yii, Yii2
Войти
Регистрация
Восстановить пароль
 
TVPNERO
9 / 8 / 12
Регистрация: 29.03.2016
Сообщений: 1,088
1

Как захешировать(закодировать) пароль при регистрации

07.10.2017, 19:28. Просмотров 192. Ответов 2
Метки нет (Все метки)

знаю что есть функция хеша,но не знаю как ее правильно использовать.Как прописать.

Yii::$app->getSecurity()->generatePasswordHash('пароль');





контроллер




PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
 public function actionRegistration()
    {
 
 
 
        $model = new RegisterForm();
 
 
 
 
    
        if ($model->load(Yii::$app->request->post())) {
 
 
 
 
            if ($model->save()){
            
                Yii::$app->session->setFlash('successmy','Данные приняты');
 
           
                return $this->refresh();
 
 
 
            } else {
 
                Yii::$app->session->setFlash('error','Ошибка.Данные НЕприняты');
 
            }
 
 
        }
 
        //Передал данные модели в вид с помощью функции  compact ()
        return $this->render('register',compact('model'));
 
 
 
    }










Модель





PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
namespace app\models;
use yii\db\ActiveRecord;
use yii\base\Model;
 
 
 
class RegisterForm extends ActiveRecord
{
 
 
 
    public static function tableName()
    {
        return 'user';
    }
 
 
 
 
 
    public function attributeLabels(){
 
        return[
 
            'username'=>'Имя',
            'email'=>'Почта',
            'password'=>'Пароль',
        ];
 
 
    }
 
 
 
    public function rules()
    {
 
        return [
 
            ['username','required', 'message'=>'Поле обьязательно для заполнения'],
 
          ['email','email'],
            ['password','safe']
 
        ];
 
 
 
    }
 
 
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2017, 19:28
Ответы с готовыми решениями:

Ошибка при попытке регистрации
есть форма регистрации <?php // \app\controllers\debug($model); ...

В таблицу user попадают пустые значения при регистрации
есть код http://www.cyberforum.ru/php-yii/thread2046832.html и есть...

Возможно ли, не только 1 пароль при регистрации?
Возможно ли, не только 1 пароль при регистрации сделать? Нужно сделать...

Возможно ли, не только 1 пароль при регистрации сделать?
Возможно ли, не только 1 пароль при регистрации сделать? Нужно сделать...

Закодировать файлы и поставить пароль для их расшифровки
Как закодировать все файлы в определенной папке?И что бы их запустить нужно...

2
Massaraksh7
311 / 264 / 87
Регистрация: 27.05.2017
Сообщений: 1,350
07.10.2017, 21:56 2
Самый простой способ:
PHP
1
$encoded_password=sha1($this->password);
0
FloppyDisc
Особый статус
600 / 204 / 158
Регистрация: 18.11.2015
Сообщений: 1,033
08.10.2017, 10:44 3
Вам же вроде не нужен был пароль)
Вот так:
Модель User:

PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
class User extends ActiveRecord implements IdentityInterface
{
...
 
public function validatePassword($password)
{
     return Yii::$app->security->validatePassword($password, $this->password_hash);
}
 
public function setPassword($password)
{
     $this->password_hash = Yii::$app->security->generatePasswordHash($password);
}
 
...
}
дальше модель-форма регистрации RegistrationForm:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
class RegistrationForm extends Model
{
...
 
    public $username;
    public $email;
    public $password;
 
public function rules()
{
     return [
          ...
          ['password', 'required'],
          ['password', 'string', 'min' => 6],
          ...
     ];
}
 
public function registration()
{
 
      if (!$this->validate()) {
          return null;
      }
 
      $user = new User();
      $user->username = $this->username;
      $user->email = $this->email;
      $user->setPassword($this->password);
      return $user->save() ? $user : null;
}
...
}
далее контроллер:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public function actionRegistration()
{
      $model = new RegistrationForm();
 
      if ($model->load(Yii::$app->request->post())) {
          if ($user = $model->registration()) {
              if (Yii::$app->getUser()->login($user)) {
                  return $this->goHome();
              }
          }
      }
 
      return $this->render('registration', [
          'model' => $model,
      ]);
}
ну вообще все это уже есть из коробки, вам не нужны никакие видео, достаточно просто покапаться.
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2017, 10:44

Как захешировать структуру, содержащую ip-адрес и порт?
Добрый вечер всем. Есть некая структура в упрошенном виде: struct session { ...

при регистрации выдает ошибку "Пароль должен быть минимум из 6 символов!", хотя длина пароля 6 символов
Всё время при регистрации выдает ошибку "Пароль должен быть минимум из 6...

Пароль для регистрации
Стоит ли ограничивать пользователя в выборе символов для создания пароля....


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru