密码和验证是真的,尽管其中一个没有设置。
Password and verification is true altough one of them is not set.
我有一些功能可以检查是否需要密码,并将其与验证进行比较这是我的功能:
public function required($field= array())
{
foreach($field as $value) {
if (isset($this->_input[$value])) {
if (empty(Security::clean($this->_input[$value]))) {
$messages = "is Required.";
error::inputError($value, $messages);
}
} else{
$messages = "Not Found.";
error::inputError($field, $messages);
}
}
}
public function password($field, $confirmasion){
if (isset($this->_input[$field] , $this->_input[$confirmasion])){
if ($this->_input[$field] != $this->_input[$confirmasion])
{
$messages = "is different with $confirmasion.";
error::inputError($field, $messages);
error::inputError($confirmasion, $messages);
}
}
}
在我的class $this->_input 指的是$_POST。然后我有一个 class 来设置这样的错误:
public static function inputError($field, $messages)
{
if (is_array($field)) {
foreach ($field as $key){
$newName = General::changeName($key);
$messagesError = "$newName $messages";
if (isset(self::$_errors[$key])){
return;
}else{
self::$_errors[$key] = $messagesError;
}
}
}else{
$newName = General::changeName($field);
$messagesError = "$newName $messages";
if (isset(self::$_errors[$field])){
return;
}else{
self::$_errors[$field] = $messagesError;
}
}
}
我期待当我提交表单并且我的密码和验证字段为空时它只显示 "password is required" 或 "verification is required" 而没有显示错误 "password is different from verification”. but when i'm only fill my password fields it showing “verification is required“ and the second error "密码与验证不同” 因为我的验证还是空的。是我的逻辑有问题还是怎么的?
isset($this->_input['fieldname'])
此代码将 return 为真。因此,将验证字段留空仍会将其与密码进行比较 field.here 的解决方案:
(!empty($this->_input[$field]) && !empty($this->_input[$confirmasion]))
我有一些功能可以检查是否需要密码,并将其与验证进行比较这是我的功能:
public function required($field= array())
{
foreach($field as $value) {
if (isset($this->_input[$value])) {
if (empty(Security::clean($this->_input[$value]))) {
$messages = "is Required.";
error::inputError($value, $messages);
}
} else{
$messages = "Not Found.";
error::inputError($field, $messages);
}
}
}
public function password($field, $confirmasion){
if (isset($this->_input[$field] , $this->_input[$confirmasion])){
if ($this->_input[$field] != $this->_input[$confirmasion])
{
$messages = "is different with $confirmasion.";
error::inputError($field, $messages);
error::inputError($confirmasion, $messages);
}
}
}
在我的class $this->_input 指的是$_POST。然后我有一个 class 来设置这样的错误:
public static function inputError($field, $messages)
{
if (is_array($field)) {
foreach ($field as $key){
$newName = General::changeName($key);
$messagesError = "$newName $messages";
if (isset(self::$_errors[$key])){
return;
}else{
self::$_errors[$key] = $messagesError;
}
}
}else{
$newName = General::changeName($field);
$messagesError = "$newName $messages";
if (isset(self::$_errors[$field])){
return;
}else{
self::$_errors[$field] = $messagesError;
}
}
}
我期待当我提交表单并且我的密码和验证字段为空时它只显示 "password is required" 或 "verification is required" 而没有显示错误 "password is different from verification”. but when i'm only fill my password fields it showing “verification is required“ and the second error "密码与验证不同” 因为我的验证还是空的。是我的逻辑有问题还是怎么的?
isset($this->_input['fieldname'])
此代码将 return 为真。因此,将验证字段留空仍会将其与密码进行比较 field.here 的解决方案:
(!empty($this->_input[$field]) && !empty($this->_input[$confirmasion]))