دوره مجازی قالب وردپرس (جلسه 48):پیاده سازی فرم تماس با ما و ذخیره در دیتابیس + پیاده سازی کد امنیتی

دسته بندی: وردپرس
زمان مطالعه: 1 دقیقه
۱۴ دی ۱۳۹۴

به نام خدا و سلام. در جلسه 48 ام از دوره مجازی آموزش طراح قالب حرفه ای وردپرس در خدمت شما هستیم. در این جلسه قراره باهم دیگه یک فرم اختصاصی  تماس با ما به همراه کد امنیتی پیاده سازی کنیم و اطلاعات اون رو در دیتابیس ذخیره کنیم. در ابتدا فرم رو با استفاده از شورت کد پیاده سازی می کنیم و سپس فرم رو ارسال و اعتبار سنجی می کنیم و بعد هم اطلاعات فرم رو در دیتابیس ثبت می کنیم. برای اعتبار سنجی فرم یک کد امنیتی تصویری هم قرار میدیم.

در این جلسه خواهیم دید :

  • پیاده سازی شورت کد فرم تماس با ما
  • اعتبار سنجی داده های ورودی
  • بررسی کد امنیتی
  • ثبت داده ها در دیتابیس
:: توجه

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

ثبت نام در آموزش طراحی قالب وردپرس

چه امتیازی به این مقاله می دید؟
نویسنده
یادگیرنده ی همیشگی،برنامه نویس،نویسنده،عاشق خلق چیزهای عجیب،عاشق تحلیل داده ها، مسئول بخش فنی و هم بنیان گذار در سون لرن.

جلسات دوره

نظرات کاربران

علی خسروی

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

مصطفی قدیمی

سلام وفت بخیر

خوشحالیم که توانسته ایم گوشه از نیاز شما عزیزان رو پوشش دهیم

انشالله همیشه شاد و موفق باشید

علی خسروی

سلام استاد خسته نباشید

برای اضافه کردن امکان ارسال فایل توسط کاربر در فورم چه باید کرد ؟
سوال بعد اینکه فایل ها هم می تونن در جداول phpmyadmin ذخیره بشن یا باید در قسمت آپلود ها ذخیره بشن
بعد چطور میشه فایل ها رو در ادمین در دسترس مدیر قرار داد

کیوان علی محمدی

سلام اگر php بلد باشید می تونید فیلد فایل داخل فرم قرار بدین و کاربر با انتخاب و ارسال فایل اون فایل رو بخش upload ها ذخیره سازی کنید. اسم فایل در دیتابیس ذخیره سازی بشه و در پنل مدیریت می تونید با اسم فایل و ادرس پیش فرض اون فایل رو نمایش بدین یا لینک دانلود براش قرار بدین.

sajadprm

سلام من این کد کپچا رو وقتی روی سیستم لوکال تست میکنم کاملا جواب میده ولی وقتی اون روی هاست لینوکس cpanel می برم کپچا لود نمیشه ممکنه مشکل از هاست باشه ؟

کیوان علی محمدی

سلام آدرس فایل و کدها رو دوباره خط به خط چک کنید.

محمد

سلام استاد خسته نباشید
در ابتدای ویدئو جدول contact رو به صورت دستی ساختید امکانش هست که با استفاده از اکشن ها وقتی کاربر قالب رو فعال کرد این جدول با فیلد های دلخواه ایجاد بشه اگه که قالب رو بخواهیم انتشار بدیم قطعا کاربر به صورت دستی نمی تونه خودش جدول رو ایجاد کنه

کیوان علی محمدی

سلام می تونید در قالب از اکشن after_switch_theme استفاده کنید .

علیرضا سپاهی

سلام استاد . خسته نباشید . شرمنده من همش سوال میپرسم .

راستش توی این جلسه ( دقیقه 25 ) فرمودید با استفاده از قابلیت status در پنل ادمین این مورد آموزش داده میشه که چطور از MSG_STATUS_PENDING و MSG_STATUS_APPROVE استفاده کنیم اما من هرچقدر نگاه کردم این مورد رو نفرمودید . میشه راهنمایی کنید که چطور یک شرط بزارم که وقتی کاربر فرم رو ارسال کرد دیگه بعد از رفلش فرم نمایش داده نشه و پیغام دلخواه نشون بدهد .

مثلا :

 if ( MSG_STATUS_PENDING = 1 ) {
 /*پیام در حال بررسی*/
} elseif ( MSG_STATUS_APPROVE = 0 ) {
 /*نمایش فرم*/
} 

من توی این مورد مشکل دارم . هر کاری کردم یا در کل نشون نمیداد فرم رو یا پیغام میداد همیشه .

ممنون میشم راهنمایی بفرمایید. تشکر

کیوان علی محمدی

