本当に両方あるはずです。サーバー側の検証は絶対に必要です。サーバー側の検証を補完するクライアント側の検証は、ユーザー エクスペリエンスの観点から優れた方法です。
より一般的な PHP フレームワークのいくつかを調べて、それらがこの問題にどのように対処しているかを確認することをお勧めします。多くの場合、検証ルールはモデルに保持されます。たとえば、Kohana 3.3 でのユーザー認証は次のようになります。
<?php defined('SYSPATH') OR die('No direct access allowed.');
class Model_User extends Model_Auth_User {
public function rules() {
return array(
'username' => array(
array('not_empty'),
array('max_length', array(':value', 32)),
array(array($this, 'unique'), array('username', ':value')),
),
'password' => array(
array('not_empty'),
),
'email' => array(
array('not_empty'),
array('email'),
array(array($this, 'unique'), array('email', ':value')),
),
'first_name' => array(
array('not_empty'),
),
'last_name' => array(
array('not_empty'),
)
);
}
}