آموزش php (وبلاگ یک پی اچ پی کار)

آموزش زبان برنامه نویسی php , html , css , تجربیات یک برنامه نویس

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

خطای SSL در لاراول برای کلاس Storage موقع اپلود تصاویر روی سرور Object Storage از کامپیوتر لوکال

زمانیکه  در یک پروژه لاراولی قصد ذخیره تصاویر یا فایل های دیگه تون رو بر روی مخازن Object Storage دارید، معمولا روی سیستم لوکال به خطای زیر بر خورد خواهید کرد :
 

Unable to write file at location: images/jnfbQnHpvfnaFjsdSTEV3JSHrlJ84QVELvnYn0xL.webp. Error executing \"PutObject\" on \"https://domain.storage.space/images/jnfbQnHpvfnaFjsdSTEV3JSHrlJ84QVELvnYn0xL.webp\"; AWS HTTP error: cURL error 60: SSL certificate problem: unable to get local issuer certificate (see https://curl.haxx.se/libcurl/c/libcurl-errors.html)

 

این خطا بر میگرده به نحوه اتصال کامپیوتر شما با سرور ذخیره ساز تصاویر

داره میگه که روی کامپیوتر شما SSL برای دامنه تون نصب نشده

یه راهکارش اینه که SSL روی سیستم لوکال تون نصب کنید که آموزش هاش توی اینترنت وجود داره

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

 

وارد فایل زیر بشید :

config/filesystems.php

 

تنظیمات زیر رو یدا کنید :

 

        's3' => [

            'driver' => 's3',

            'key' => env('AWS_ACCESS_KEY_ID'),

            'secret' => env('AWS_SECRET_ACCESS_KEY'),

            'region' => env('AWS_DEFAULT_REGION'),

            'bucket' => env('AWS_BUCKET'),

            'url' => env('AWS_URL'),

            'endpoint' => env('AWS_ENDPOINT'),

            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),

            'throw' => false,

        ],

 

 

تنظیم زیر رو اضافه کنیم:

 

        'http' => [
            'verify' => false
        ],

 

در نهایت میشه این :

 

 

        's3' => [

            'driver' => 's3',

            'key' => env('AWS_ACCESS_KEY_ID'),

            'secret' => env('AWS_SECRET_ACCESS_KEY'),

            'region' => env('AWS_DEFAULT_REGION'),

            'bucket' => env('AWS_BUCKET'),

            'url' => env('AWS_URL'),

            'endpoint' => env('AWS_ENDPOINT'),

            'use_path_style_endpoint' => env('AWS_USE_PATH_STYLE_ENDPOINT', false),

            'throw' => false,

            'http' => [

                'verify' => false

            ],

        ],

 

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

php artisan  config:clear

 

۰۴ دی ۰۲ ، ۱۸:۳۴ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

مشکل عدم نمایش منوی ومپ سرور

یه مشکلی که خیلی ها باهاش مواجه میشن مخصوصا روی ویندوز نسخه 11 که بر میگرده به فرمت ساعت و تاریخ و تنظیمات region در ویندوز اینه که منوی try ومپ سرور اصلا نشون داده نمی شه ، طوری که آیکن ومپ سرور کنار ساعت سیستم نشون داده میشه ولی هرچی روش کلیک میکنی یا راست کلیک میکنی منوهاش باز نمیشن
برای حل این مشکل هم پیشنهاد میکنم Region Setting رو روی انگلیسی تنظیم کنید و گزینه unicode UTF-8 رو هم فعال کنید.

 

اگه با این تغییر مشکل تون حل نشد ، دستور زیر رو به فایل refresh.php که درون پوشه scripts وجود داره اضافه کنید و دوباره ومپ سرور رو اجرا کنید تا بطور کامل این مشکل برطرف بشه

پس وارد مسیر زیر بشید :

C:\wamp64\scripts

در اینجا فایل refresh.php رو پیدا کنید و با یک ادیتور بازش کنید و عبارت زیر رو پیدا کنید :
$WampStartOnOri = $wampConf['wampStartDate'];

