0
林做一個簡單的驗證形式系統(在我的原始PHP MCV框架)在PHP但是我有一個問題我不能修復閱讀所有陣列
我有這樣的代碼
$credentials = array('name' => 'required', 'password' => 'required|between');
$validator = new Validation;
if (!$validator->check($credentials, array(5, 10))) Redirect::to('/login', 'error', $validator->msg);
然後我班calidator貌似
public function check($fields, $size)
{
foreach ($fields as $key => $val)
{
$rule = explode('|', $val);
if (in_array('required', $rule))
{
if (empty($_POST[$key]))
{
$this->msg = 'Field '.$key.' is required';
$this->final = false;
}
}
elseif (in_array('between', $rule))
{
if (strlen($_POST[$key]) < $size[0])
{
$this->msg = 'Filed '.$key.' must be between '.$size[0].' and '.$size[1].' chars';
$this->final = false;
}
if (strlen($_POST[$key]) > $size[1])
{
$this->msg = 'Filed '.$key.' must be between '.$size[0].' and '.$size[1].' chars';
$this->final = false;
}
}
}
if (!$final)
{
return false;
}
else
{
return true;
}
}
的事情是,當我發送這樣的陣列(只有1規則)
$credentials = array('name' => 'required', 'password' => 'between');
它工作正常,但如果添加了更多的規則(需要|之間......)我的功能將只與第一個工作,所以在這種情況下,規則之間被忽略......