Witam,
Mam problem z formularzem rejestracji. Walidacja działa jedynie w przypadku pola 'username', w pozostałych przypadkach niestety nie. Zupełnie nie mam pojęcia gdzie może być błąd. Może wy coś doradzicie?
register.php
<?php
require_once 'core/init.php';
if(Input::exists())
{
$validate = new Validate();
$validation = $validate->check($_POST, array( 'required' => true,
'min' => 2,
'max' => 20,
'unique' => 'users'
),
'required' => true,
'min' => 6,
),
'password_again' => array( 'required' => true,
'matches' => 'password'
),
'required' => true,
'min' => 2,
'max' => 20
),
));
if($validation->passed())
{
}
else
{
}
}
?>
validate.php
<?php
class Validate
{
private $_passed = false;
private $_errors = array(); private $_db = null;
public function __construct()
{
$this->_db = DB::getInstance();
}
public function check
($source, $items = array()) {
foreach($items as $item => $rules)
{
foreach($rules as $rule => $rule_value)
{
$value = $source[$item];
if($rule === 'required' && empty($value)) {
$this->addError("{$item} is required");
}
else
{
$this->_passed = true;
}
return $this;
}
}
if(empty($this->_errors
)) {
$this->_passed = true;
}
//return $this;
}
private function addError($error)
{
$this->_errors[] = $error;
}
public function errors()
{
return $this->_errors;
}
public function passed()
{
return $this->_passed;
}
}
?>