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

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

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

رمزگذاری فایلهای پروژه php

یکی از دغدغه های برنامه نویسان php کپی برداری از پروژه هایشان هست که وقتی سورس برنامه رو به مشتری شان ارائه میکنند ، مشتری می تواند براحتی از این سورس سو استفاده کنه و با کمی تغییرات برای خودش فروش کنه و برنامه نویس اصلی متضرر بشه

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

 

هزینه هر فایل php برابر است با :  15 هزار تومان

 

جهت اسفارش کار در تلگرام با من ارتباط داشته باشید

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

مشکل عدم اجرای دستور php artisan migrate در لاراول

مایگریشن در لاراول

شاید شما هم مثل من وقتی یه پروژه لاراولی رو دارید راه اندازی میکنید با مشکل عدم اجرای مایگریت ها مواجه بشید . منظورم اینه که وقتی میخواهید دستور زیر رو اجرا کنید ، کامپوزر به مشکل بر میخوره و یکسری خطاهایی رو به شما بده که من نمونه هایی رو در زیر آوردم :

 

دستوری که صحبت ازش داریم اینه :

php artisan migrate
 

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

 

خطا : 

 Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long;

max key length is 1000 bytes (SQL: alter table `users` add unique `users_email_unique`(`email`))

  at C:\wamp64\www\MyProjects\siblearn\vendor\laravel\framework\src\

Illuminate\Database\Connection.php: 664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1071 Specified key was too long; max key length is 1000 bytes")
      C:\wamp64\www\MyProjects\siblearn\vendor\laravel\framework\src\

Illuminate\Database\Connection.php : 458

  2   PDOStatement::execute()
      C:\wamp64\www\MyProjects\siblearn\vendor\laravel\framework\src\Illuminate\

Database\Connection.php : 458

  Please use the argument -v to see more details.

 

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

 

راهکار حل مشکل :

در پروژه لاراولی خودتون وارد فایل زیر شوید :

config/database.php

 

عبارت زیر رو پیدا کنید :

 

'engine' => null',
 
حال آنرا پاک کنید و بجای آن عبارت زیر را جایگزین کنید :
 
'engine' => 'InnoDB ROW_FORMAT=DYNAMIC',
 
حالا مجددا به محیط کامند لاین کامپوزر برگردید و دستور اجرای migration ها رو اجرا کنید که بصورت زیر میباشد :
 
php artisan migrate
 
 
۲۰ اسفند ۹۶ ، ۲۱:۰۴ ۴ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

احراز هویت مبتنی بر توکن در برنامه های تحت وب و وبسرویس ها

سشن و توکن و کوکی

سلام و عرض احترام دارم خدمت دوستان عزیز

در این مقاله قصد دارم در خصوص روشهای احراز هویت توضیحاتی را در حد مقدماتی خدمتتان عرض کنم

احراز هویت کاربران
احراز هویت در نرم افزارهای کامپیوتری به فرایندی جهت شناسایی کاربران برای دسترسی به بخش های مختلف نرم افزار گفته می شود. 
طی این فرایند در صورت تصدیق و تطبیق اطلاعات کاربر با اطلاعات قبلی موجود در سیستم، مجوز دسترسی به بخش های مختلف نرم افزار که برای عموم مخفی است صادر می گردد و کاربر احراز شده از آن پس می تواند برای مدت زمان مشخصی یا بصورت مادام العمر به سیستم دسترسی داشته باشد.
مدت زمان دسترسی کاربر بعد از عملیات احراز هویت و همچنین سطح دسترسی کاربر احراز شده بستگی به سیاست های تنظیمی مدیر سیستم دارد . لازم به ذکر است که وسیله شناسایی و احراز هویت در سیستم های مختلف کامپیوتری ، متفاوت بوده ولی اغلب به شکل  رمز عبور ،  ترکیب نام کاربری و رمز عبور ، کارت مغناطیسی ، شناسه توکن و ... در اختیار کاربران قرار داده می شود تا کاربر بتواند با استفاده از آن به سیستم دسترسی داشته باشد.
- احراز هویت بطور کلی در 2 مرحله اصلی انجام می شود :
 Authentication  : به مجموعه از فرایندهایی گفته می شود که بوسیله آن کاربر شناسایی می شود که چه کسی هست .
