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

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

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

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

۱۰ مطلب با موضوع «joomla» ثبت شده است

پاکسازی ویروس از سایت‌های طراحی شده با وردپرس و جوملا

امیرمسعود ایرانی | سه شنبه, ۱۴ فروردين ۱۳۹۷، ۰۶:۳۲ ب.ظ | ۰ نظر

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

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

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

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

اگر سایت شما به ویروس آلوده شده است و در هنگام باز شدن به سایت‌های دیگر هدایت می‌شود یا پیام‌های ناخواسته در سایت خود مشاهده می‌کنید یا گوگل پیام سایت‌های هک شده را در آن نشان می‌دهد، لازم است تا از متخصصین خبره برای پاکسازی سایت خود کمک بخواهید

برای مشاوره و کسب اطلاعات بیشتر با ایمیل بنده در تماس باشید: amibct در gmail.com

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

خطای Cannot write to log file در جوملا

امیرمسعود ایرانی | پنجشنبه, ۲۸ ارديبهشت ۱۳۹۶، ۱۱:۰۵ ق.ظ | ۰ نظر
جوملا در هنگام انجام برخی از فعالیت‌ها مانند به‌روزرسانی، اطلاعاتی را در فایلlog ذخیره می‌کند.
مسیر قرارگیری فایل log جوملا در configuration.php ذخیره شده است و اگر این مسیر نادرست باشد، در هنگامی که نیاز به نوشتن اطلاعات در این فایل باشد با پیام خطای Cannot write to log file مواجه خواهید شد.
برای رفع مشکل، وارد پنل هاست یا FTP شوید و فایل configuration.php را ویرایش کنید.
فایل را برای عبارت public $log_path جستجو کنید و مقدار مقابل آن را به صورت دقیق با نشانی شاخه‌ی log روی سرور جاگذاری نمایید.
برای یافتن مسیر کامل به شاخه‌ی log در cPanel مقدار مقابل Home Directory را یادداشت نمایید.
برای مثال این مقدار ممکن است مشابه عبارت زیر باشد:
/home1/amib
اکنون ادامه‌ی این مسیر را با نشانی کامل فایل log مانند زیر تکمیل نمایید و آن را مقابل log_path در configuration.php قرار دهید:
/home1/amib/public_html/administrator/logs
علاوه بر امکان ویرایش فایل configuration.php، می‌توانید به بخش Global Configuration در تنظیمات جوملا مراجعه کنید و مقدار  Path to Log Folder را با عبارت فوق جایگزین نمایید
  • امیرمسعود ایرانی

رفع مشکل ترجمه‌ها در نسخه جوملا 3.7

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

آخرین به روزرسانی جوملا تغییراتی در سیستم ترجمه‌ی خود ایجاد کرده است که طبق آن برای خواندن فایل‌های ترجمه از دستور پیش‌فرض php با نام parse_ini_file استفاده می‌نماید.

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

برای رفع این مشکل به صورت موقتی لازم است تا فایل

libraries/joomla/language/language.php

را ویرایش کنید و در خط ۸۳۳ عبارت

$strings = @parse_ini_file($filename);
را با عبارت زیر جایگزین نمایید.
$strings = FOFUtilsIniParser::parse_ini_file($filename, true);
تا زمانی که این اشکال در هسته‌ی جوملا اصلاح نشود، پس از هر به روزرسانی لازم است تا تغییر فوق را به صورت دستی اعمال نمایید.

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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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

فعال کردن نشانی‌های seo به زبان فارسی در جوملا

امیرمسعود ایرانی | يكشنبه, ۱۴ دی ۱۳۹۳، ۱۲:۴۴ ب.ظ | ۰ نظر

نشانی‌های seo friendly در جوملا به صورت پیش‌فرض غیرفعال هستند. با انجام دو تنظیم می‌توانید نشانی صفحات خود را به صورت فارسی درج کنید تا از مزایای بهینه‌سازی موتورجستجو در urlها بهره‌مند شوید

برای انجام این کار مراحل زیر را دنبال کنید

در قسمت مدیریت جوملا روی منوی «سیستم» و سپس «تنظیمات کلی» کلیک کنید

در سربرگ «سایت» دو گزینه‌ی «آدرس های بهینه برای موتورهای جستجو» و «نام مستعار یونیکد» را فعال کنید تا این قابلیت در سایت شما فعال شود.

پس از فعال‌سازی این گزینه، نشانی‌های SEO Friendly در منوها نیز باید بازنویسی شوند تا مطابق خواسته‌ی شما به نمایش درآیند.

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


سئو چیست؟

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

وردپرس یا جوملا

امیرمسعود ایرانی | يكشنبه, ۹ شهریور ۱۳۹۳، ۱۱:۱۸ ق.ظ | ۱ نظر

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

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

تفاوت‌های وردپرس و جوملا

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

برای مثال می‌توان یک صفحه‌ی اصلی با موضوع اخبار درج شده در سایت به وجود آورد و در بخش‌های پایین و بالای صفحه، ماژول‌هایی با موضوع‌های تبلیغات، فایل‌های دانلودی، منوها و ... را درج کرد.

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

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

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

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

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

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

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

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

نصب و راه‌اندازی وردپرس بسیار ساده است. در کمتر از پنج دقیقه می‌توان یک سایت وردپرسی قابل استفاده را نصب و راه‌اندازی و استفاده کرد. ولی یک سایت جوملا به تنظیمات، تغییرات و سفارشی‌سازی‌های بیشتری نیازمند است.

وردپرس از نظر پایداری و امنیت در شرایط بهتری به سر می‌برد. استفاده‌ی بدون دقت از جوملا یا برخی از افزونه‌های آن می‌تواند امنیت سایت شما را در خطر بیندازد.

نتیجه‌گیری

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


