آموزش PHP

پیش نیازهای این دوره

دوره آموزش طراحی وب HTML – CSS
دوره آموزش جاوا اسکریپت و جی کوئری

PHP چیست؟

  • PHP مخفف Hypertext Preprocessor می باشد.
  • PHP یک زبان سمت سرور است همانند ASP.NET
  • کد های PHP در سرور اجرا می شوند.
  • PHP قابلیت کار با بسیاری از پایگاه داده ها همانند MySql و Oracle را داراست.
  • PHP یک نرم افزار منبع باز و کاملا مجانی می باشد .

چرا PHP؟

  • PHP دارای قابلیت CrossPlatforms می باشد یعنی در همه سیستم عامل ها قابل اجراست.
  • PHP با تمام وب سرورهای امروزی همانند APACHE , IIS سازگار است
  • یادگیری آن آسان است البته به شرط تمرین!

در ابتدا شما را با ویژگی های زبان PHP آشنا خواهیم ساخت :

PHP یک زبان سمت سرور است : شاید تا به حال کلمه "زبان سمت سرور" را زیاد شنیده باشد ، ولی شاید لپ مطلب برای شما درک نشده باشد ، وقتی می گویند PHP یک زبان سمت سرور است ، یعنی این که کد PHP در ابتدا توسط شما نوشته می شود ، سپس توسط سرور (ویندوز یا لینوکس) پردازش می شود و خروجی را به صورت HTML به نمایش در خواهد آورد و هیچکس کد اصلی شما را نمی بیند و تنها خروجی کد شما را می بینند  . در قسمت پائین یک مثال را آورده ام :

<?php
echo date('Y');
?>

در قسمت بالا یک قطعه کد PHP نوشته ام که سال کنونی را به نمایش در می آورد ، خروجی HTML آن به این صورت می باشد :

2012

بله ! تنها خروجی ما 2012 می باشد ، و این یعنی زبان سمت سرور، هیچکس کد اصلی date را نمی بیند و تنها خروجی آن یعنی 2012 را میبینند.

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

<p> &copy; <?php echo date('Y'); ?> 7Learn.com </p>

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

footer

این یک مثال کاربردی بود تا مفهوم داینامیک بودن php را درک نمائید .

نکته :همانطور که ملاحظه می نمائید ، php را درون کد html قرار داده ایم ، و در اصل هم php برای جاسازی درون کد html یک صفحه وب طراحی شده است.

با PHP چه کارهایی می توان انجام داد :

  1. ارتباط با پایگاه داده ها مانند ایجاد فرم و قرار دادن  اطلاعات فرم به صورت رکورد
  2. ارسال ایمیل به کاربر
  3. آپلود فایل روی صفحه وب

مراحل نصب PHP و مخلفات :

1) در ابتدا از این لینک نرم افزار XAMPP را دریافت نمائید. ( این نرم افزار ویندوز شما را تبدیل به یک سرور مجازی می کند و شما با استفاده از این  نرم افزار می توانید کدهای PHP خود پردازش و اجرا نمائید ، همچنین می توانید MySql را  نیز با استفاده از این شبیه ساز نصب نمائید.)

http://www.apachefriends.org/download.php?xampp-win32-1.7.7-VC9-installer.exe
2) پس از اینکه این نرم افزار را دانلود نمودید ،آن را اجرا کرده و پس از انتخاب زبان مورد نظر خود ، آن را با زدن چند ok , next نصب نمائید (فرض ما در این است که شما در درایو C این نرم افزار را نصب نموده اید ). پس از دریافت پیغام Congratulations! ، روی دکمه Yes کلیک نمائید و در پنجره ای که برای شما نمایان می شود ، برای دو قسمت Apache و MySql گزینه Start را کلیک نمائید .

آموزش نصب xampp

آموزش نصب xampp

3) حال در ویندوز شما هم PHP نصب شده ، هم MySql .

4) برای اینکه تست کنید که PHP در ویندوز شما به درستی نصب شده است مسیر زیر را دنبال نمائید :

C:\xampp\htdocs\xampp

سپس در این پوشه یک فایل Notepad را ایجاد نمائید  و آن را با نام phpinfo.php ذخیره نمائید ، سپس آن را در notepad بدین گونه ویرایش نمائید :

<?php
phpinfo();
?>

پس از ذخیره کردن فایل ، ادرس زیر را در مرورگر خود تایپ نمائید :

http://localhost/xampp/phpinfo.php

پس از اینکه enter را بزنید ، اگر php شما به درستی نصب شده باشد ، صفحه ای مانند شکل زیر را مشاهده می نمائید :

php

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

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

  1. کار با فایل ها
  2. ایجاد سیستم های مدیریت محتوا همانند وردپرس
  3. و...

این فصل ، یعنی بخش نوشتن اسکریپت های php خود دارای 2 یا 3 بخش تقسیم خواهد شد که در در این مطلب در رابطه با مباحث زیر بحث خواهیم کرد :

  • آشنایی با چگونگی ساختار PHP
  • جاسازی PHP درون یک صفحه وب
  • ذخیره داده ها در متغیرها
  • نمایش خروجی PHP
  • نحوه تعریف انواع آرایه
  • انواع قلمرو های متغیرها در PHP

آموزش php بخش اول

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

 بخش اول : آشنایی با چگونگی ساختار PHP :

در هر صفحه PHP باید المان های زیر را رعایت نمائید :

  • پسوند قابل پردازش باید PHP باشد مانند Index.php
  • وجود تگ های باز <?php در هر شرایطی اجباری ولی تگ بسته؟> را می توان در شرایطی حذف کرد.
  • کد های php را می توانید با html ترکیب نمائید ولی دقت کنید که کدهای php حتما باید درون تگ های باز و بسته باشند همانند دستور زیر :
© <?php echo date('Y'); ?> 7Learn.com
  • می توانید از چندین قسمت کد php روی یک صفحه استفاده کنید (یعنی چندین مورد تگ های باز و بسته php) ولی نمی توانید آنها را درون یکدیگر قرار دهید.
  • زمانی که شما ترجیح می دهید که کد php خود در یک فایل جداگانه ذخیره نمائید ، تگ <?php اجباری بوده ولی تگ ?> اختیاری می باشد ، در حقیقت بهتر است که تگ بسته را وارد نکنید ، اما اگر کد شما حاوی کد html نیز هست حتما باید از تگ پایان استفاده نمائید.

اضافه کردن توضیحات یا Comment به کدهای PHP خود :

هر کدی که بین تگ های باز و بسته PHP قرار گیرد ، به عنوان دستور اطلاق می شود و آن دستر پردازش می گردد ، مگر اینکه با استفاده از علامت گذاری های خاصی آن خط(ها) دستور را به توضیح (Comment) تبدیل نمائید ، که در این صورت کد مورد نظر پردازش نمی شود ، کامنت گذاری برای دستورات فایده های بسیار زیادی در راهنمایی داره :

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

برای اضافه کردن توضیحات در PHP چند روش وجود دارد :

توضیحات تک خطی :

این روش متداول ترین روش اضافه کردن یک توضیح برای کد تک خطی است ، یعنی قرار دادن دو اسلش در ابتدای آن ، همانند این :

//this is a comment

$book = ‘php’ ; //This is a variable

توضیحات چند خطی :

اما اگر توضیحی می خواهید استفاده کنید که چند خط را اشغال می کند با از روش زیر استفاده نمائید :

/*
This is
a comment
block
*/

متغیر ها در PHP :

متغیر ها اسمی هستتند که به چیزی داده می شوند ، که ممکن است مقدار آن (همان چیز!) تغییر کند ولی همیشه نام متغیر یکی است ، مانند نام یک انسان ، کلمه نام همیشه یکی است ولی دارای مقادیر متفاوتی است مانند میلاد ، لقمان ، محمد و ...

بهتر است برای درک مفهوم متغیر مثالی دیگر بزنم :

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

نکته: متغیر ها در زبان PHP همیشه با یک علامت $ شروع می شوند .

نمونه ای از تعریف متغیر :

<?php
$profile;
$book;
?>

