0
我有一個簡單的註冊表單和使用md5加密和鹽密碼散列,我收到一個錯誤,說「uni」字段不能爲空,我認爲這是由於事實上,我不確定如何將$ salt添加到表單中(它不會是隱藏的元素嗎?像id字段?)。我做了以下模型:Zend表單註冊與鹽
public function addUser($first_name, $surname, $email, $username, $password, $salt, $age, $gender, $uni) {
$salt=substr(md5(mt_rand()),0,20);
$md5Password=md5($salt.$password);
$data = array(
'first_name' => $first_name,
'surname' => $surname,
'email' => $email,
'username' => $username,
'salt' => $salt,
'password' => $md5Password,
'age' => $age,
'gender' => $gender,
'uni' => $uni,
);
$this->insert($data);
}
,這裏是形式:
<?php
class Application_Form_Register extends Zend_Form
{
public function init() {
$this->setName('register');
$id = new Zend_Form_Element_Hidden('id');
$id->addFilter('Int');
$first_name = new Zend_Form_Element_Text('first_name');
$first_name->setLabel('Firstname:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$surname = new Zend_Form_Element_Text('surname');
$surname->setLabel('Surname:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$email = new Zend_Form_Element_Text('email');
$email->setLabel('Email:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$username = new Zend_Form_Element_Text('username');
$username->setLabel('Username:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$password = new Zend_Form_Element_Password('password');
$password->setLabel('Password:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$salt = new Zend_Form_Element_Hidden('salt');
$age = new Zend_Form_Element_Text('age');
$age->setLabel('Age:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$gender = new Zend_Form_Element_Text('gender');
$gender->setLabel('Gender:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$uni = new Zend_Form_Element_Text('uni');
$uni->setLabel('University:')
->setRequired(true)
->addFilter('StripTags')
->addFilter('StringTrim')
->addValidator('NotEmpty');
$submit = new Zend_Form_Element_Submit('submit');
$submit->setAttrib('id', 'submitbutton');
$this->addElements(array($id, $first_name, $surname, $email, $username, $password, $salt, $age, $gender, $uni, $submit));
}
}
感謝
裏克
是的,但uni不應該爲空,它不是空值我輸入數據到字段中。 – Rex89 2012-04-26 13:37:48
檢查發佈的數據,在某個地方你失去了'uni'數據。你提供的代碼沒有什麼明顯的錯誤。也許轉儲控制器中的$ form變量,並確保一切都到達那裏。 – RockyFord 2012-04-26 13:43:09
對不起,這是我的一個愚蠢的錯誤我錯過了一個列中的分貝,所以我在模型中插入8時,總共有9個.. – Rex89 2012-04-26 14:17:24