بعد از این خط کد ، دستور زیر رو اضافه کنید و فایل رو ذخیره کنید:
$WampStartOnOri = str_replace(['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'], ['0','1','2','3','4','5','6','7','8','9'], $WampStartOnOri);


به این صورت :



 

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

امیدوارم موفق باشید.

 

مهدی حسامی

۰۱ آبان ۰۲ ، ۲۰:۲۷ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

نکاتی در خصوص نصب و اجرای صحیح Wampserver

سلام دوستان عزیز، امیدوارم حال تون عالی باشه، اگه شماهم از نرم افزار Wampserver (در اینجا نسخه آخر یعنی 3.3.0 مد نظرمون هست) استفاده می کنید ، ممکنه موقع نصب و بعد از نصب موقع اجرای برنامه به مشکلاتی  برخورد کنید که منم برخورد کردم و اومدم این مطلب رو بنویسم که شما دیگه برای حل این مشکلات زمان زیادی صرف نکنید و بدونید دلیل این مشکلات چیه و چطور باید حلش کنید.

حب بریم سراغ اصل مطلب:

یه مشکلی که بچه ها معمولا دارن نصب نکردن پیش نیاز های ومپ سرور قبل از نصبش هست.حالا این پیش نیاز هارو از کجا باید دانلود کنیم؟! در جواب باید بگم که اگه موفع نصب ومپ سرور دقت داشته باشید توی یکی از مراحل نصب در Wizard نصب کننده ، خودش بهتون توضیح داده و اتفاقا لینک های دانلود رو از سایت مرجع مایکروسافت قرار داده و میتونید خیلی راحت همه اون پیش نیازرهارو اول دانلود کنید و نصب کنید بعد بیایید ومپ سرور رو نصب کنید.
 منظورم این صفحه هستش:

پیش نیاز های ومپ سرور

 

مشکل دیگه ای که معمولا دوستان باهاش مواجه میشن ، نمایش پیام هشدار متغیر محیطی php هست که عکسشو این زیر میزارم :

 

 

این مشکل هم بر میگرده به اینکه شما در ویندوز خودتون و در قسمت تعریف متغییر های محیطی ، مسیری رو برای php تعریف کردید که Wampserver با اینکار مشکل داره و میگه نباید اینکار بکنید و خودش هم گفته که اگه ابن کار رو بکنید من به مشکل می خورم و برخی عملکردهام درست کار نخواهند کرد. پس راهکار چیه ؟! حذف مسیر php تعریف شده از لیست متغییر های محیطی ویندوز هست.

منظورم اینجاست :

متغییرهای میحطی ویندوز

 

بچه ها اگه این متغییر رو از لیست متغییرهای محیطی ویندوز حذف نکنید خیلی از امکانات ومپ سرور کار نخواهد کرد (مثلا اگه بخواین نسخه php رو عوض کنید، عوض نخواهد شد)

 

یه مشکل دیگه ای هم که خیلی ها باهاش مواجه میشن مخصوصا روی ویندوز نسخه 11 که بر میگرده به فرمت ساعت و تاریخ و تنظیمات region در ویندوز

این باعث میشه اصلا منوی try ومپ سرور اصلا نشون داده نشه ، طوری که آیکن ومپ سرور کنار ساعت سیستم نشون داده میشه ولی هرچی روش کلیک میکنی یا راست کلیک میکنی منوهاش باز نمیشن
برای حل این مشکل هم پیشنهاد میکنم Region Setting رو روی انگلیسی تنظیم کنید و گزینه unicode UTF-8 رو هم فعال کنید.

 

اگه با این تغییر مشکل تون حل نشد ، دستور زیر رو به فایل refresh.php که درون پوشه scripts وجود داره اضافه کنید و دوباره ومپ سرور رو اجرا کنید.

پس وارد مسیر زیر بشید :

C:\wamp64\scripts

در اینجا فایل refresh.php باز کنید و عبارت زیر رو پیدا کنید :
$WampStartOnOri = $wampConf['wampStartDate'];