نکاتی که باید در انتخاب و نام گذاری متغیر ها رعایت نمائید :

  • متغیر ها در php همیشه با علامت $ شروع می شوند.
  • اولین کاراکتر بعد از علامت $ نمی تواند یک عدد باشد.
  • هیچ فاصله یا علامتی در نامگذاری متغیر مجاز نیست به جز علامت (_).
  • زبان php به حروف بزرگ و کوچک حساس است یعنی بین $book و $BOOK تفاوت قائل است .

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

نکته : برای انتخاب نام یک متغیر ، شما آزادی کامل دارید ولی یک استثنا وجود دارد و ان هم نام $this است ، این نام متغیر از نسخه 3 بعد زبان php یک نام رزرو شده است برای کلاس ها ، چون از نسخه 3 به بعد php ، قابلیت شی گرایی به این زبان افزوده شد.

مثال زیر را مشاهده نمائید :

<?php
$sum=10;
$average=20;
$name='milad';
?>

همانطور که قطعه کد فوق را مشاهده می نمائید ، در دستور اول ، در متغیر sum ، مقدار 10 قرار میگیرد ، دستور دوم مقدار 20 در average قرار میگیرد و در دستور سوم مقدار name برابر با نام میلاد می شود .

نکته : همانطور که در مثال بالا مشاهده نمودید ، برای مقدار دهی دو متغیر sum و average از علامت کوتیشن استفاده نکردم ولی برای مقدار دهی به متغیر name از کوتیشن استفاده کردم ، برای مقدار دهی یک کلمه ، یک حرف ، یک جمله یا بهتر بگویم یک رشته از کوتیشن استفاده می کنند.

خاتمه دادن به دستورات در php :

هر دستور در php با یک علامت (;) خاتمه می یابد ، همانطور که در کد های فوق ملاحظه کردید ، پس از تعریف متغیرها از علامت ; استفاده نمودیم.

نمایش خروجی در PHP :

تمام کارهایی که شما در پشت صحنه PHP انجام می دهید ، فقط وقتی معنی پیدا می کنند که بتوانید آنها را مشاهده نمائید ، دو روش برای نمایش نتایج در PHP وجود داره :

  • استفاده از دستور echo
  • استفاده از دستور  print

نکته :این دو دستور دقیقا کاربرد یکسانی دارند با این تفاوت که مقدار print ، مقادیر true و false بر می گرداند.

می توانید از echo به همراه متغیرها ، اعداد و رشته های متنی استفاده کنید ، طریقه استفاده این دستور به صورت زیر می باشد :

<?php
$name='milad';
echo $name;
echo 5;
echo 'David';
?>

در قطعه کد بالا ، ابتدا یک متغیر به نام name تعریف کرده ایم ، سپس این متغیر را چاپ نموده ایم ، همچنین می توان مقدار مستقیم برای چاپ در نظر گرفت مانند کد بالا.

وصل کردن رشته های متنی به یکدیگر :

php هم مانند زبان های برنامه نویسی دیگر ، دارای قابلیت الحاق کردن دو یا چند رشته را با یکدیگر دارد که برای اینکار از یک نقطه (.) استفاده می نماید :

<?php
$firstname='milad';
$lastname='heydari';
echo $firstname . $lastname; // output : miladheydari
?>

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

برای نمایش یک فاصله در خروجی (یعنی دو کلمه milad و heydari با فاصله چاپ شوند) می توانیم از کوتیشن استفاده نمائیم :

<?php
$firstname='milad';
$lastname='heydari';
echo $firstname . ' ' .  $lastname; // output : milad heydari
?>

همانطور که ملاحظه نمودید ، متغیر firstname را با کوتیشن الحاق کرد و همچنین متغیر lastname را با کوتیشن الحاق نمود ، حال در خروجی ما بین دو کلمه یک فاصله چاپ می شود.

نکته مهم :حتما کد زیر را در پوشه xampp ایجاد کنید و خروجی آنها را مشاهده نمائید.

انواع داده پشتیبانی شده توسط PHP

انواع داده ها در PHP شامل بولین ، عدد صحیح ، عدد اعشاری ، رشته های متنی و آرایه ها می باشند.

بولین ( Boolean) :

این نوع داده ای فقط شامل دو مقدار می باشد (درست و غلط )یعنی TRUE و FALSE ، برای TRUE مقدار 1 و برای FALSE مقدار 0 در نظر گرفته شده است :

</p>
<p style="text-align: left;"><?php
$value = false; // is false
$value = 1; // is true
$value = -1; //is false
$value = 5; //is true
value = 0;  //is false
?>

استثنا: برای با این که رشته ها باید در داخل کوتیشن قرار گیرند ، اما مقادیر true و false نباید در کوتیشن قرار گیرند ، همانطور که در کد بالا ملاحظه می نمائید مقدار false را در کوتیشن قرار نداده ایم ، اگر این مقادیر را در داخل کوتیشن قرار دهید ، آنها تبدیل به رشته false و true می شوند.

اعداد صحیح (Integer ) :

یک عدد صحیح به صورت یک عدد کامل نمایش داده می شود ، یا به عبارتی دیگر شامل هیچ قسمت اعشاری نیست مانند :

<?php
$value = 50;
$book = 100;
?>

اعداد اعشاری (Double) :

اعداد اعشاری دارای نقطه اعشار هستند ، که به شما اجازه می دهند قسمت کسری را مشخس نمائید :

<?php
$value = 2.5;
$book = 5.75;
?>

رشته های متنی (String) :

رشته های متنی می توانند حاوی یک کاراکتر ، یک کلمه یا یک جمله باشند که باید حتما آن ها را در داخل کوتیشن قرار داد:

<?php
$lname="heydari";
$book="php";
$email="yahoo";
?>

آرایه ها (Arrays) :

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

آرایه ها در زبان php به 3 صورت نوشته می شوند :

  • آرایه ایندکسی ( شاخص عددی)
<?php
$tehran = array('m1' , 'm2' , 'm3' , 'm4');
?>

همانگونه که ملاحظه نمودید ، ما  آرایه را با 4 مقدار تعریف کردیم  و هر کدام از این 4 مقدار دارای یک ایندکس یا شماره هستند ، همچنین آرایه ایندکسی را به صورت شاخصی می توانید تعریف نمائید ، دقیقا کاربرد همان بالایی را دارد :

<?php
$tehran[0] = 'm1';
$tehran[1] = 'm2';
$tehran[2] = 'm3';
$tehran[3] = 'm4';
?>
  • آرایه شاخص رشته ای :

شما می توانید به جای شاخص گذاری عددی ، از رشته ای استفاده کنید به بدین صورت می باشد :

<?php
$ages['Peter'] = "32";
$ages['Quagmire'] = "30";
$ages['Joe'] = "34";

echo "Peter is " . $ages['Peter'] . " years old.";
?>

در مثال بالا ، مثلا شاخص peter دارای مقدار 32 است .

شاخص گذاری رشته ای را به گونه ی دیگری نیز می توانید تعریف نمائید :

<?php
$ages = array("Peter"=>32, "Quagmire"=>30, "Joe"=>34);
?>

اگر آرایه شاخص گذاری رشته ای خود را همانند قسمت بالا تعریف نمائید ، برای مقدار دهی به شاخص ها از علامت  "یک مساوی و یک فلش" استفاده می شود.

  • آرایه آرایه ها:

شما آرایه آرایه ها را همانند یک جعبه ای در نظر بگیرید  که درون آن تعداد زیادی پاکت وجود وجود دارد  ، این نوع آرایه را نیز می توانید به دو صورت تعریف نمائید :

  • نوع اول (شاخص گذاری عددی) :
<?php
$families = array
(
"Griffin"=>array
(
"Peter",
"Lois",
"Megan"
),
"Quagmire"=>array
(
"Glenn"
),
"Brown"=>array
(
"Cleveland",
"Loretta",
"Junior"
)
);
?>

حال اگر بخواهیم یک مقدار مشخص را چاپ نمائیم ، اینگونه مشخص می نمائید :

<?php
echo "Is " . $families['Griffin'][2] ." a part of the Griffin family?";
// OutPut : Is Megan a part of the Griffin family?
?>
  • نوع دوم (شاخص گذاری رشته ای ) :
