ماه: <span>اکتبر 2019</span>

مشکل در نمایش اطلاعات فارسی به صورت علامت سوال از پایگاه داده MySQL در PHP

مشکل در نمایش اطلاعات فارسی به صورت علامت سوال از پایگاه داده MySQL در PHP

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

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

از اونجا که غالباً هر کسی در بخشی از پروسه انجام کار مشکل داره من به ترتیب مراحل اطمینان از درستی انجام کار را در چند شماره توضیح میدم :

۱ – زمانی که پایگاه داده را روی سیستم خودتون نصب میکنید اطمینان حاصل کنید که در مراحل نصب ، پشتیبانی از utf8 را در تنظیمات mysql انجام میدین. روی هاست ها میشه ۹۹ درصد مطمئن بود که از utf8 روی mysql پشتیبانی میشه.

۲ – زمانی که جدول را ایجاد میکنید بهتره برای جلوگیری از مشکلات آتی و فارغ از اینکه Charset پیش‌فرض و Colltation پیش‌فرض در زمان نصب MySQL چی بوده خودتون جداول را با Charset از نوع utf8 و Collation از نوع utf8_persian_ci ایجاد کنید.

توجه: اگه این دو مورد خیلی براتون ملموس نیست اهمیتی نداره ! اگه توی phpmyadmin یا هر برنامه مدیریت پایگاه داده‌ای که استفاده میکنید میتونید فارسی بنویسین و ذخیره کنین و نمایش بگیرین پس کلاً با utf8 مشکل ندارین مگه جاهای خاص که ربطی به موضوع این پست نداره و اگه مشکل دارین با پشتیبانی شرکت میزبان وب خودتون تماس بگیرین.

۳ – حتماً اطمینان حاصل کنید که charset صفحه html را توی تگ meta برابر با utf8 قرار بدین :
در html4 و xhtml

 

در html5

 

۴ – اگه از کتابخونه mysql توی php استفاده میکنید حتماً بعد از mysql_connect (دقیقاً بعدش نه اینکه بعد از select گرفتن این کار را انجام بدین !!!) mysql_set_charset را اجرا کنین :

$link = mysql_connect("server_ip_address","mysql_user_name","mysql_pass",true);

mysql_set_charset('utf8',$link);

 

توجه: ممکنه خیلی جاها ببینید گفته باشن این دو query را بعد از connect اجرا کنین :

mysql_query("SET NAMES 'utf8'",$link);

mysql_query("SET character_set_connection = 'utf8'",$link);

 

اما تابع mysql_set_charset بهتر و بهینه تره چون باعث میشه زمان استفاده از تابع mysql_real_escape_string که برای جلوگیری از حملات SQL Injection خیلی مهم هست کاراکتر های یونیکد به درستی escape بشن که در حالت پیشنهادی دوم این اتفاق نمیفته و شما در مقابل برخی حملات SQL Injection در خطر قرار میگیرین !

۵ – اگه از کتابخونه mysqli استفاده میکنید بعد از connect متد set_charset را صدا بزنید :

$db->set_charset("utf8");

 

۶ – اگه از کتابخونه pdo استفاده میکنید زمان connect باید charset را توی dsn مشخص کنید:

$link = new PDO("mysql:host=localhost;dbname=DB;charset=utf8");

 

توجه: کلاً بهتره کتابخونه mysql را بی‌خیال بشین چون دیگه توی نسخه های جدید php پشتیبانی نمیشه و کلاً حذف شده. اما در مورد mysqli و pdo خیلی سلیقه‌ای هست که توصیه میکنم اگه از mysql استفاده میکنید و قصد جایگزینیش با mssql و پایگاه های دیگه را ندارید حتماً از mysqli استفاده کنید چون سریعتر از PDO هست و برای پایگاه داده mysql بهینه شده.

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

 

 

 

 

 

 

 

 

 

 

موفق باشین.

ست کردن ایمیل سی پنل بر روی گوشی

خب اول باید برید تو قسمت email acconts  سی پنل در این قسمت ایمبا هایی که ساخته اید رو نشون میده جلوی هر ایمیل هم سه تا دکمه قرار داره که برای این کار شما باید connect devise  رو انتخاب کنید یه سری اطلاعات بهتون میده

