نمایش نتایج 1 تا 5 از 5

نام تاپیک: مشکل با زبان فارسی زمانی که از validate در Model استفاده میکنم

  1. #1
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    مشکل با زبان فارسی زمانی که از validate در Model استفاده میکنم

    سلام و خسته نباشید خدمت اساتید محترم.
    یه مشکلی که با کیک نسخه 2.3.8 پیدا کردم اینه که موفع validate کردن مدل دیگه امکان دریافت کاراکترهای فارسی رو از کاربر میگیره. یعنی یونیکد نیست.
    کدی که برای مدل گذاشتم اینه :
    <?php

    class Message extends AppModel {

    public $validate = array(
    'name' => 'noEmpty',
    'family' => 'noEmpty',
    'email' => 'email',
    'subject' => 'noEmpty',
    'message' => 'noEmpty'
    );

    }


    کد مربوط به view هم اینه :
    <?php

    echo $this->Form->create('Message');
    echo $this->Form->inputs(array(
    'legend' => __('Message'),
    'name' => array('label' => __('Name')),
    'family' => array('label' => __('Family')),
    'email' => array('label' => __('Email')),
    'subject' => array('label' => __('Subject')),
    'message' => array('label' => __('Message'), 'rows' => 8,'cols'=>80)
    ));
    echo $this->Form->end(__('Send'));
    ?>


    و اما همه چیز درسته و کار میکنه به غیر از زمانی که از حروف یونیکد مثل حروف فارسی استفاده میکنم.
    وقتی حروف فارسی رو استفاده میکنم بعد از postback این خطا نشون داده میشه :

    Warning (2): preg_match() [function.preg-match]: Delimiter must not be alphanumeric or backslash [CORE\Cake\Model\Validator\CakeValidationRule.php, line 281]
    Code Context
    preg_match - [internal], line ??
    CakeValidationRule::process() - CORE\Cake\Model\Validator\CakeValidationRule.php, line 281
    CakeValidationSet::validate() - CORE\Cake\Model\Validator\CakeValidationSet.php, line 137
    ModelValidator::errors() - CORE\Cake\Model\ModelValidator.php, line 260
    ModelValidator::validates() - CORE\Cake\Model\ModelValidator.php, line 100
    Model::validates() - CORE\Cake\Model\Model.php, line 3074
    Model::save() - CORE\Cake\Model\Model.php, line 1658
    MessagesController::add() - APP\Controller\MessagesController.php, line 19
    ReflectionMethod::invokeArgs() - [internal], line ??
    Controller::invokeAction() - CORE\Cake\Controller\Controller.php, line 486
    Dispatcher::_invoke() - CORE\Cake\Routing\Dispatcher.php, line 187
    Dispatcher::dispatch() - CORE\Cake\Routing\Dispatcher.php, line 162
    [main] - APP\webroot\index.php, line 52


    این در حالیه که برای حروف انگلیسی هیچ مشکلی وجود نداره و حتی هنگامی که validate رو از مدل برمیدارم بازم مشکلی با حروف فارسی نداره و مشکل با حروف فارسی فقط و فقط زمان Validate کردن مدل اتفاق میفته

    از اساتید خواهشمندم اگر در این زمینه اطلاعی دارن منو راهنمایی کنن.
    با تشکر
    موفق و پیروز باشید.

  2. #2
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: مشکل با زبان فارسی زمانی که از validate در Model استفاده میکنم

    درود بر شما، شما دقیقا همین رو دارید استفاده می کنید در فرم؟ و مدلتون؟ اینجا هیچ متن فارسی که دیده نمیشه! پس لطفا رول های تعریف شده معتبر سازی تون رو کامل بزارید.
    اما اللحساب شما بهتره همیشه رول ها رو کامل تعریف کنید.

    public $validate = array( 'fieldName1' => array( 'rule' => 'ruleName', // or: array('ruleName', 'param1', 'param2' ...) 'required' => true, 'allowEmpty' => false, 'on' => 'create', // or: 'update' 'message' => 'Your Error Message' ) );





    در ضمن زیر متن خطا دوتا لینک هست (Code Context) روشون کلیک کنید. متون داخلش رو هم قرار بدید تا بهتر بتونیم به شما کمک کنیم.

  3. #3
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: مشکل با زبان فارسی زمانی که از validate در Model استفاده میکنم

    با تشکر از پاسخ و توجه شما دوست عزیز.
    در حقیقت قبل از اینکه قوانین (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'


    اگه ممکنه در این زمینه راهنمایی کنید ممنون میشم.
    موفق و پیروز باشید.
    آخرین ویرایش به وسیله AmirAmiri : یک شنبه 17 شهریور 1392 در 10:15 صبح دلیل: اضافه کردن Cod Context

  4. #4
    کاربر دائمی آواتار zoghal
    تاریخ عضویت
    شهریور 1383
    محل زندگی
    همدان
    سن
    41
    پست
    401

    نقل قول: مشکل با زبان فارسی زمانی که از validate در Model استفاده میکنم

    درود مجدد
    این که کدینگ صفحه عوض میشه مربوط به خطایی هست که ایجاد میشه. و بر میگرده به لایوت و ...


    اما مشکل شما اینه که رول name , سایر فیلد ها رو noEmpty تعریف کردید. در اصل notEmpty هست. به رول ها دقت کافی داشته باشید.

  5. #5
    کاربر دائمی آواتار AmirAmiri
    تاریخ عضویت
    بهمن 1386
    محل زندگی
    مشهد
    پست
    353

    نقل قول: مشکل با زبان فارسی زمانی که از validate در Model استفاده میکنم

    کاملا درست میفرمایید اشتباه از من بود :(
    اینا هش بخاطر بی دقتیه من بود. الان که notEmpty کردمش همش درست شد. بازم ازتون ممنونم. خیلی لطف کردید.

تاپیک های مشابه

  1. سوال: مشکل با زبان فارسی
    نوشته شده توسط milade در بخش ASP.NET Web Forms
    پاسخ: 2
    آخرین پست: دوشنبه 24 تیر 1387, 13:43 عصر
  2. مشکل با زبان فارسی !
    نوشته شده توسط arash_a در بخش مباحث عمومی دلفی و پاسکال
    پاسخ: 4
    آخرین پست: یک شنبه 19 اسفند 1386, 01:40 صبح
  3. مشکل با زبان فارسی در ساختن فایل XML
    نوشته شده توسط iman_s52 در بخش برنامه نویسی در Delphi
    پاسخ: 3
    آخرین پست: دوشنبه 01 بهمن 1386, 19:31 عصر
  4. مشکل با زبان فارسی ( علامت ؟ )
    نوشته شده توسط reza_optical در بخش برنامه نویسی در 6 VB
    پاسخ: 1
    آخرین پست: پنج شنبه 21 تیر 1386, 23:01 عصر
  5. مشکل با زبان فارسی در بانک
    نوشته شده توسط fotrosi در بخش VB.NET
    پاسخ: 1
    آخرین پست: چهارشنبه 04 آبان 1384, 16:26 عصر

برچسب های این تاپیک

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •