نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

نکات برنامه‌نویسی

نکات برنامه‌نویسی و رایانه‌ای - امیرمسعود ایرانی

۳ مطلب در شهریور ۱۳۹۴ ثبت شده است

کاهش حجم دیتابیس جوملا

امیرمسعود ایرانی | پنجشنبه, ۲۶ شهریور ۱۳۹۴، ۱۱:۴۹ ق.ظ | ۱ نظر

افزایش حجم پایگاه داده‌ی جوملا به دلایل گوناگون و وابسته به تنظیمات مختلف ممکن است رخ دهد.

در ادامه به سه دلیل متداول و راه برطرف کردن آن‌ها می‌پردازیم.


۱- افزایش حجم جدول کاربران

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

این مطالب علاوه بر پر کردن حجم پایگاه‌داده‌ی شما، در رتبه‌ی SEO سایت شما نیز ممکن است اثر منفی داشته باشند.

برای برطرف کردن این اشکال، به بخش کاربران جوملا مراجعه کنید و چنانچه مشاهده کردید که صدها و هزارها کاربر در این بخش وجود دارد، ابتدا به بخش تنظیمات مراجعه کنید و ثبت نام را غیرفعال کنید. در صورتی که کاربران عادی باید بتوانند در سایت شما ثبت نام کنند، حتما از یک سیستم Captcha قدرتمند برای جلوگیری از عملکرد ربات‌ها استفاده کنید.

برای امنیت بیشتر می‌توانید فعال‌سازی کاربران را توسط مدیر انجام دهید تا جلوی ورود ربات‌های مزاحم گرفته شود

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


۲- افزایش حجم جدول Session ها

جدول Session ها یک جدول اتوماتیک است. به این معنی که محتویات آن به صورت خودکار ایجاد و حذف می‌شود. چنانچه ورودی سایت شما زیاد باشد یا زمان نگهداری اطلاعات کاربران وارد شده به سایت طولانی باشد، حجم این جدول افزایش پیدا می‌کند.

در حالتی که ورودی سایت شما زیاد است. کار خاصی قابل انجام نیست. ولی اگر مدت زمان نگهداری Session به صورت اتفاقی یا عمدی طولانی تعریف شود، حجم این جدول افزایش پیدا می‌کند.

برای اصلاح این اشکال به بخش تنظیمات جوملا و سربرگ اصلی مراجعه کنید. سپس بررسی کنید که مقدار Session Lifetime روی عددی منطقی مثل ۶۰ تنظیم شده باشد.

تنظیم Session Lifetime روی ۶۰ به این معنی است که هر کاربر چنانچه در فاصله‌ای بیش از ۶۰ دقیقه به سایت سربزند، مانند این است که یک کاربر جدید است و کمتر از این مدت، در سایت شناخته شده باقی می‌ماند.


۳- افزایش حجم جدول Advanced Search

جوملا برای افزایش سرعت جستجو داخل متن‌های شما، هر محتوای وارد شده را به صورت کلمه به کلمه در جداولی فرعی ذخیره می‌کند تا در هنگام جستجو، پیدا کردن کلمات مورد نظر کاربر در کمترین زمان ممکن به انجام برسد. در صورتی که حجم مطالب سایت شما زیاد و متنوع باشد، حجم این جدول‌ها افزایش چشمگیری پیدا می‌کند.

اگر می‌خواهید از مزیت جستجوی سریع و کاهش بار سرور در هنگام جستجو بهرمند شوید، کار خاصی برای کاهش حجم این جدول‌ها نمی‌توان انچام داد.

ولی چنانچه جستجو از امکانات حاشیه‌ای سایت شما به حساب می‌آید، می‌توانید با مراجعه به منوی کامپوننت‌ها، سپس Advanced Search سپس کلیک روی دکمه‌ی Purge اطلاعات ذخیره شده در این جدول‌ها را حذف کنید.

  • امیرمسعود ایرانی

کاهش سرعت شارژ باطری گوشی موبایل با کابل‌های قدیمی

امیرمسعود ایرانی | چهارشنبه, ۱۸ شهریور ۱۳۹۴، ۰۱:۳۵ ق.ظ | ۰ نظر

شما نیز ممکن است حس کرده باشید که گوشی موبایل شما به تازگی با سرعت کمتری نسبت به گذشته شارژ می‌شود. یکی از علت‌های شایع برای این مشکل، قدیمی بودن کابل‌های شارژر است.


علت این مشکل آن است که کابل‌های USB حاوی پین‌های بسیار ریزی هستند که وظیفه‌ی انتقال انرژی الکتریکی از کابل به گوشی را بر عهده دارند. این پین‌ها به علت ظریف‌بودن، در استفاده‌ی طولانی مدت ممکن است آسیب ببینند و نتوانند اتصال مناسب و کافی را با گوشی برقرار کنند. در نتیجه جریان کافی برای شارژ گوشی در زمان مناسب تامین نخواهد شد و زمان شارژ به مراتب بیشتر از حد مورد انتظار خواهد بود.

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

محدود کردن دسترسی به برگه‌ها و نوشته‌های وردپرس توسط افزونه PageRestrict

امیرمسعود ایرانی | سه شنبه, ۱۰ شهریور ۱۳۹۴، ۰۷:۳۷ ب.ظ | ۱ نظر
در بسیاری از مواقع ممکن است بخواهید دسترسی به برگه‌ها یا نوشته‌های وردپرس را تنها برای کاربرانی که وارد سایت شده‌اند امکان‌پذیر کنید
برای انجام این کار روش‌های مختلف و افزونه‌های گوناگونی وجود دارد
در این نوشته از افزونه‌ی PageRestrict استفاده می‌کنیم. علت انتخاب این افزونه، ساده بودن و سبک بودن آن است.

ابتدا افزونه‌ی مورد نظر را از این نشانی دانلود و نصب کنید

این افزونه به دلیل سادگی امکانات کمی دارد و نام فیلدهای آن قابلیت تغییر در بخش مدیریت و فایل‌های ترجمه را ندارد
ولی خوشبختانه با استفاده از یک فیلتر موجود در افزونه، می‌توانیم نام فیلدها را به فارسی تغییر دهیم
برای انجام این کار قطعه کد زیر را در فایل functions.php قالب سایت خود قرار دهید.
بسته به نیاز ممکن است بخواهید نام فیلدها را نیز تغییر دهید.

add_filter( 'pr_page_content', 'amib_pr_content' );

function amib_pr_content( $content ) {
	$content = str_replace( 'Username', 'نام کاربری', $content );
	$content = str_replace( 'Password', 'گذرواژه', $content );
	$content = str_replace( 'Log In', 'ورود به سایت', $content );
	$content = str_replace( ' Remember me', ' مرا به خاطر بسپار', $content );
	$content = str_replace( 'Lost your password?', 'رمز خود را فراموش کردید؟', $content );
	
	return $content;
}
همان گونه که گفته شد. این افزونه بسیار کوچک و ساده است.
برای استفاده در پروژه‌های بزرگتر و تخصصی‌تر می‌بایست از افزونه‌هایی با امکانات و توانایی‌های بیشتر استفاده کنید
  • امیرمسعود ایرانی