<?php
$image= array(
array('file' => '1' , 'alt' => "milad"),
array('file' => '2' , 'alt '=> "hossein"),
array('file'=> '3' , 'alt'  => "ahmad"),
array('file' => '4' , 'alt' => "reza"),
array('file'=>'5' , 'alt'  => "not")
);
?>

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

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

در ابتدا قطعه کد زیر ملاحظه نمائید :

<?php
$book = 'this is milad's learn on the 7learn . ';
?>

در نگاه اول که ملاحظه می نمائید ، مشکلی وجود ندارد اما php فکری دیگر می کند . همانطور که شما ملاحظه کردید ما از کوتیشن منفرد استفاده کرده ایم ولی بخش milad's نیز دارای یک کوتیشن است ، php فقط تا کلمه milad's را پردازش می کند و ادامه جمله را پردازش نمی کند:

کوتیشن در php

برای حل این مشکل می توانید یکی از راه های زیر را انتخاب نمائید :

<?php
$book = "this is milad's learn on the 7learn . ";

$book = 'this is milad\'s learn on the 7learn . ';
?>

همانطور که ملاحظه نمودید ، ما قبل از آپستروف milad یک علامت \ (بک اسلش) استفاده کردیم ، پس در مواقع اینگونه می توانید از بک اسلش استفاده نمائید.

قلمرو متغیر :

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

متغیرها در php از لحاظ قلمرو ، چهار نوع هستند :

  • متغیرهای محلی (Local Variable)
  • پارامترهای تابع
  • متغیرهای عمومی (Global Variable)
  • متغیرهای استاتیک (Static Variable)

توضیحات قسمت قلمرو متغیرها را در بخش بعدی توضیح خواهم داد.

در قسمت بعدی با عملگردها در php آشنا خواهیم شد.

سرفصل های دوره جامع آموزش برنامه نویسی PHP

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

دانلود سرفصل ها به تفکیک جلسات ویدیویی

فصل 1 : مقدمه ، پیشنیازها و آماده سازی محیط کار

  • در مورد مدرس
  • در مورد زبان اسکریپتی PHP
  • مقایسه ی زبان های برنامه نویسی و زبان های نمادگذاری
  • PHP و چرایی انتخاب این زبان
  • زبان های Server-Side در مقابل Client-Side
  • تاریخچه ی PHP
  • معرفی کلی دوره و هدف نهایی آن
  • پیشنیازها ی دوره
  • آماده سازی محیط برنامه نویسی
  • سیستم عامل
  • مرورگر
  • راه اندازی وب سرور محلی (Local)
  • مجموعه ی AMP : Apache , MySQL , PHP در سیستم عامل های مختلف
  • نصب WAMP و پیکربندی آن در ویندوز
  • یافتن فولدر ریشه (root) وب سرور محلی و مدیریت فایل های برنامه ها
  • پیکربندی PHP و MySQL
  • تست وب سرور محلی و دیدن اطلاعات و ویژگی های PHP  نصب شده
  • انتخاب ویرایشگر و محیط توسعه ی برنامه های PHP (IDE)
  • در مورد PhpStorm و Notepad++ : دانلود  و نصب آن ها
  • آموزش نکات و تکنیک های مهم ویرایشگر PhpStorm
  • تنظیمات PhpStorm
  • ایجاد و ویرایش پروژه
  • کلیدهای میانبر مهم در PhpStorm
  • ضبط ماکرو ها و استفاده از آنها برای کدنویسی سریعتر
  • تکنیک هایی برای افزایش سرعت و دقت در کدنویسی (emmet plugin)
  • موارد متفرقه در مورد PhpStorm
  • تمرین

فصل 2 : قرارداد ها، شروع کدنویسی حساب شده و مفاهیم پایه !

  • فرمت فایل های زبان PHP
  • آشنایی با کدگذاری فایل ها : Utf-8 در مقابل ASCII
  • مفاهیم پایه
  • صفحات وب ایستا (Static) در مقابل صفحات وب پویا (Dynamic)
  • دو جزء اساسی تشکیل دهنده ی یک برنامه : داده ها و کدها
  • روند پردازش درخواست ها از مرورگر تا وب سرور و برعکس
  • تگ های زبان PHP : جا دادن کدهای PHP در صفحه ی وب
  • آشنایی با توابع echo  و print برای چاپ داده ها
  • توضیحات (Comments) در زبان PHP
  • تابع rand و استفاده از آن برای تولید اعداد تصافی در طول برگذاری این دوره
  • کدنویسی استاندارد و قراردادهای این دوره ی آموزشی
  • استاندارد تعین نام ها
  • استاندارد تعین کامنت ها
  • استاندارد تعین فرمت ها
  • رعایت نظم و فرورفتگی ها (Indentation) در کدنویسی
  • شیوه ی پوشه بندی و ساختار فایل های این دوره
  • فایل های کمکی مورد استفاده در این دوره
  • پوشه ی common
  • فایل styles.css
  •  فایل common.js
  • فایل common.php
  • تمرین

فصل 3 : انواع مختلف داده ها و متغیرها در PHP

  • داده های دنیای پیرامون ما
  • متغیر در زبان های برنامه نویسی چیست ؟
  • نحوه ی تعریف متغیرها : صریح در مقابل ضمنی
  • قواعد نامگذاری صحیح متغیرها
  • مثال هایی از نامگذاری های صحیح و غلط برای متغیرها
  • انواع مختلف متغیرهای PHP
  • متغیرهای رشته ای (String)
  • متغیرهای عددی صحیح (Integer)
  • متعیرهای عددی اعشاری (Float)
  • متغیرهای بولین (Boolean)
  • متغیرهای آرایه ای (Array)
  • نوع های خاص : NULL و empty
  • متغیرهای ارجاعی (Pointer)
  • تخریب و از بین بردن متغیر ها با دستور unset
  • تشخیص نوع متغیرها با تابع gettype()
  • تغیر نوع متغیر با تابع settype()
  • توابع چک کردن نوع متغیرها
  • is_int
  • is_string
  • is_bool
  • is_float
  • is_array
  • is_numeric
  • is_null
  • is_empty
  • تبدیل نوع متغیرها (Type Casting)
  • ثابت ها در زبان PHP
  • ثابت های مهم و کاربردی از پیش تعریف شده در PHP
  • کار با متغیرهای رشته ای
  • تفاوت استفاده از تک کوتیشن و دابل کوتیشن در اطراف رشته ها ( ‘ و  “)
  • استفاده ی ترکیبی از متغیرها و داده ها در کدهای PHP
  • تمرین

فصل 4 : عملگرها در PHP : انجام اعمال مختلف بر روی داده ها و متغیرها

  • عملگر چیست ؟
  • انواع عملگرها در زبان PHP
  • عملگرهای ریاضی و محاسباتی
  • عملگرهای رشته
  • عملگرهای مقایسه ای
  • عملگرهای منطقی
  • عملگرهای بیتی
  • عملگرهای انتساب
  • عملگرهای خاص : ++ و –
  • بررسی عملگرها با مثال های مختلف
  • اولیت اعمال عملگرهای مختلف
  • تمرین

فصل 5 : ساختارهای کنترلی : شرط ها و عبارت های منطقی

  • مقدمه و آشنایی با عبارت های شرطی در زبان های برنامه نویسی
  • بلاک بندی کد با استفاده از آکولادها
  • عبارت شرطی if
  • عبارت های else  و else if
  • عبارت شرطی switch
  • نقش دستور break در ساختار switch
  • عبارت و عملگر شرطی ?
  • ارائه ی مثال های مختلف برای درک عمقی از نحوه ی استفاده از شرط ها
  • مینی پروژه 1 : محدود کردن نمایش محتوا بر اساس سن و جنسیت کاربر
  • مینی پروژه 2 : نوشتن یک ماشین حساب با دستورات شرطی مختلف در زبان PHP
  • تمرین

