私はDataMapperORM1.6.0でCodeigniter2.0.3を使用しています。CIへの統合DataMapperは正常に実装されており、パスワードの暗号化を除いてすべて正常に機能しています。
users.php
クラスで呼び出されたモデルがありUsers
ます。また、検証ルールを設定しました。
var $validation = array(
array(
'field' => 'password',
'label' => 'Password',
'rules' => array('required', 'trim', 'unique', 'min_length' => 5, 'encrypt'),
),
array(
'field' => 'email',
'label' => 'Email Address',
'rules' => array('required', 'trim', 'valid_email')
)
);
検証ルールの暗号化機能:
function _encrypt($field)
{
// Don't encrypt an empty string
if (!empty($this->{$field}))
{
// Generate a random salt if empty
if (empty($this->salt))
{
$this->salt = md5(uniqid(rand(), true));
}
$this->{$field} = sha1($this->salt . $this->{$field});
}
}
MySQLusers
テーブル構造:
id
email
password
last_login
created_on
コントローラを介して新しいユーザーを作成するだけです。
$u = new Users();
$u->email = 'mario1@mario-design.info';
$u->password = 'mario';
$u->save();
編集1:
users.php
モデルの完全なコードはこちら。
ユーザーはデータベースに正常に保存されましたが、元のパスワードは暗号化されていません。
私は何が間違っているのですか?
ありがとう、マリオよろしく