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