فصل 6 : ساختارهای کنترلی : حلقه ها و آرایه ها

  • مقدمه و آشنایی با حلقه ها و آرایه ها در زبان های برنامه نویسی
  • آرایه ها و متغیرهای مجموعه ای
  • آرایه های عددی در مقابل آرایه های Associative
  • مفهوم iteration در حلقه ها
  • ساختار حلقه for و بخش های مختلف آن
  • ساختار حلقه foreach و کاربرد آن
  • تفاوت حلقه های for و foreach
  • ساختار حلقه while و نکات مهم در نحوه ی استفاده از آن
  • ساختار حلقه do...while و تفاوت آن به حلقه ی while
  • استفاده از حلقه های تو در تو برای پردازش داده ها و آرایه های چند بعدی
  • کاربرد دستورات Continue و Break
  • مینی پروژه : تعیین جایگاه نشستن تماشاگران با توجه به جنسیت آنها !
  • تمرین

فصل 7 : تعامل Html ، PHP  و Javascript : با Ajax حرفه ای شوید !

  • در این فصل مفاهیم در قالب ساخت رابط کاربری یک وبلاگ تدریس می شوند .
  • لود و استفاده از فایل های PHP در همدیگر
  • تشریح توابع include و include_once
  • تشریح توابع require و require_once
  • مروری بر زبان نماد گذاری HTML
  • استفاده از تگ های HTML برای نمایش بهتر خروجی کدهای PHP
  • استفاده از تگ های فرمت بندی متن در خروجی های PHP
  • ایجاد خروجی های پویا و متغیر
  • استفاده از حلقه های PHP و تگ table برای نمایش خروجی به صورت جدولی
  • نمایش شرطی ویژگی ها و تگ های HTML و کلاس های CSS
  • مروری بر زبان جاوااسکریپت
  • تشریح کاربردهای زبان جاوااسکریپت
  • نحوه ی استفاده از کدهای جاوا اسکریپت در صفحات PHP
  • نحوه ی انتقال و استفاده از داده ها و مقادیر php در کدهای جاوااسکریپت
  • جی کوئری (jQuery) و سهولت در نوشتن کدهای جاوااسکریپت !
  • بررسی اعتبار داده های ورودی کاربر توسط جاوااسکریپت (جی کوئری)
  • نمایش پیام هشدار پیش از انجام عملیات حساس،  با استفاده از جاوااسکریپت
  • تکنولوژی Ajax چیست ؟
  • مزایا و معایب استفاده از Ajax
  • موارد استفاده ی صحیح و اشتباه از تکنولوژی Ajax
  • آموزش به کارگیری Ajax به همراه PHP با استفاده از کتابخانه ی جی کوئری
  • نمایش تصویر و یا متن لودینگ در هنگام ارسال درخواست Ajax
  • مینی پروژه : جستجو در لیست اسامی و پیشنهاد نتایج در هنگام تایپ با استفاده از Ajax
  • تمرین

فصل 8 : کار با فرم ها و داده های ورودی کاربران

  • توضیحی در مورد ورودی ها و خروجی ها در زبان های برنامه نویسی
  • دریافت ورودی ها در زبان PHP
  • تشریح کاربرد و عملکرد فرم ها در صفحات وب
  • تفاوت دو متد Post و Get در ارسال داده ها به سمت سرور
  • ساختار ارسال داده ها با متد Get در Url ها (QueryString Structure)
  • ساختار یک فرم در زبان Html
  • اجزاء مختلف تشکیل دهنده ی فرم های Html
  • تگ form
  • فیلدهای متنی (Text)
  • فیلدهای ناحیه ی متنی (Textarea)
  • فیلد های انتخاب گزینه (radio button , checkbox)
  • فیلد های لیستی (Select)
  • فیلد آپلود فایل (File)
  • فیلدهای مخفی (Hidden)
  • دکمه ها (Button , Submit)
  • لیبل ها (Label)
  • دریافت اطلاعات ارسال شده از فرم ها در PHP
  • مینی پروژه : ساخت یک فرم ثبت نام برای ذخیره سازی اطلاعات افراد و ارسال داده ها به سمت PHP
  • تمرین

فصل 9 : آرایه های سوپرگلوبال PHP و کاربرد آنها

  • منظور از آرایه های SuperGlobal چیست ؟
  • انواع آرایه ها فوق سراسری و کاربرد آنها در زبان PHP
  • آرایه ی $_GET
  • آرایه ی $_POST
  • آرایه ی $_REQUEST
  • آرایه ی $_FILE
  • آرایه ی $_SERVER
  • نحوه ی دریافت و پردازش اطلاعات ارسال شده از طریق فرم ها در زبان PHP
  • اعتبارسنجی ورودی های کاربر و رفع خطرات احتمالی از ورودی های خطرناک در PHP
  • جلوگیری از ارسال مجدد فرم ها و مشکل ذخیره سازی و پردازش مجدد داده ها
  • مینی پروژه : نمایش اطلاعات ارسال شده از طریق فرم ثبت نام با ظاهری مرتب
  • تمرین

فصل 10 : توابع : تعریف توابع دلخواه توسط برنامه نویس

  • تابع چیست و چرا باید از توابع استفاده کرد ؟
  • ساختار نوشتاری توابع PHP
  • قواعد نامگذاری توابع
  • پارامترها یا ورودی های توابع PHP
  • مقدار بازگشتی (خروجی) توابع
  • مثالی که مزایای استفاده از توابع را نشان می دهد .
  • نوع پارامتر های توابع PHP (مقداری و ارجاعی)
  • محدوده اعتبار متغیرها (Scope) و متغیرهای سراسری (global variables)
  • مقداردهی پیشفرض برای پارامترهای تابع
  • تعریف تابع با تعداد متغیری از پارامترهای ورودی
  • تولید مقادیر چندگانه توسط یک تابع
  • نحوه ی دسترسی به متغیرهای سراسری
  • چک کردن وجود یا عدم وجود تابع با نام خاص
  • مفهوم توابع بازگشتی و مثالی کاربردی از آن
  • مینی پروژه : شبیه سازی خط تولید خودرو در فازهای مختلف کارخانه
  • تمرین

