PDA

View Full Version : سوال: کد جاوا برای بررسی صحت مقادیر وارد شده هنگام ثبت نام



itgalaxy
سه شنبه 06 شهریور 1397, 23:24 عصر
سلام
من یه سایت وردپرسی دارم که فرم عضویتش را توسط افزونه indeed membership pro راه اندازی کردم.

تو فایل indeed membership pro.php توسط کدهای php یه سری شرط تعریف کردم که مثلا اگر کاربر در فیلد نام کاربری برخی عبارات نامربوط رو بنویسه و یا اگر پسورد 3 کاراکتر یا کمتر وارد کنه ، افزونه بهش popup پیام خطا نشون بده .

تو این حالات افزونه پیام خطا رو به کاربر نشون میده اما با این حال اگر کاربر رو دکمه ثبت نام کلیک کنه ، با وجود این خطاها ثبت نام انجام میشه !

در صورتیکه من میخوام تا این موارد رو تصحیح نکرده ( مقادیر فیلدها رو به طور صحیح وارد نکرده ) نتونه ثبت نام انجام بده و وقتی رو دکمه ثبت نام کلیک میکنه ( در واقع submit میکنه ) سیستم قبول نکنه.

تو نت سرچ کردم و تنها چیزی که پیدا کردم اینه که که باید تو فایل فانکشن ها ، برای OnSubmitمقدار return false بنویسم.

من با جاوا اسکریپت آشنایی زیادی ندارم ، لطفاً یکی از دوستان کد دقیقی که باید بنویسم رو واسم بزاره.

و ضمناً آیا این کد رو باید داخل همین فایل functions.js که تو مسیر زیر قرار داره بنویسم دیگه ؟
public_html/wp-content/plugins/indeed-membership-pro/assets/js

با تشکر

148763

marasiali
چهارشنبه 07 شهریور 1397, 00:19 صبح
اصلا js برای ظاهر استفاده میشه و خیلی راحت میشه دورش زد و اعتبار سنجی باید با php انجام بشه. فقط اعتبار سنجی میکنیم با php و با یه if else ساده میگیم اگه درست بود ثبت نام کنه وگرنه ارور برگردونه.

itgalaxy
چهارشنبه 07 شهریور 1397, 01:22 صبح
اصلا js برای ظاهر استفاده میشه و خیلی راحت میشه دورش زد و اعتبار سنجی باید با php انجام بشه. فقط اعتبار سنجی میکنیم با php و با یه if else ساده میگیم اگه درست بود ثبت نام کنه وگرنه ارور برگردونه.

ممنون از توضیحتون

به عنوان مثال این یه نمونه کد php هست که یکی از شروطی هست که برای فیلد " نام کاربری" تعریف کرده ام.

این کد را باید به چه چیزی تغییر بدم تا علاوه بر نمایش پیام خطا ، از ثبت نام کاربر جلوگیری کنه ؟


case 'user_login':
if (preg_match ('~(Administrator|anonymous)~', $value)) {
$return = $register_msg['ihc_error_username_invalid'];
}



148764

marasiali
چهارشنبه 07 شهریور 1397, 09:11 صبح
سلام من این موضوع رو تو وردپرس کارنکردم ولی با سرچ به یه نتایجی رسیدم.
اینو ببینین:


function myplugin_check_fields( $errors, $sanitized_user_login, $user_email ) {

$errors->add( 'demo_error', __( '<strong>ERROR</strong>: This is a demo error.', 'my_textdomain' ) );
return $errors;
}

add_filter( 'registration_errors', 'myplugin_check_fields', 10, 3 );

باید یه فیلتر بزنین به هوک registration_errors و تو این اعتبار سنجی کنین.تابعی که به این هوک متصل میکنین سه تا پارامتر بهش ارسال میشه که باید اونا رو دریافت کنین. اولینش errors ه. وقتی با if چک میکنین اگه اطلاعات درست بود کاری نمیخواد بکنین ولی اگه غلط بود یه add به اون متغیر ارور بزنین.
حتما هم در همه شرایط باید متغیر errors رو return کنین. خود وردپرس بررسی میکنه اگه اروری بهش اد شده بود جلوشو میگیره وگرنه اجازه ثبت نام میده‌.
اطلاعات کاملتر:
https://codex.wordpress.org/Plugin_API/Filter_Reference/registration_errors

itgalaxy
چهارشنبه 07 شهریور 1397, 09:26 صبح
سلام من این موضوع رو تو وردپرس کارنکردم ولی با سرچ به یه نتایجی رسیدم.
اینو ببینین:


function myplugin_check_fields( $errors, $sanitized_user_login, $user_email ) {

$errors->add( 'demo_error', __( '<strong>ERROR</strong>: This is a demo error.', 'my_textdomain' ) );
return $errors;
}

add_filter( 'registration_errors', 'myplugin_check_fields', 10, 3 );

باید یه فیلتر بزنین به هوک registration_errors و تو این اعتبار سنجی کنین.تابعی که به این هوک متصل میکنین سه تا پارامتر بهش ارسال میشه که باید اونا رو دریافت کنین. اولینش errors ه. وقتی با if چک میکنین اگه اطلاعات درست بود کاری نمیخواد بکنین ولی اگه غلط بود یه add به اون متغیر ارور بزنین.
حتما هم در همه شرایط باید متغیر errors رو return کنین. خود وردپرس بررسی میکنه اگه اروری بهش اد شده بود جلوشو میگیره وگرنه اجازه ثبت نام میده‌.
اطلاعات کاملتر:
https://codex.wordpress.org/Plugin_API/Filter_Reference/registration_errors

خیلی خیلی سپاسگذارم و مطالعه میکنم