خب حالا وارد گوشی خود بشید و به بخش ساخت اکانت جدید در برنامه ایمیل خود بشدی من از اپ gmail  استفاده میکنم
ی گزینه هست به نام  other (IMAP)  وارد این بخش بشید و ایمبل مورد نظر رو وارد کنید بعد از زدن next  صفحه جدیدی باز میشه که از شما پسورد و IMAP server  و  port  و security type  می خواد که این اطلاعات از سی پنل خود وردارید و وارد کنید و next  را بزنید این دفعه از شما SMTP رو میخواد که باز هم اطلاعات در سی پنل وجود دارد بعد از زدن next  یک نام انتخاب کرده و اتصال صورت می گیرد.

انتقال وردپرس از هاستی به هاست دیگر

انتقال وردپرس از هاستی به هاست دیگر

مرحله اول : ابتدا وارد هاست دامنه اصلی میرویم و تمام فایل های داخل پوشه public_html را دانلود میکنیم (ابتدا باید تمام فایل ها را سلکت کرد و به حالت زیپ دراورد در سی پنل باید راست کلیک کرد compress را زده و صبر میکنیم تا فایل زیپ ساخته شود و سپس دانلود میکنیم و در هاست دوم که قصد راه اندازی مشابه سایت اصلی را داریم پیست میکنیم ولی در دایرکت ادمین کار یکم پیچیده میشه که شما باید فایل های درون public-html را سلکت کرده از قسمت انتها add to clipboard را زده و در قسمت انتهایی صفحه یک نام انتخاب کرده و از قسممت دراپ دان .zip رو انتخاب میکنیم و create را می فشاریم .)

سی پنل :

 

دایرکت ادمین :

 

مرحله دوم :  وارد phpmyadmin  میشویم در این قسمت دیتابیس خود را انتخاب کرده و export  را میزنیم و در صفحه باز شده GO  را کلیک میکنیم .

مرحله سوم :حال به هاست دامنه جدید میرویم فایل اصلی که با پسوند زیپ دانلود کرده ایم را داخل public-html  قرار میدهیم و از حالت فشرده خارج میکنیم بعد از خارج شدن تمام فایل ها  ، فایل زیپ را پاک کرده

مرحله چهارم وارد phpmyadmin  هاست جدید شده و import را انتخاب کرده در صفحه باز شده با استفاده از باتون  browse  فایل دیتابیس خود را انتخاب میکنیم  و  Go  را میزنیم .

 

مرحله پنجم (مهم ) :  بعد از import  دیتابیس باید وارد جدول wp-options  شوید مقدار دو ستون را تغییر داده و نام دامنه جدید را قرار میدهید.

 

 

بقیه تغییرات هم از پیشخوان وردپرس انجام دهید .

درس عبرت : من بعد از این انتقال به خطایی 404  برخورد میکردم برای رفع این مشکل باید وارد تنظیمات – پیوند های یکتا شوید تیک نام نوشته رابزنید و سپس ذخیره کنید

لازم به ذکر است از یک سری نرم افزارها مانند filezilla  و …  میتوان استفاده کرد اما دردسر های خودشو داره من با این کار راخت تر هستم
نرم افزار  WinSCP هم هست که نیاز با دانلود فایل از هاست اصلی نیست و با دادن ی سری اطلاعات مانند ای پی و پسورد میتوان دو هاست را به هم اتصال داد و فایل ها را کپی کرد .

قرار دادن ایتم برای ثبت اخبار سایت

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

add_action( 'init', 'work_register' );   

function work_register() {   

    $labels = array( 
        'name' => _x('Work', 'post type general name'), 
        'singular_name' => _x('Work Item', 'post type singular name'), 
        'add_new' => _x('Add New', 'work item'), 
        'add_new_item' => __('Add New Work Item'), 
        'edit_item' => __('Edit Work Item'), 
        'new_item' => __('New Work Item'), 

        'view_item' => __('View Work Item'), 
        'search_items' => __('Search Work'), 
        'not_found' => __('Nothing found'), 
        'not_found_in_trash' => __('Nothing found in Trash'), 
        'parent_item_colon' => '' 
    );   

    $args = array( 
        'labels' => $labels, 
        'public' => true, 
        'publicly_queryable' => true, 
        'show_ui' => true, 
        'query_var' => true, 
        'menu_icon' => get_stylesheet_directory_uri() . '/article16.png', 
        'rewrite' => array( 'slug' => 'work', 'with_front'=> false ), 
        'capability_type' => 'post', 
        'hierarchical' => true,
        'has_archive' => true,  
        'menu_position' => null, 
        'supports' => array('title','editor','thumbnail') 
    );   

    register_post_type( 'work' , $args ); 

    register_taxonomy( 'categories', array('work'), array(
        'hierarchical' => true, 
        'label' => 'Categories', 
        'singular_label' => 'Category', 
        'rewrite' => array( 'slug' => 'categories', 'with_front'=> false )
        )
    );

    register_taxonomy_for_object_type( 'categories', 'work' ); // Better be safe than sorry
}