فصل 11 : توابع : توابع از پیش تعریف شده در PHP

  • توابع از پیش تعریف شده ی PHP و مزایای استفاده از آنها
  • نحوه ی جستجوی توابع مختلف PHP و یافتن توابع مورد نیاز شما
  • کار با تاریخ و زمان :
  • دریافت و فرمت بندی تاریخ کنونی سرور  و تبدیل timestamp به تاریخ
  • دریافت زمان و ساعت کنونی سرور به شکل timestamp
  • دریافت زمان کنونی به میکروثانیه
  • ساخت یک شئ از کلاس تاریخ
  •  ساخت یک شئ تاریخ با فرمت دلخواه
  • دریافت منطقه ی زمانی
  • تنظیم کردن منطقه ی زمانی
  • افزودن یک مقدار (ساعت،روز،ماه ...) به یک تاریخ
  • کم کردن و تفریق یک بازه ی زمانی از یک تاریخ
  • دریافت اختلاف زمانی بین دو تاریخ مختلف
  • انجام تغیرات در تاریخ
  • نمایش یک تاریخ با فرمت خاص
  • دریافت اجزاء مختلف تاریخ (روز، ماه، سال، ثانیه، دقیقه، ساعت و ...)
  • دریافت زمان طلوع خورشید
  • دریافت زمان غروب خورشید
  • تنظیم ساعت در یک تاریخ
  • دریافت برچسب زمانی (timestamp) یک تاریخ
  • تبدیل یک رشته ی تاریخ  به timestamp
  • دریافت اطلاعات و اجزاء مختلف تاریخ کنونی سرور
  • دریافت اجزاء مختلف تاریخ (ساعت، روز، ماه و ...)  به صورت عدد صحیح
  • بهره گیری و استفاده از تاریخ فارسی با کتابخانه ی jdf
  • مینی پروژه : نمایش تاریخ به صورت زمان گذشته شده تا کنون (مثال : 2 ماه و 3 روز پیش)
  • تمرین
  • کار با رشته ها :
  • دریافت طول یک رشته
  • افزودن اسلش ها به رشته و دلیل انجام اینکار
  • تبدیل کد حروف به کاراکتر و برعکس
  • شکستن یک رشته به تکه های کوچکتر با سایز مشخص
  • نمایش اطلاعات در مورد حرف های رشته ی متنی
  • محاسبه ی checksum  از رشته ی ورودی
  • crypt : تابعی برای در هم ریزی (hash) رشته
  • md5,md5_file : توابعی برای در هم ریزی (hash) رشته و فایل
  • sha1,sha1_file : توابعی برای در هم ریزی (hash) رشته و فایل
  • جداسازی بخش های یک رشته بر اساس یک رشته ی جداکننده
  • چسباندن تمام اعضای یک آرایه و تبدیل آنها به یک رشته
  • تبدیل کاراکترهای html به کاراکترهای اجرایی
  • برعکس تابع html_entity_decode
  • تبدیل کاراکترهای خاص html به کاراکترهای اجرایی
  • برعکس تابع htmlspecialchars_decode
  • کوچک کردن اولین حرف رشته
  • حذف فاصله ها (یا حروف خاص) از اطراف رشته ها
  • تبدیل کاراکترهای خط جدید به تگ br در html
  • تجزیه کردن رشته به متغیرها
  • تجزیه کردن یک url و دریافت اجزای آن
  • چاپ یک رشته به صورت فرمت بندی شده
  • محاسبه ی میزان شباهت بین دو رشته
  • پر کردن یک رشته تا طول خاص با رشته ای دیگر
  • جایگزین کردن یک رشته ی دلخواه با بخشی از رشته
  • تکرار یک رشته به تعداد دلخواه
  • جا به جا کردن حروف رشته به صورت تصادفی
  • شکستن یه رشته به رشته های کوچکتر و قرار دادن در آرایه
  • دریافت اطلاعات مربوط به تعداد تکرار کلمات در رشته
  • یافتن اولین رخداد یک رشته در رشته ی بزرگتر
  • یافتن موقعیت رخداد یک رشته در رشته ی بزرگتر
  • مقایسه ی بین دو رشته
  • تهی کردن رشته از تگ ها html و php
  • دریافت تعداد تکرار یک زیررشته در رشته ی بزرگتر
  • کوچک و بزرگ کردن حروف رشته
  • دریافت یک زیر رشته از رشته ی بزرگتر
  • احاطه کردن رشته با رشته ای دیگر در تکه هایی با اندازه ی مشخص
  • فشرده سازی و کاهش سایز رشته ها
  • مینی پروژه : ایجاد یک ویرایشگر متن php به کمک Ajax
  • تمرین
  • کار با آرایه ها :
  • ساخت یک آرایه
  • شمارش تعداد عناصر آرایه
  • چک کردن وجود یک کلید در آرایه
  • چک کردن حضور یک مقدار در آرایه
  • دریافت همه یا بخشی از کلید های یک آرایه
  • دریافت همه ی مقادیر موجود در آرایه
  • تغیر حروف همه ی کلیدهای آرایه
  • شکستن آرایه به چند بخش
  • ایجاد یک آرایه با ترکیب دو آرایه ی کلیدها و مقادیر
  • دریافت تعداد تکرار اعضای آرایه
  • بدست آوردن تفاوت دو آرایه با همدیگر
  • پر کردن بخشی از آرایه با مقادیر خاص
  • فیلتر کردن اعضای ارایه با استفاده از یک تابع callback
  • جابجایی کلیدها و مقادیر یک آرایه با همدیگر
  • محاسبه ی اشتراک دو آرایه
  •  ادغام و اجتماع دو آرایه
  • مخلوط کردن آرایه به صورت تصادفی
  • توابع مرتب سازی آرایه ها
  • پرکردن آرایه از مقادیر تا طول خاص
  • اضافه کردن یک عنصر به انتهای آرایه
  • برداشتن آخرین عضو آرایه
  • محاسبه ی حاصل جمع و ضرب کل عناصر آرایه
  • برداشتن یک یا چند عنصر از آرایه به صورت تصادفی و رندم
  • جایگزینی عناصر آرایه با عناصر یک آرایه ی دیگر
  • معکوس کردن آرایه
  • جستجو در آرایه
  • دریافت یک زیر آرایه از آرایه ی بزرگتر
  • حذف عناصر تکراری از آرایه
  • اعمال یک تابع برای اجرا بر روی تک تک عناصر آرایه
  • پیمایش در عناصر آرایه
  • استخراج متغیر از اعضای آرایه
  • مینی پروژه : مدیریت و فیلتر کردن جدول مخاطبین تلفن
  • تمرین
  • کار با فایل ها :
  • ایجاد فایل و فولدر در سرور
  • دریافت اطلاعات کامل یک فایل
  • دریافت نام فایل با استفاده از مسیر آن
  • دریافت مسیر فولدر حاوی فایل از مسیر آن
  • چک کردن وجود یا عدم وجود یک فایل
  • چک کردن فایل/پوشه بودن یا نبودن یک فایل
  • خواندن کل محتوای فایل و قراردادن آن در یک آرایه
  • خواندن فایل و دریافت کل محتوای آن به عنوان یک رشته
  • نوشتن یا اضافه کردن اطلاعات از یک رشته به درون فایل
  • بازکردن و بستن یک فایل
  • خواندن اطلاعات از درون یک فایل
  • نوشتن اطلاعات در فایل
  • دریافت سایز و فرمت (نوع) فایل
  • آپلود و انتقال فایل بر روی سرور
  • دریافت نام و اطلاعات فایل های موجود در پوشه ها
  • اجبار به دانلود فایل با استفاده از php
  • تغیر مجوزهای دسترسی به فایل
  • کپی کردن یک فایل به آدرسی دیگر
  • تغیر نام فایل بر روی سرور
  • حذف فایل ها و پوشه ها
  • دریافت اطلاعات فضای خالی وکل دیسک سرور
  • مینی پروژه : اسکریپت فایل منیجر با قابلیت لیست کردن، ویرایش، حذف و اضافه کردن فایلها
  • تمرین
  • توابع متفرقه :
  • تولید اعداد تصادفی
  • توابع ریاضی و محاسباتی
  • دریافت اطلاعات مربوط به میزان استفاده از رم
  • دریافت اطلاعات میزان استفاده از CPU سرور

فصل 12  : اصول طراحی پایگاه داده (Database)

  • پایگاه داده (Database) و سیستم مدیریت پایگاه داده (DBMS) چیست ؟
  • استفاده از پایگاه داده در مقابل فایل ها
  • انواع مختلف پایگاه های داده
  • پایگاه های داده رابطه ای (Relational Database)
  • مدل ER و مفاهیم پایه ی آن (Entity Relationship Model)
  • تشریح انواع رابطه ها (1-1, n-1, n-m)
  • تشریح مفاهیم دیتابیس (جدول، رابطه، کلیدها، فیلدها و رکوردها)
  • ایندکس ها، کلیدهای اصلی و کلید های خارجی
  • مفاهیم مهم در طراحی پایگاه داده
  • اشتباهات رایج در طراحی پایگاه داده و تشریح مشکلات آن
  • نرمال سازی جداول پایگاه داده
  • مینی پروژه : طراحی پایگاه داده برای یک فروشگاه اینترنتی
  • تمرین