Authorization   :  به مجموعه ای از فرایندها گفته می شود که بعد از مرحله شناسایی انجام می گیرد و سطوح دسترسی کاربر مشخص می شود.
 
همانطور که در تعاریف این  2 مرحله مشخص هست ، سیستم قبل از هر کاری ، برای احراز هویت کاربر ابتدا باید شخص را تشخیص دهد و بفهمد که این شخص چه کسی میباشد که برای اینکار ما معمولا فرمهای لاگین را در سیستم طراحی می کنیم . در مرحله دوم که سیستم کاربر را تشخیص داد ، بایستی مشخص کند که این کاربر به چه بخش هایی حق دسترسی دارد.
 
اجازه دهید تا با یک مثال ساده موضوع را بیشتر شرح دهیم ، فرض کنید شما در مرورگر اینترنتی خودتان وارد یک وبسایت شده اید و فرم ورود کاربران را باز کرده اید ، در این فرم اطلاعات کاربری خودتان را وارد نموده و دکمه ورود را کلیک می کنید ، بعد از کلیک کردن روی دکمه ورود ، سیستم وارد عملیات احراز هویت خواهد شد.
به این صورت که ابتدا اطلاعات وارد شده شما با اطلاعات موجود در دیتابیس سیستم تطبیق داده می شود تا در صورت تصدیق و تطابق اطلاعات به شما اجازه ورود به سیستم داده شود .
با فرض اینکه اطلاعات وارده با اطلاعات موجود در سیستم منطبق بود ، شما بر اساس سطح دسترسی خود  وارد بخش های مخفی نرم افزار که قبل از احراز هویت قادر به مشاهده آنها نبودید خواهید شد.
 
حال که با کلیات این فرایند آشنا شدیم بیایید کمی هم وارد جزئیات و روش های فنی پیاده سازی شویم . تا اینجای کار ما صرفا بصورت اجمالی به شرح عملیات احراز هویت پرداختیم ولی نگفتیم که سیستم برای انجام این فرایند چطور عمل می کند.
برای اینکه توضیحات برای شما ملموس تر واقع شود ، ما فرض را همان وبسایت در نظر میگیریم که یک نرم افزار تحت وب محسوب می شود و به لحاظ تعدد کاربران ، احراز هویت یکی از مهم ترین بخش های این نوع نرم افزارها بشمار میرورد . 
ادامه مطلب...
۱۱ آذر ۹۶ ، ۱۳:۳۶ ۲ نظر موافقین ۰ مخالفین ۰
مهندس مهدی حسامی

تولید و ذخیره تاریخ و زمان یکتا و ذخیره در دیتابیس

سلام و عرض احترام خدمت همه دوستان

یه آموزش خیلی کوتاه ولی کاربردی میزارم که شاید برای بعضی از شما عزیزان جای سئوال باشه
شاید شماهم نیاز داشته باشید که در پروژه های خودتون از یکتا بودن تاریخ و زمان اطمینان حاصل کنید تا زمان های یکتایی را در دیتابیس ذخیره کنید ، برای این کار از الگوریتم زیر استفاده کنید که به زبان سی شارپ نوشتم ولی میتونید در زبانهای مختلف هم به همین شکل استفاده کنید :

 

                                    oldDate = mydate;
                                    do
                                    {
                                        mydate = DateTime.Now;
                                    }
                                    while (mydate.CompareTo(oldDate) == 0);

امیدوارم براتون مفید بوده باشه
ارادتمند شما مهدی حسامی
09192421865
وبلاگ آموزشی phpkar.blog.ir

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

مقابله با ویروس WannaCry

ویروس wannacry باج گیر است

سلام دوستان عزیز

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

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

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

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

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