سلام. خوب چند تا روش وجود داره. اول اینکه بعد از ثبت موفق فرم کاربر رو به آدرس دیگه ای بفرستید. یک روش دیگه اینه که بعد از ثبت موفق فرم در سشن یک مقداری رو ست کنید و اگر فرم دوباره خواست نمایش داده بشه اون مقدار رو چک کنید و بر اساس اون فرم رو نمایش بدین.

Pcphoenix

Fatal error: Cannot redeclare simple_php_captcha() (previously declared in C:\xampp\htdocs\tds\wp-content\themes\tds\inc\captcha\simple-captcha.php:9) in C:\xampp\htdocs\tds\wp-content\themes\tds\inc\captcha\simple-captcha.php on line 88
استاد من در استفاده از کد کپچای این مشکل برام به وجود اومده به نظرتون چطوری باید حلش کنم
کل کدمم اینطوری

function sl_register_form_callback()
{
 include(get_template_directory().’/inc/captcha/simple-captcha.php’);
 $_SESSION[‘captcha’] = simple_php_captcha();
 $has_error = false;
 $has_success = false;
 $message = array();
 if (isset($_POST[‘register_submit’])) {
  $userName = sanitize_text_field($_POST[‘username’]);
  $email = sanitize_text_field($_POST[’email’]);
  $password= sanitize_text_field($_POST[‘password’]);
  $password_confirmation = sanitize_text_field($_POST[‘password_confirmation’]);
  $mobile = sanitize_text_field($_POST[‘mobile’]);
//  گرفتن فیل هی  فرم ثبت نام  در این بخش انمام میگیرد
  if (empty($userName) || empty($email) || empty($password) || empty($password_confirmation) || empty($mobile)) {
   $has_error = true;
   $message[] = “لطفا تمامی فیلد ها رو تکمیل نمایید”;
  }
  if (username_exists($userName)) {
   $has_error = true;
   $message[“empty_user_name_only”] = “نام کاربری انتخاب شده تکراری می باشد”;
  }
////////چک  کردن وجود نام  کاربری در  دیتا بیس  از طریق تابع ورد پرسی
  if (email_exists($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
   $has_error = true;
   $message[“empty_email_only”] = ” این ایمیل از قبل وجود دارد، ایمیل دیگری بنویسید.”;
  }
  //////چک  کردن وجودایمیل در  دیتا بیس  از طریق تابع ورد پرسی
  if (strlen($password)  $userName,
    ‘user_email’ => $email,
    ‘user_pass’ => $password
   );
   $newUserID = wp_insert_user($newUserData);
   if (is_wp_error($newUserID)) {
    $has_error = true;
    $message[“error_login”] = “لطفا نام کاربری خود را با حروف  انگلیسی وارد نمایید”;
   } else {
    update_user_meta($newUserID, ‘mobile’, $mobile);
    $has_success = true;
    $message[“success_login”] = “ثبت نام شما با موفقیت انجام شد.”;
   }
  }
 }
 return $message;
} 
کیوان علی محمدی

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

Hamid reza Emamverdi

سلام وقت بخیر
من تو همین جلسه 48 یه دیتا بیس مثل فیلم آموزشی درست کردم اما متن فارسی در دیتابیس به صورت علامت سوال اگه بگین اشتباه من کجاست ممنون می شم

کیوان علی محمدی

سلام encoding کانکشن یا دیتابیس رو باید روی utf-8 تنظیم کنید.

زمان الله ابراهیمی

سلام استاد خسته نباشید بنده این سوال هارا از شما پرسیده بودم که انوز در انتظار بررسی است .
آیا کد را چطور به صورت دمو قرار بدیم ؟
شما گفتید که اگه افزونه یا قالب هست باید وردپرس نصب کنیم یعنی چی من میخواهم
به طور مثال 10 قالب دارم که میخواهم به صورت دمو نمایش بدم باید 10 بار وردپرس نصب کنم

در مورد این ها یک تضیح بدید یا آموزش این ها را میدید تشکر .

کیوان علی محمدی

سلام بهترین روشی که میتونم بهتون بگم اینه که از وردپرس multisite استفاده کنید. در این دوره آموزش این مورد جای نداره.

کیوان علی محمدی

سلام روش خاصی برای این مورد وجود نداره متاسفانه.

زمان الله ابراهیمی

سلام استاد
آیا در مورد یک کد را چطور به صورت دمو قرار بدیم هم آموزشی دارید یا خیر استاد
شما گفتید که اگه افزونه یا قالب هست باید وردپرس نصب کنیم یعنی چی من میخواهم
به طور مثال 10 قالب دارم که میخواهم به صورت دمو نمایش بدم باید 10 بار وردپرس نصب کنم
ممنون میشم که یک راهنمایی کنید تشکر 😥

زمان الله ابراهیمی

سلام خسته نباشید استاد
منظور بنده این بود که چطور یک کد یا یک قالب را به صورت دمو قرار بدم

کیوان علی محمدی

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

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

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