فصل 13  : کار با پایگاه داده ی MySQL و چگونگی اتصال PHP به دیتابیس

  • معرفی سیستم مدیریت پایگاه داده ی MySQL
  • آشنایی با ابزار PhpMyAdmin و مدیریت جداول پایگاه داده به صورت دستی
  • انجام 4 عمل اصلی پایگاه داده (CRUD) در محیط PhpMyAdmin
  • انجین های ذخیره سازی جداول و معایب و مزایای هر کدام (InnoDB vs MyISAM)
  • معرفی ویژگی های مختلف یک ستون از جداول پایگاه داده (نام، نوع، سایز، مقدار پیشفرض و ...)
  • تشریح انواع داده ها (DataTypes) در SQL
  • SQL : زبانی برای درخواست اطلاعات و انجام تغیرات در پایگاه داده (Query Language)
  • آموزش زبان SQL : آموزش انجام اعمال اصلی در پایگاه های داده (CRUD) با زبان SQL
  • ساخت جداول پایگاه داده (Create)
  • شرح دادن جداول پایگاه داده و دیدن اطلاعات آنها (Describe)
  • حذف جداول پایگاه داده (Drop)
  • خواندن اطلاعات جداول پایگاه داده  (Select)
  • درج و ویرایش مقادیر در جداول پایگاه داده (Insert & Update)
  • حذف مقادیر از جداول پایگاه داده (Delete)
  • ایجاد نسخه ی بکاپ از پایگاه داده و جداول آن
  • ریستور کردن پایگاه داده از بکاپ های گرفته شده
  • اجرای دستورات SQL در محیط PhpMyAdmin
  • روش های اتصال به پایگاه داده از طریق PHP با رابط های mysqli, mysql و PDO
  • آشنایی کلی با رابط MySQL
  • تشریح نحوه اتصال به پایگاه داده از طریق رابط MySQL
  • عدم استفاده از رابط MySQL به خاطر منسوخ شدن آن از ورژن 5.5 php به بعد
  • آشنایی کلی با رابط MySQLi
  • تشریح نحوه اتصال به پایگاه داده از طریق رابط MySQLi
  • آشنایی کلی با رابط PDO
  • تشریح نحوه اتصال به پایگاه داده از طریق رابط PDO
  • اجرای کوئری های دلخواه بر روی دیتابیس از طریق PHP و رابط MySQLi
  • مینی پروژه : ایجاد صفحه ای برای اجرای بیش از 20 کوئری مختلف SQL بر روی پایگاه داده با شیوه ای جالب
  • تمرین

فصل 14  : Cookie ها و Session ها در PHP و تفاوت کاربرد آنها

  • کوکی و سشن : تعریف مفاهیم و تشریح تفاوت های آن ها
  • تشریح کاربرد های کوکی و موارد استفاده از آن
  • توضیح در مورد آرایه ی $_COOKIE
  • کار با کوکی ها در PHP
  • ایجاد و تنظیم کوکی ها
  • خواندن و استفاده از کوکی ها
  • حذف و از بین بردن کوکی ها
  • نحوه ی تعیین زمان انقضای کوکی ها
  • مشاهده و مدیریت دستی کوکی ها در مرورگرهای مختلف
  • تشریح کاربرد های سشن و موارد استفاده از آن
  • توضیح در مورد آرایه ی $_SESSION
  • کار با سشن ها در PHP
  • ایجاد و تنظیم سشن ها
  • خواندن و استفاده از سشن ها
  • حذف و از بین بردن سشن ها
  • هش کردن اطلاعات حساس (مثل رمزهای عبور) برای امنیت بیشتر
  • مقایسه ی الگوریتم های مختلف هش کردن اطلاعات
  • مینی پروژه 1 : نمایش تعداد بازدید کاربر از صفحات مختلف و نمایش کل بازدیدهای او
  • مینی پروژه 2 : احراز هویت (Authentication) کاربران و پیاده سازی فرایند ورود و خروج با سشن ها
  • تمرین

فصل 15  : اصول خطایابی و Debug کردن برنامه ها: مشکلات رایج و راه حل رفع آنها

  • سطوح مختلف خطاها و پیام ها در زبان PHP
  • انواع مختلف خطاها در زبان PHP
  • خطاهای نوشتاری و تجزیه ای (Syntax Errors)
  • خطاهای مهلک (Fatal Errors)
  • خطاهای هشداری (Warning Errors)
  • خطاهای اطلاعاتی (Notice Errors)
  • تشریح و توضیح انواع خطاها با ارائه ی مثال های ریز
  • روش اصولی رفع خطاهای مختلف در PHP
  • خطاهای رایج و راه حل رفع آنها در زبان PHP
  • مشکلات نوشتاری در زبان PHP
  • مشکل نمایش سورس php در مرورگر
  • مشکل عدم نمایش خروجی کدهای PHP (فعال سازی نمایش ارورها)
  • مشکل در ورود پارامترهای مناسب برای توابع
  • مشکل عدم امکان تعریف دوباره ی توابع تکراری
  • مشکل عدم امکان دسترسی به ویژگی ها و متد های یک متغیر که Object نیست
  • مشکل شروع شدن سشن در مکان دیگر
  • اشتباه در استفاده از عملگر انتساب به جای عملگر تست برابری
  • مشکل در نحوه ی استفاده از عملگرهای == و ===
  • مشکلات موجود در کوئری های SQL
  • مشکل ارسال چندباره Header و دلایل بروز آن
  • مشکل نمایش کاراکترهای فارسی به شکل علامت سوال ؟؟؟؟؟؟؟ (در فایل ها و پایگاه داده)
  • مینی پروژه : اشکال زدایی و رفع ده ها خطا در یک سیستم مدیریت محتوای محبوب (وردپرس)
  • تمرین

فصل 16 : امنیت در PHP : شناسایی باگ های امنیتی و رفع آن ها

  • چرا و چگونه برنامه هایی ایمن بنویسیم ؟
  • شناخت انواع حملات و مشکلات امنیتی، پیشنیازی برای نوشتن برنامه های امن
  • دلایل ایجاد ناامنی در برنامه های PHP و راه حل رفع انها
  • قانون اول ! عدم اعتماد به داده ها کاربران
  • مشکلات در پیکربندی وب سرور
  • مشکلات ناشی از فعال بودن register_globals و نحوه ی غیر فعال سازی آن
  • عدم تنظیم صحیح نحوه ی گزارش خطاها
  • مشکلات موجود به دلیل عدم انتخاب انکودینگ استاندارد
  • ساختار نامناسب برنامه برای لود کردن فایلها
  • عدم استفاده از نام ها و مقادیر پیش فرض
  • حذف فایل های نصب اسکریپت ها پس از اتمام مراحل نصب
  • قابل پیشبینی بودن رفتار ، ساختار و کدهای شما و مشکلات آن
  • غیرفعال سازی و یا استفاده ی صحیح از Powerful Commands ها در php
  • انتخاب نوع و سایز مناسب برای ستون های جداول پایگاه داده
  • پسوردهای ضعیف و مشکلات ناشی از آن
  • خصوصیت های یک پسورد مطمئن و قوی
  • مشکلات امنیتی مربوط به دیتابیس و تزریق SQL یا SQL Injection
  • مشکلات ناشی از تزریق کد و داده های خطرناک (Cross-Site Scripting - XSS)
  • مشکلات ناشی از دزیده شدن Session ها و Cookie ها
  • حملات CSRF و راهکارهای مقابله با آن
  • کهنه بودن ورژن نرم افزارها و اسکریپت ها
  • استفاده از فریم ورک های معروف برای رفع بسیاری از نگرانی های امنیتی
  • مشکلات موجود در هاست های اشتراکی، تهیه ی هاست از شرکت های معتبر و متخصص
  • آماده ی حمله ی هکرها باشید ! چه مسائلی را باید همیشه رعایت کنم و به یاد داشته باشم ؟
  • آشنایی بیشتر با الگوریتم های کدگذاری و Hash کردن