در فایل PDF پیوست شده همین پست از وبلاگ phpkar.blog.ir راهکارهایی ارائه شده است که میتوانید بواسطه آن ، از ورود این ویروس به سیستم عامل خود تا حد زیادی در امان بمانید.

دریافت
عنوان: ویروس wannacry
حجم: 784 کیلوبایت
توضیحات: پیشگری از ویروس wannacry
 

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

ارادتمند شما  مهدی حسامی

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

راهنمای تنظیم گواهینامه SSL بر روی سایت

ssl

سلام دوستان عزیز
در این پست قصد دارم شما رو با نحوه نصب SSL بر روی دامنه خودتون آشنا کنم .
شاید اطلاعاتی در خصوص SSL داشته باشید ولی من هم یک توضیح اجمالی خدمتتون میدم و میریم سراغ بحث اصلی مون یعنی نحوه نصب و کانفیگ SSL بر روی دامنه در Cpanel که یکی از بحث های داغ امروز وبمستران هست.
تعریف SSL :
نمیخوام منم مثل سایت های دیگه از اصطلاحات تخصصی حرف بزنم و خیلی کوتاه عرض میکنم که وقتی شما وبسایتی دارید که قرار هست یکسری اطلاعات برای مرورگر کاربر ارسال کنه و در قالب صفحات HTML به کاربر نشون بده و از طرفی هم قراره که یکسری اطلاعات رو از کاربر بگیره و در سمت سرور عملیات و یا پردازش هایی رو بر روی اونها انجام بده
در حالت معمولی صاحبان اکثر وبسایت ها برای ارتباط مرورگر کاربر با سرورشون از پروتکل HTTP بدلیل رایگان بودن استفاده میکنند که بصورت پیشفرض بر روی وبسریس ها کانفیگ شده است ولی این پروتکل هیچگونه رمزنگاری روی اطلاعات رد و بدل شده بین مرورگر و سرور شما رو انجام نمیده و اطلاعات به همان شکل اصلی ارسال و دریافت میشه که این مدل از ارتباط ناامن هست .
شاید بپرسید اصلا پروتکل چیه ؟ خوب در جواب باید بگم پروتکل یعنی پیمان و قرارداد و یه کلمه انگلیسی هست که نیاز نیست شما ازش بترسید.
در دنیای بین آدما یکسری قانون ها توسط خود آدما وضع شده، مثلا این یک قانون هست که وقتی دو تا آدم به هم میرسن ابتدا باید به همدیگه سلام بدن و بعد احوالپرسی و بعد هم صحبت های دیگه و مثلا قانون دیگه آدمها اینه که وقتی یک شخص فقیر در مقابل یک شخص پولدار قرار گرفت ابتدا باید دستهایش را بر روی سینه اش قرار دهد و به او در بهترین حالت احترام بگذارد

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

توابع مهم کار با سشن ها در لاراول

سلام دوستان خوبم

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

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

سشن در لاراول

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

پروژه تقویم شمسی و قمری و میلادی با php به همراه مناسبت ها

ضمن سلام و عرض ادب خدمت شما دوستان عزیزم

یک پروژه تقویم جلالی ، قمری و شمسی با زبان برنامه نویسی php نوشته ام که تمامی مناسبت های مذهبی ، ملی و بین المللی رو بر روی تقویم داراست . تصویر این تقویم رو در پائین همین متن قرار داده ام

تقویم شمسی با php

تقویم php

تکنولوژی های بکار رفته در ساخت تقویم جلالی ، میلادی ، قمری و قابلیت های این تقویم :

# زبان اسکریپت نویسی php 

# فناوری ایجکس برای حرکت بین تاریخ ها

# قابلیت انتخاب ماه خاص

# قابلیت انتخاب سال دلخواه

# قابلیت نمایش تقویم ماه جاری

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

ادامه مطلب...
۱۲ اسفند ۹۵ ، ۱۱:۱۳ ۷ نظر موافقین ۲ مخالفین ۰
مهندس مهدی حسامی