بعد از این خط کد ، دستور زیر رو اضافه کنید و فایل رو ذخیره کنید:
$WampStartOnOri = str_replace(['۰','۱','۲','۳','۴','۵','۶','۷','۸','۹'], ['0','1','2','3','4','5','6','7','8','9'], $WampStartOnOri);


به این صورت :



 

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

امیدوارم موفق باشید.

 

مهدی حسامی

۲۱ شهریور ۰۲ ، ۱۰:۰۷ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

ایجاد میانبر از پوشه storage لاراول در هاست اشتراکی

سلام برای ایجاد میانبر از پوشه storage لاراول در هاست اشتراکی که دسترسی به ترمینال را ندارید و همچنین محتوای پوشه public در مسیر public_html و بقیه فایل های لاراول در روت سرور قرار دارد از کران جاب زیر استفاده کنید و مسیر هارو طبق هاست خودتون اصلاح کنید.

 

ln -s /home/my_domain/app_path/storage/app/public /home/my_domain/public_html/storage

۲۵ مرداد ۰۱ ، ۱۴:۱۲ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

ایجاد فولدر شورتکات در سیرورهای اشتراکی از طریق ترمینال

جهت ایجاد یک شورتکات از یک فولدر در سرورهای اشتراکی با استفاده از ترمینال موجود در سی پنل ، دستور زیر رو وارد نمائید:

ln -s /home/username/laravel/storage/app/public /home/username/public_html/storage

۲۵ فروردين ۰۱ ، ۱۷:۵۵ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

تغییر مقدار درون input برای عناصر بایند شده در livewire با جی کوئری یا جاوا اسکریپت

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

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

 

به این شکل :

 

document.getElementById("name").value = 'Mehdi Hesami';
document.getElementById("name").dispatchEvent(new Event('input'));

 

۰۹ اسفند ۰۰ ، ۱۶:۴۴ ۱ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

نحوه تغییر وضعیت تیک چک باکسهای MdBootstrap با جی کوئری

برای تغییر تیک چک باکس با جی کوئری بصورت داینامیک از کدهای زیر استفاده کنید :

 

 

//set all check boxes to checked
$("input:checkbox").prop("checked", true);

 

//check to see if all checkboxes are checked as boolean
$("input:checkbox").prop("checked");

 

 

//set all checkboxes to not checked
$("input:checkbox").prop("checked", false);

۲۸ آذر ۹۹ ، ۱۱:۵۶ ۱ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

رمزنگاری و رمزگشایی اطلاعات در php

<?php 
  
// Store a string into the variable which 
// need to be Encrypted 
$simple_string = "Welcome to GeeksforGeeks\n"; 
  
// Display the original string 
echo "Original String: " . $simple_string; 
  
// Store the cipher method 
$ciphering = "AES-128-CTR"; 
  
// Use OpenSSl Encryption method 
$iv_length = openssl_cipher_iv_length($ciphering); 
$options = 0; 
  
// Non-NULL Initialization Vector for encryption 
$encryption_iv = '1234567891011121'; 
  
// Store the encryption key 
$encryption_key = "GeeksforGeeks"; 
  
// Use openssl_encrypt() function to encrypt the data 
$encryption = openssl_encrypt($simple_string, $ciphering, 
            $encryption_key, $options, $encryption_iv); 
  
// Display the encrypted string 
echo "Encrypted String: " . $encryption . "\n"; 
  
// Non-NULL Initialization Vector for decryption 
$decryption_iv = '1234567891011121'; 
  
// Store the decryption key 
$decryption_key = "GeeksforGeeks"; 
  
// Use openssl_decrypt() function to decrypt the data 
$decryption=openssl_decrypt ($encryption, $ciphering,  
        $decryption_key, $options, $decryption_iv); 
  
// Display the decrypted string 
echo "Decrypted String: " . $decryption; 
  
?> 

۲۵ فروردين ۹۹ ، ۱۴:۳۹ ۰ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی