با تشکر از پاسخ و توجه شما دوست عزیز.
در حقیقت قبل از اینکه قوانین (rule ها) رو به صورت Simple تعریف کنم، از روش Multiple که شما فرمودید استفاده کرده بودم و همین مشکل همچنان وجود داشت.
این سایتی که دارم طراحی میکنم یک سایت سه زبانه ست که زبان پیشفرض اون انگلیسیه به همین خاطر متن فارسی توی فرم دیده نمیشه اما از مبدل متن و زبان استفاده کردم که در صورت فارسی شدن سایت نیز اطلاعات و متون این فرم تبدیل به متون فارسی میشه.
یک مثال از اتفاقی که میفته میزنم شاید بهتر مطلب رو برسونه.
فرض کنید صفحه لود شده و فرم آماده ورود اطلاعات هست. با داده های انگلیسی کاملا درست کار میکنه و اعتبارسنجی هم درست کار میکنه و همچنین اطلاعات در Database به درستی ذخیره میشه.
اما وقتی یکی یا چندی از فیلدها رو با داده های فارسی پر میکنم به عنوان مثال برای نام ==> امیر وارد میکنم، بعد از زدن دکمه ارسال و پست بک شدن صفحه، به تعداد فیلدهایی که فارسی وارد کردم خطایی که قبلا ذکر کرده بودم رو نشون میده و متن فارسی هم کاملا متفاوت از چیزی که وارد کردم توی فیلد قرار میگیره
مثلا فیلد نام که با داده ی ==> امیر پر شده بود حالا تبدیل به این متن شده ==> ط§ظ…غŒط±
با این تفاسیر حدس من اینه که اعتبارسنجی برای داده های یونیکد کار نمیکنه یا شایدم مشکل از جای دیگه ای باشه.
در مورد (Code Conten) هم این اطلاعات رو نشون میداد امیدوارم بتونه کمک کنه :
$field = 'name'
$data = array(
'visited' => '0',
'name' => 'ط§ظ…غŒط±',
'family' => 'ط¸â€ط¸â€',
'email' => 'amir@yahoo.com',
'subject' => 'ط؛إ’ط·آ¨ط؛إ’',
'message' => 'ط¸â€ط¸â€'
)
$methods = array(
'schema' => '*****',
'__construct' => array(
(int) 0 => object(Message) {},
(int) 1 => '__construct'
),
'implementedevents' => array(
(int) 0 => object(Message) {},
(int) 1 => 'implementedEvents'
),
'geteventmanager' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getEventManager'
),
'__call' => array(
(int) 0 => object(Message) {},
(int) 1 => '__call'
),
'__isset' => array(
(int) 0 => object(Message) {},
(int) 1 => '__isset'
),
'__get' => array(
(int) 0 => object(Message) {},
(int) 1 => '__get'
),
'bindmodel' => array(
(int) 0 => object(Message) {},
(int) 1 => 'bindModel'
),
'unbindmodel' => array(
(int) 0 => object(Message) {},
(int) 1 => 'unbindModel'
),
'setsource' => array(
(int) 0 => object(Message) {},
(int) 1 => 'setSource'
),
'set' => array(
(int) 0 => object(Message) {},
(int) 1 => 'set'
),
'deconstruct' => array(
(int) 0 => object(Message) {},
(int) 1 => 'deconstruct'
),
'getcolumntypes' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getColumnTypes'
),
'getcolumntype' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getColumnType'
),
'hasfield' => array(
(int) 0 => object(Message) {},
(int) 1 => 'hasField'
),
'hasmethod' => array(
(int) 0 => object(Message) {},
(int) 1 => 'hasMethod'
),
'isvirtualfield' => array(
(int) 0 => object(Message) {},
(int) 1 => 'isVirtualField'
),
'getvirtualfield' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getVirtualField'
),
'create' => array(
(int) 0 => object(Message) {},
(int) 1 => 'create'
),
'clear' => array(
(int) 0 => object(Message) {},
(int) 1 => 'clear'
),
'read' => array(
(int) 0 => object(Message) {},
(int) 1 => 'read'
),
'field' => array(
(int) 0 => object(Message) {},
(int) 1 => 'field'
),
'savefield' => array(
(int) 0 => object(Message) {},
(int) 1 => 'saveField'
),
'save' => array(
(int) 0 => object(Message) {},
(int) 1 => 'save'
),
'updatecountercache' => array(
(int) 0 => object(Message) {},
(int) 1 => 'updateCounterCache'
),
'saveall' => array(
(int) 0 => object(Message) {},
(int) 1 => 'saveAll'
),
'savemany' => array(
(int) 0 => object(Message) {},
(int) 1 => 'saveMany'
),
'validatemany' => array(
(int) 0 => object(Message) {},
(int) 1 => 'validateMany'
),
'saveassociated' => array(
(int) 0 => object(Message) {},
(int) 1 => 'saveAssociated'
),
'validateassociated' => array(
(int) 0 => object(Message) {},
(int) 1 => 'validateAssociated'
),
'updateall' => array(
(int) 0 => object(Message) {},
(int) 1 => 'updateAll'
),
'delete' => array(
(int) 0 => object(Message) {},
(int) 1 => 'delete'
),
'deleteall' => array(
(int) 0 => object(Message) {},
(int) 1 => 'deleteAll'
),
'exists' => array(
(int) 0 => object(Message) {},
(int) 1 => 'exists'
),
'hasany' => array(
(int) 0 => object(Message) {},
(int) 1 => 'hasAny'
),
'find' => array(
(int) 0 => object(Message) {},
(int) 1 => 'find'
),
'buildquery' => array(
(int) 0 => object(Message) {},
(int) 1 => 'buildQuery'
),
'resetassociations' => array(
(int) 0 => object(Message) {},
(int) 1 => 'resetAssociations'
),
'isunique' => array(
(int) 0 => object(Message) {},
(int) 1 => 'isUnique'
),
'query' => array(
(int) 0 => object(Message) {},
(int) 1 => 'query'
),
'validates' => array(
(int) 0 => object(Message) {},
(int) 1 => 'validates'
),
'invalidfields' => array(
(int) 0 => object(Message) {},
(int) 1 => 'invalidFields'
),
'invalidate' => array(
(int) 0 => object(Message) {},
(int) 1 => 'invalidate'
),
'isforeignkey' => array(
(int) 0 => object(Message) {},
(int) 1 => 'isForeignKey'
),
'escapefield' => array(
(int) 0 => object(Message) {},
(int) 1 => 'escapeField'
),
'getid' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getID'
),
'getlastinsertid' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getLastInsertID'
),
'getinsertid' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getInsertID'
),
'setinsertid' => array(
(int) 0 => object(Message) {},
(int) 1 => 'setInsertID'
),
'getnumrows' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getNumRows'
),
'getaffectedrows' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getAffectedRows'
),
'setdatasource' => array(
(int) 0 => object(Message) {},
(int) 1 => 'setDataSource'
),
'getdatasource' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getDataSource'
),
'associations' => array(
(int) 0 => object(Message) {},
(int) 1 => 'associations'
),
'getassociated' => array(
(int) 0 => object(Message) {},
(int) 1 => 'getAssociated'
),
'joinmodel' => array(
(int) 0 => object(Message) {},
(int) 1 => 'joinModel'
),
'beforefind' => array(
(int) 0 => object(Message) {},
(int) 1 => 'beforeFind'
),
'afterfind' => array(
(int) 0 => object(Message) {},
(int) 1 => 'afterFind'
),
'beforesave' => array(
(int) 0 => object(Message) {},
(int) 1 => 'beforeSave'
),
'aftersave' => array(
(int) 0 => object(Message) {},
(int) 1 => 'afterSave'
),
'beforedelete' => array(
(int) 0 => object(Message) {},
(int) 1 => 'beforeDelete'
),
'afterdelete' => array(
(int) 0 => object(Message) {},
(int) 1 => 'afterDelete'
),
'beforevalidate' => array(
(int) 0 => object(Message) {},
(int) 1 => 'beforeValidate'
),
'aftervalidate' => array(
(int) 0 => object(Message) {},
(int) 1 => 'afterValidate'
),
'onerror' => array(
(int) 0 => object(Message) {},
(int) 1 => 'onError'
),
'validator' => array(
(int) 0 => object(Message) {},
(int) 1 => 'validator'
),
'tostring' => array(
(int) 0 => object(Message) {},
(int) 1 => 'toString'
),
'requestaction' => array(
(int) 0 => object(Message) {},
(int) 1 => 'requestAction'
),
'dispatchmethod' => array(
(int) 0 => object(Message) {},
(int) 1 => 'dispatchMethod'
),
'log' => array(
(int) 0 => object(Message) {},
(int) 1 => 'log'
)
)
$validator = array(
'rule' => 'noEmpty',
'required' => null,
'allowEmpty' => null,
'on' => null,
'last' => true,
'message' => null
)
$rule = 'noempty'
اگه ممکنه در این زمینه راهنمایی کنید ممنون میشم.
موفق و پیروز باشید.