اضافه کردن محصول جدید در وکامرس

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

 

عکس بالا رو نگاه کنید و متناسب با اون اطلاعات رو وارد کنید
تو قسمت  A نام محصول رو وارد کنید
تو قسمت B  توضیحاتی در مورد محصول قرار بدید (این توضیحات در پایین محصول نمایش داده میشود)

تو قسمت C دسته بندی محصول رو تیک بزنید (اگه نبود با افزودن دسته ی دسته بندی جدید بسازید )

قسمت  D  قیمت محصول رو وارد کنید و در قسمت E قیمت تخفیف خورده
قسمت F هم اطلاعت اصلی محصول را وارد کنید (این قسمت در جلوی محصول نمایش داده میشود )
قسمت G برند محصول رو تیک بزنید (اگه نبود با افزودن برند برند جدیدی ایجاد کنید )
قسمت H عکس محصول رو قرار بدید (متناسب با قالب خود باید انتخاب کنید ولی اگه 450در450 پیکسل کل اندازه عکس باشه و خود عکس محصول 300در300 پیکسل باشه معمولا مناسبه )میدونم نفهمیدید ولی دوسه تا عکس که بزارین خودتون متوجه میشید.
قسمت L هم عکسای متفاوت تری بزارید گالری بسازید .

مشاهده حجم اشغال شده در WHM

خب خب بریم یکم در مورد مبحث باحال ssh  صحبت کنیم

شما وقتی ی سرور رو دراختیار داری امکان داره نتونید به میزان حجم اشغالی بر روی اون سرور دسترسی داشته باشید برای این کار بهترین کار استفاده از دستورات ssh برویم

خب طبق معمول نرم افزار putty  رو باز کنید و وارد سرور خودتون بشید

خب دستور زیر رو کپی کنید

df -h

 

باز پیست کردن دستور بالا ی سری اطلاعات به شما نمایش داده میشه که از روی اون متوجه فضای سرور حود میشید مثل تصویر زیر

کادر قرمز به ترتیب مقدار حافظه سرور ، مقدار استفاده شده ، مقدار باقیمانده رو نمایش میدهد

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

 

find /backup/ -type f -exec du -Sh {} + | sort -rh | head -n 100

 

 

با استفاده از دستور بالا تمام بکاپ های گرفته شده و آدری آن ها را برای شما نمایش میده و برای حذف یک بکاپ ی که به آن احتیاجی ندارد ابتدا rm را نوشته و سپس آدرس بکاپ را مینویسید بعد از آن از شما سوال میپرسه که باید y را تایپ کرده و enter را فشار دهید .

rm /backup/monthly/2019-11-15/accounts/codnvis.tar.gz

 

 

نقشه ایران برای وردپرس

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

[freehtml5map id=”0″]

امتیاز دهی ستاره ای برای نوشته ها در وردپرس با افزونه kk Star Ratings

امتیاز دهی ستاره ای برای نوشته ها در وردپرس با افزونه kk Star Ratings

یکی از مهم ترین قسمت هایی که می تواند ذهن ما را به عنوان یک وبمستر مشغول …

تصویر شاخص، تصویر محصول و گالری محصول چه تفاوتی باهم دارند؟!

تصویر شاخص، تصویر محصول و گالری محصول چه تفاوتی باهم دارند؟!

آیا می دانستید که عکس ها، قدرتمند ترین ابزارها برای بازاریابی و فروش …

بهترین افزونه رایگان فرم تماس وردپرس

بهترین افزونه رایگان فرم تماس وردپرس

برای هر سایت وردپرس لازم است که یک افزونه سازنده فرم داشته باشد. صرف …