طراحی سایت با جوملا

طراحی سایت با وردپرس

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

انتخاب بین اوپن‌کارت و پرستاشاپ

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

- این یک مقایسه‌ی تجربی است نه علمی -


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


امکانات

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


بانک افزونه‌ها

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

افزونه‌های خوب و مهم موجود در سایت پرستاشاپ و اوپن‌کارت عمدتا تجاری هستند. قیمت افزونه‌های پرستاشاپ به طور تقریبی حدود ۷۰-۸۰ دلار است در حالی که افزونه‌های اوپن‌کارت به طور متوسط ۲۰ دلار قیمت دارند.

ظاهرا کنترل تیم توسعه روی افزونه‌های پرستاشاپ بسیار بهتر است. به همین دلیل، کیفیت و اطمینان به افزونه‌های پرستاشاپ بالاتر به نظر می‌رسد.


توسعه‌ی افزونه‌های جدید

در شکل توسعه‌ی افزونه‌های جدید، اوپن‌کارت یک فاجعه است. برای اضافه کردن یک افزونه‌ی جدید، باید چندین فایل را در شاخه‌های مختلف و پیش‌فرض اوپن‌کارت کپی کنید ! برای تغییر دادن کارایی‌های پیش‌فرض هم دو راه دارید. یا تغییر فایل‌های اصلی ! یا استفاده از افزونه‌ی VQMod که خود یک فاجعه‌ی دیگر است کمک بگیرید.

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

فکر می‌کنم عبارت «فاجعه» به خوبی وضعیت اوپن‌کارت را شرح ندهد، برای انتقال بهتر حس موجود از عبارت «هرکی‌هرکی» هم می‌شود استفاده کرد :)


بهینه‌سازی موتور جستجو( SEO )

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


کارایی

با توجه به کیفیت کدنویسی، به نظر می‌رسد اوپن‌کارت در حجم بالای تراکنش‌ها آسیب‌پذیر باشد.


سیستم قالب‌نویسی

شکل توسعه‌ی قالب در هر دو محصول شباهت‌های زیادی به یکدیگر دارد. جز اینکه در پرستاشاپ از Smarty برای توسعه‌ی قالب کمک گرفته می‌شود. این ویژگی می‌تواند سرعت کدنویسی و قابلیت توسعه‌پذیری قالب‌ها را افزایش دهد.


بخش مدیریت

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


مستندات

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


یکپارچه‌سازی

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


-------------------------------


نتیجه‌گیری

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

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

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

تغییر رمز مدیریت جوملا با استفاده از phpMyAdmin

امیرمسعود ایرانی | يكشنبه, ۱ دی ۱۳۹۲، ۰۱:۳۰ ق.ظ | ۰ نظر

تغییر رمز جوملا از طریق دیتابیس


برای تغییر رمز کاربر مدیر سیستم در جوملا، به phpMyadmin مراجعه کنید
جدول users را بیابید و آن را باز کنید
در فهرست مقادیر، مقابل کاربری که می‌خواهید رمز آن تغییر کند، روی ستون password دوبار کلیک کنید تا مقدارش ویرایش شود.
در نگارش‌های قدیمی phpMyadmin لازم است تا روی گزینه‌ی Change کلیک کنید
سپس مقدار موجود را با عبارت
d2064d358136996bd22421584a7cb33e:trd7TvKHx6dMeoMmBVxYmg0vuXEA4199
جایگزین کنید

هم‌اکنون می‌توانید با نام کاربری مدیر و رمز «secret» وارد سیستم شوید
فراموش نکنید که نخستین کاری که پس از ورود به سیستم باید انجام دهید، تغییر رمز به یک عبارت ایمن است
  • امیرمسعود ایرانی

رفع خطای «Strict Standards: Non-static method ... should not be called statically» در جوملا

امیرمسعود ایرانی | يكشنبه, ۱ دی ۱۳۹۲، ۰۱:۱۱ ق.ظ | ۲ نظر
در هنگام استفاده از نگارش‌های قدیمی جوملا با ویرایش جدید php این پیام خطا در صفحات سایت مشاهده می‌شود
برای رفع این مشکل، می‌بایست دو تنظیم در فایل php.ini اعمال شود
نخست: error_reporting را بیابید و مقدار آن را به «E_ALL & ~E_NOTICE» تغییر دهید
سپس متغیر display_errors را پیدا کنید و مقابل آن عبارت «Off» را جایگزین «On» کنید

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

طراحی سایت با جوملا

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

توقف نصب جوملا ۳ در مرحله‌ی «ایجاد جدول های پایگاه داده»

امیرمسعود ایرانی | جمعه, ۲۹ آذر ۱۳۹۲، ۰۹:۵۹ ب.ظ | ۰ نظر

اگر در هنگام نصب جوملا و هنگام نمایش پیام «ایجاد جدول های پایگاه داده» با زبان فارسی و پیام «Creating database tables» در زبان انگلیسی، نصب متوقف می‌شود، کافی است فایل تنظیمات php به نام php.ini را باز کنید، عبارت «max_execution_time» را بیابید و مقدار مقابل آن را که احتمالا روی عدد ۳۰ تنظیم شده به یک عدد بزرگتر مثل ۹۰ تغییر دهید.

علت رویداد این مشکل، توقف اجرای فایل php پس از ۳۰ ثانیه است. در نتیجه، نصب پایگاه داده نیمه‌کاره باقی می‌ماند و نصب به پایان نمی‌رسد

چنانچه از نرم‌افزار Wamp برای نصب جوملا استفاده می‌کنید، می‌توانید روی آیکون برنامه در کنار ساعت ویندوز کلیک کنید، سپس منوی PHP را باز کنید و گزینه‌ی php.ini را انتخاب کنید.


طراحی سایت با جوملا

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