فصل 17 : شئ گرایی در PHP و اصول برنامه نویسی Object Oriented

  • نگاهی به دنیای پیرامون ما
  • مشکلات و محدودیت های برنامه نویسی Functional
  • تشریح مفهوم شئ گرایی و مزیت های آن
  • تاریخچه و ویژگی های برنامه نویسی OOP در زبان PHP
  • اصول و مفاهیم برنامه نویسی شئ گرا :
  • مفهوم ارث بری (Inheritance)
  • مفهوم مخفی سازی (Encapsulation)
  • مفهوم چند شکلی (Polymorphism)
  • مفهوم انتزاع/تجرید (Abstraction)
  • شناخت عناصر مهم در برنامه نویسی شئ گرا :
  • طبقه بندی ها (Classes)
  • ویژگی ها (Properties)
  • عملیات و متد ها (Methods)
  • اشیاء (Objects or Instances)
  • ارائه مثال های کاربردی برای درک بهتر مفهوم شئ گرایی، کلاس های اشکال هندسی و افراد
  • نحوه ی نامگذاری کلاس ها، ویژگی ها و متدها
  • نحوه ی ایجاد یک کلاس در زبان PHP
  • عناصر تشکیل دهنده ی یک کلاس (ویژگی ها و متدها)
  • مفهوم کلمات کلیدی public  و private و protected در تعریف ویژگی ها و متدهای کلاس
  • نحوه ی تعریف ویژگی های کلاس
  • نحوه ی تعریف متد های (رفتارهای) کلاس
  • نحوه ی ساختن نمونه ها (Instances) از یک کلاس تعریف شده : (کلمه کلیدی new)
  • عملگر -> در PHP
  • متد سازنده (Constructor) در برنامه نویسی شئ گرای PHP
  • متد تخریب کننده (Destructor) در برنامه نویسی شئ گرای PHP
  • مفهوم متدهای getter و setter در کلاس ها
  • مفهوم عناصر استاتیک و کلمات کلیدی self و static در کلاس های PHP
  • تشریح تفاوت بین $this و self
  • نحوه ی ارث بری کلاس ها در زبان PHP (به ارث بردن ویژگی های کلاس فرزند از کلاس پدر)
  • دسترسی به عناصر کلاس پدر با کلید parent
  • Override کردن متدهای کلاس پدر
  • کلیدهای const و final و دلایل استفاده از آنها
  • توضیحات تکمیلی در مورد کاربرد های کیورد static
  • افزودن قابلیت شمارش تعداد نمونه های ساخته شده از یک کلاس
  • کپی کردن اشیاء با استفاده از clone
  • عدم کپی شدن اشیاء با عملیات انتساب و رفتار این عملیات
  • تشخیص کلاس یک شئ و نمونه ی ساخته شده با عملگر instanceof
  • تعین نوع پارامترهای ورودی متد ها (type hinting)
  • مقداردهی خصوصیت های خاص فرزندان یک کلاس در متد سازنده ی آن
  • استفاده از متد سازنده ی کلاس پدر/والد در کلاس های فرزند
  • توضیحات تکمیلی در مورد کیورد final
  • جلوگیری از extend شدن یک کلاس با استفاده از کیورد final
  • ثابت های جادویی برای دریافت نام کلاس، متد و فضای نام کنونی
  • دریافت اطلاعات همه ی خصوصیات یک شئ و کلاس
  • دریافت مشخصات همه ی متدهای یک شئ و کلاس
  • آشنایی کلی با زبان UML و مدلسازی ساختار کلاس های یک سیستم
  • کلاس های abstract در PHP و کاربرد آنها
  • متدهای abstract و توضیح آن
  • رابط ها (interfaces) و دلیل استفاده از آن ها
  • آشنایی با مفهوم Object Iteration
  • اصول و مفاهیم برنامه نویسی شئ گرا :
  • مفهوم ارث بری (Inheritance)
  • مفهوم مخفی سازی (Encapsulation)
  • مفهوم چند شکلی (Polymorphism)
  • مفهوم انتزاع/تجرید (Abstraction)
  • Serialization : تبدیل اشیاء و متغیرهای مختلف به رشته و بازیابی آن ها
  • کاربرد مهم تبدیل اشیاء به رشته و ذخیره سازی مستقیم آنها در فایل، سشن و دیتابیس
  • دیدن کاربرد serialization در محبوبترین cms دنیا ، وردپرس
  • دیدن تمام متدها و خصوصیت های mysqli و PDO و نحوه ی جستجو برای یادگیری کاربرد آنها
  • طراحی ساختار کلاس های وسایل نقلیه
  • مینی پروژه : طراحی و پیاده سازی ساختار کلاس بندی اشیاء هندسی مختلف و تشریح مفاهیم پیشرفته ی شی گرایی در بستر آن
  • مینی پروژه : طراحی کلاس های وسایل نقلیه و تشریح مفاهیم شئ گرایی در روند پیاده سازی آن
  • تمرین

فصل 18  : مباحث متفرقه، کاربردی و پیشرفته  

  • تشریح بعضی مطالب تکمیلی و جامانده
  • راه حل های رفع مشکل نمایش ؟؟؟؟؟ به جای حروف فارسی
  • پاسخ به برخی از سوالات مطرح شده
  • انجام serialization دلخواه با پیاده سازی رابط Serializable از پیش تعریف شده
  • تشریح مشکل لود کردن فایل کلاس های PHP شما برای استفاده
  • استفاده از تابع __autoload() برای لود کردن خودکار کلاس ها
  • استثناها و مدیریت آن ها در PHP (Exeption Handling)
  • تشریح مفهوم استثناها در PHP و دلایل استفاده از آن ها
  • تعریف یک کلاس برای ایجاد یک نوع خطای (استثنای) دلخواه
  • تشریح ساختار بلاک try...catch و دلایل و نحوه ی استفاده از آن
  • معرفی بعضی از استثناهای پیش تعریف شده ی PHP
  • عبارت های منظم و تطبیق الگوها (Regular Expressions & Pattern Matching)
  • تشریح مفهوم الگوها (Patterns) و دلایل استفاده از آن ها
  • معرفی یک وبسایت برای تست عبارت های منظم به صورت آنلاین
  • جداکننده ها، کاراکتر کلاس ها، تکرارکننده ها و ...
  • تشریح و نوشتن الگوی چندین داده ی خاص از جمله ایمیل، آدرس، و شماره تلفن
  • استخراج داده های خاص از یک رشته و متن بزرگ
  • توابع PHP برای کار با عبارت های منظم
  • استخراج تمامی ایمیل ها از یک متن بزرگ
  • استخراج تمام url ها از یک متن بزرگ
  • استخراج تمام شماره تلفن ها از یک متن بزرگ
  • اعتبارسنجی و پاکسازی داده ها با استفاده از عبارت های منظم
  • توضیح کتابخانه ی CURL و آشنایی با آن
  • فعال سازی ماژول curl در wamp
  • دریافت محتوای صفحات وب با استفاده از URL آنها
  • چند مثال جالب و کاربردی در استفاده از کتابخانه ی curl :
  • دریافت تعداد لایک ها و share های یک url در شبکه های اجتماعی با استفاده از curl
  • دریافت محتوا و سورس کد یک url با استفاده از کتابخانه ی curl
  • دریافت کل لینک های درون یک صفحه ی وب از طریق کدهای php
  • دریافت کل تصاویر درون صفحه ی وب با استفاده از curl
  • ارسال ایمیل از طریق PHP
  • استفاده از تابع پیشفرض mail در php
  • استفاده از کتابخانه ی phpmailer
  • توضیح کتابخانه ی GD و آشنایی با آن
  • فعال سازی ماژول GD در wamp
  • ایجاد و ویرایش تصاویر در PHP با استفاده از کتابخانه ی gd
  • چند مثال جالب و کاربردی در استفاده از کتابخانه ی GD :
  • ساخت یک عکس مستطیلی ساده و رنگبندی آن
  • ایجاد یک تصویر از متن ها
  • ایجاد یک تصویر و قرار دادن متن بر روی محیط یک دایره
  • تغیر سایز و کوچک و بزرگ کردن تصویر با استفاده از کتابخانه gd
  • برش یا Crop کردن تصویر با استفاده از GD
  • توضیح در مورد کدهای امنیتی (Captcha) در فرم ها
  • منطق و نحوه ی پیاده سازی و استفاده از کدهای امنیتی (CAPTCHA) در فرم ها
  • یک مثال کاربردی از کدهای امنیتی در یک فرم html
  • تشریح مفهوم وب سرویس و آشنایی با کاربردهای آن
  • استفاده از خدمات دیگر سایت ها با بهره گیری از وب سرویس آن ها
  • توضیح در مورد Soap و رابط اتصال به وب سرویس
  • چند مثال کاربردی در مورد استفاده از وب سرویس
  • دریافت آب و هوای یک شهر با استفاده از وب سرویس و کدهای php
  • دریافت اطلاعات مربوط به یک کشور خاص با php
  • دریافت اطلاعات مربوط یه مسابقات فوتبال با استفاده از وب سرویس آن
  • استفاده از پنل های SMS و ارسال SMS از طریق PHP با بهره گیری از وب سرویس
  • چند نمونه مثال کاربردی : ارسال SMS، دریافت اعتبار پنل SMS و ایجاد یک مخاطب و ...
  • درگاه پرداخت بانکی و توضیح در مورد روش و منطق پیاده سازی آن ها
  • توضیح و تشریح ایجاد کد درگاه پرداخت پارس پال
  • توضیح در مورد انجام کارهای اتوماتیک پس از تائید پرداخت موفقیت آمیز کاربر
  • توضیح و تشریح کد PHP درگاه پرداخت بانک ملت
  • نمونه کد درگاه بانک ملت به همراه سند PDF راهنمای آن
  • فریمورک های PHP و مدل MVC
  • آشنایی با مدل MVC
  • توضیح دلایل استفاده از مدل MVC
  • تشریح مفاهیم Model, View و Controller در مدل MVC و وظایف هر بخش
  • معرفی چند مورد از فریم ورک های MVC معروف PHP
  • آشنایی با مفهوم فریم ورک
  • تشریح مجموعه مزایای فریمورک ها برای استفاده در پروژه های PHP
  • توضیح یک نمونه از روند اجرای کار در فریمورک های PHP
  • آیا استفاده از فریمورک ها ضروری است ؟

