Php 扩展错误消息变量
现在我只有一个错误消息变量,它从创建验证错误的表单输入字段中提取项名称。因此,如果在“firstname”输入字段中只键入一个字母,则错误消息应显示如下 firstname必须至少包含2个字符 这很好,但是我想创建新的变量,这样我就可以Php 扩展错误消息变量,php,forms,validation,Php,Forms,Validation,现在我只有一个错误消息变量,它从创建验证错误的表单输入字段中提取项名称。因此,如果在“firstname”输入字段中只键入一个字母,则错误消息应显示如下 firstname必须至少包含2个字符 这很好,但是我想创建新的变量,这样我就可以 $firstname_validate_error 在firstname输入字段旁边,如果该输入字段正在抛出错误,则该错误将出现在该字段旁边 有没有一种方法可以用我现有的代码做到这一点,而不让这成为一项艰巨的任务?我不知道如何构造一个变量来使用我的valida
$firstname_validate_error
在firstname输入字段旁边,如果该输入字段正在抛出错误,则该错误将出现在该字段旁边
有没有一种方法可以用我现有的代码做到这一点,而不让这成为一项艰巨的任务?我不知道如何构造一个变量来使用我的validate类实现这一点
我的验证错误来自以下内容:
} else {
foreach($validation->errors() as $error) {
$error;
}
是否有一种方法可以将其结构化,以便在表单中的每个输入字段旁边放置某种错误变量,这样,如果该输入字段抛出验证错误,就会出现错误消息
if(Input::exists()) {
if(Token::check(Input::get('token'))) {
if(Input::exists()) {
$validate = new Validate();
$validation = $validate->check($_POST, array(
'firstname' => array(
'required' => true,
'min' => 2,
'max' => 50
),
'lastname' => array(
'required' => true,
'min' => 2,
'max' => 50
),
'email' => array (
'required' => true,
'min' => 2,
'max' => 50
),
'phone_number' => array (
'required' => true,
'min' => 7,
'max' => 15
),
'username' => array(
'required' => true,
'min' => 4,
'max' => 20,
'unique' => 'users'
),
'password' => array(
'required' => true,
'min' => 6
),
'password_again' => array(
'required' => true,
'matches' => 'password'
)
));
if($validation->passed()) {
$user = new User();
$salt = Hash::salt(32);
try {
$user->create(array(
'firstname' => Input::get('firstname'),
'lastname' => Input::get('lastname'),
'email' => Input::get('email'),
'phone_number' => Input::get('phone_number'),
'username' => Input::get('username'),
'password' => Hash::make(Input::get('password'), $salt),
'salt' => $salt,
'joined' => date('Y-m-d H:i:s'),
'group' => 1
));
$success = "You have successfully created an account. We will notify you once the account has been approved. Then you will be able to login.";
echo $success;
} catch(Exception $e) {
die($e->getMessage());
}
} else {
foreach($validation->errors() as $error) {
$error;
}
}
}
}
}
与此相关的验证类
public function check($source, $items = array()) {
foreach($items as $item => $rules) {
foreach($rules as $rule => $rule_value) {
$value = trim($source[$item]);
$item = escape($item);
if($rule === 'required' && empty($value)) {
$this->addError("{$item} is required");
} else if(!empty($value)) {
switch($rule) {
case 'min':
if(strlen($value) < $rule_value) {
$this->addError("{$item} must be a minimum of {$rule_value} characters.");
}
break;
case 'max':
if(strlen($value) > $rule_value) {
$this->addError("{$item} must be a maximum of {$rule_value} characters.");
}
break;
case 'matches':
if($value != $source[$rule_value]) {
$this->addError("{$rule_value} must match {$item}");
}
break;
case 'unique':
$check = $this->_db->get($rule_value, array($item, '=', $value));
if($check->count()) {
$this->addError("{$item} already exists.");
}
break;
公共函数检查($source,$items=array()){
foreach($items为$item=>$rules){
foreach($rules as$rule=>$rule\u值){
$value=trim($source[$item]);
$item=转义($item);
如果($rule=='required'&&empty($value)){
$this->addError(“{$item}是必需的”);
}如果(!空($value)){
开关($规则){
案例“min”:
if(strlen($value)<$rule\u值){
$this->addError(“{$item}必须至少为{$rule_value}个字符。”);
}
打破
案例“max”:
if(strlen($value)>rule_值){
$this->addError(“{$item}必须最多为{$rule\u value}个字符。”);
}
打破
案例“匹配”:
如果($value!=$source[$rule\u value]){
$this->addError(“{$rule_value}必须匹配{$item}”);
}
打破
“唯一”情况:
$check=$this->\u db->get($rule\u value,array($item,'=',$value));
如果($check->count()){
$this->addError(“{$item}已经存在。”);
}
打破
我的表格是这样的
<form action="" method="POST">
<div class="field">
<label for="firstname">First Name</label>
<input type="text" class="inputbar" name="firstname" value="<?php echo escape(Input::get('firstname')); ?>" required>
</div>
<div class="field">
<label for="lastname">Last Name</label>
<input type="text" class="inputbar" name="lastname" value="<?php echo escape(Input::get('lastname')); ?>" required>
</div>
名字
您可以使用一些神奇的功能,如:
$validate = new <classname of your validation class>;
....
$validate->field_firstname();
您可以使用一些神奇的功能,如:
$validate = new <classname of your validation class>;
....
$validate->field_firstname();