فصل 19 :  پیاده سازی پروژه های جامع، کاربردی و عملی

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

پروژه 1 : ایجاد یک سیستم پرسش و پاسخ (Ticketing System)

اهداف پروژه ی 1 :

  • آشنایی با نحوه طراحی و ایجاد پایگاه داده برای این اسکریپت
  • آشنایی با نحوه ی نمایش، ثبت، حذف و ویرایش یک موجودیت (محتوا - سوال/جواب ) در پایگاه داده
  • آشنایی با نحوه ی پیاده سازی برنامه بر اساس پارامترها و ایجاد راحتی بیشتر در تغیرها بعدی
  • آشنایی با نحوه ی پیاده سازی عملیات ورود و خروج کاربر (ادمین)
  • آشنایی با نحوه ی پیاده سازی قابلیت جستجو برای سایت (فرم جستجو)
  • آشنایی با منطق و نحوه ی صفحه بندی مطالب (سوالات) در برنامه های PHP
  • آشنایی با نحوه ی مدیریت سیستم بر روی رابط کاربری اصلی و عدم استفاده از پنل مدیریت
  • آشنایی با برخی ترفندهای امنیتی در پیاده سازی برنامه های PHP
  • آشنایی با نحوه ی آگاه سازی کاربران از طریق ایمیل و SMS پس از رویدادی خاص

پروژه 2 : ایجاد یک وبسایت گالری و فروش تصاویر با امکان پرداخت آنلاین و خرید تصاویر

اهداف این پروژه :

  • آشنایی با نحوه طراحی و ایجاد پایگاه داده برای این اسکریپت
  • آشنایی با نحوه ی نمایش، ثبت، حذف و ویرایش موجودیت ها (کاربر، تصویر، سفارشات و ... ) در پایگاه داده
  • آشنایی با نحوه ی پیاده سازی برنامه بر اساس پارامترها و ایجاد راحتی بیشتر در تغیرها بعدی
  • آشنایی با نحوه ی پیاده سازی عملیات ورود و خروج کاربران موجود در پایگاه داده
  • آشنایی با نحوه ی مدیریت سیستم در یک پنل جداگانه
  • آشنایی با مفهوم سبد خرید و نحوه ی پیاده سازی آن
  • آشنایی با محافت از فایل های فروشی و دانلود انها از طریق یک اسکریپت بررسی کننده ی خریدار !
  • آشنایی با علامت گذاری بر روی تصاویر برای جلوگیری از دانلود تصاویر اصلی و نمایش دمو از آنها
  • آشنایی با نحوه ی پیاده سازی قابلیت فراموشی رمز عبور و ریست کردن پسورد کاربر
  • آشنایی با نحوه ی دسته بندی محتوا در وبسایت ها
  • آشنایی با نحوه ی گزارش گیری از داده های موجود در پایگاه داده با کوئری ها SQL
  • آشنایی با نحوه ی استفاده از درگاه پرداخت و انجام عملیات اتوماتیک پس از پرداخت موفقیت آمیز (شبیه سازی درگاه پرداخت)
  • آشنایی با میزان پردازش کار ها در PHP و راه حل هایی برای نوشتن کدهایی بهینه تر از لحاظ منابع مصرفی
  • آشنایی با مسائل موجود در هنگام پرداخت آنلاین و استفاده از سبد خرید (قفل سبد، مشکل کوکی به تنهایی و ...)
  • انجام تمرین برای شما و تکمیل برخی قسمت های پروژه
  • پروژه ی جامع شئ گرا :

پروژه 3 :  ایجاد سیستم مدیریت محتوا (وبلاگ) با برنامه نویسی OOP

قابلیت ها و امکانات این پروژه (وبلاگ - cms) :

  • وجود یک کاربر ادمین برای مدیریت محتوای وبلاگ
  • قابلیت ورود و خروج کاربر ادمین به وبلاگ
  • وجود یک پنل مدیریت که فقط کاربر ادمین می تواند به آن دسترسی داشته باشد
  • کارهایی که در پنل مدیریت می توان انجام داد عبارتند از :
  • ارسال یک مطلب جدید در دسته بندی خاص
  • مدیریت مطالب شامل حذف و ویرایش مطالب ارسال شده
  • مدیریت دسته بندی های وبلاگ
  • مدیریت نظرات مطرح شده برای مطالب
  • قابلیت حذف، تائید کردن و عدم تائید دیدگاه های ارسالی
  • قابلیت افزودن منوی جدید از طریق پنل مدیریت و نمایش آن در سایدبار وبلاگ
  • قابلیت حذف و ویرایش منوهای سایت
  • قابلیت مشخص کردن ترتیب نمایش منو ها در سایدبار
  • قابلیت ویرایش و حذف منوها از طریق پنل مدیریت
  • وجود صفحه ی تنظیمات وبلاگ در پنل مدیریت
  • قابلیت تغیر و آپدیت کردن تنظیمات وبلاگ
  • قابلیت هایی که در نمای ظاهری وبلاگ (CMS) وجود دارد :
  • نمایش آخرین مطالب ارسالی در صفحه نخست وبلاگ
  • قابلیت نمایش مطالب یک دسته بندی خاص
  • قابلیت جستجو در مطالب وبلاگ با تطبیق دقیق عبارت جستجو شده
  • قابلیت صفحه بندی مطالب وبلاگ (بخشی از آن به عنوان تمرین به شما محول شده)
  • قابلیت نمایش منوهای جستجو و دسته بندی ها در سایدبار سایت
  • قابلیت نمایش منوی های دلخواه ایجاد شده در پنل مدیریت بر اساس ترتیب آنها
  • قابلیت نمایش مطلب در یک صفحه ی خاص و جداگانه (صفحه مطلب)
  • قابلیت ارسال نظر و دیدگاه برای مطالب وبلاگ
  • قابلیت لایک کردن نظرات بازدیدکننده ها (دقیقا شبیه همین چیزی که در بخش نظرات سون لرن داریم)
  • هر کاربر فقط 1 بار می تواند به یک نظر رای(لایک) دهد .
  • محدودیتی برای مدیر وبلاگ در لایک کردن نظرات وجود ندارد و به هر تعداد می تواند لایک کند
  • امکان فعال کردن و غیرفعال کردن قابلیت لایک نظرات از طریق پنل مدیریت

فصل 20 : جمع بندی، ادامه کار و توصیه های مهم

  • جمع بندی مباحث دوره
  • توصیه هایی برای حرفه ای تر شدن
  • مشخص نمودن مسیر آینده ی شما : بعد از پایان این دوره چه کنم ؟

جلسات دوره

عملگرها در PHP

1 ساعت و 38 دقیقه

نظر دانشجویان دوره های سون لرن

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

احسان غضنفری

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

آسیه جعفری

مشاوره پیش از خرید

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

شماره تماس
۰۲۱۴۴۰۲۰۴۸۲
تلگرام
@sup_7learn

ثبت نام در دوره

نوع دوره
دوره مجازی
نوع استفاده از دوره
دوره دانلودی
۱۵۷,۰۰۰ تومان
گزارش مشکل