NESTED

آموزشی
آموزش زبان برنامه نویسی PHP

26 پست در این موضوع قرار دارد

php_logo.jpg

در این بخش قصد داریم تا شما را با نحوه برنامه نویسی و طراحی صفحات وب با زبان PHP آشنا کنیم . در هر صحفحه به توضیح نحوه کار و syntax استفاده از دستورات پرداخته و سپس سعی می کنیم تا با ارائه مثال های عملی آنها را در عمل به شما نمایش بدهیم.

این بخش شما لیست زیر می باشد :

  1. مقدمه آموزش PHP
  2. ساختار دستوری PHP
  3. نحوه کار با فرم ها در PHP
  4. توابع پیش ساخته زبان PHP
  5. کار با فایل ها در PHP
  6. مباحث پیشرفته PHP
  7. اعتبار سنجی اطلاعات در PHP

به اشتراک گذاری این پست


لینک به پست

  1. مقدمه آموزش PHP

معرفی زبان PHP :

PHP یک زبان برنامه نویسی اسکریپتی اپن سورس است که برای طراحی برنامه های تحت وب سمت سرور ( Server Side ) ، به کار می رود .

سمت سرور بودن به این معناست که صفحات PHP ابتدا توسط سرور PHP ( که می تواند از نوع Apache یا IIS ) باشد ، پردازش شده و سپس خروجی به صورت کدهای HTML و جاوا اسکریپت ، برای اجرا به مرورگر کامپیوتر کاربر ارسال می شود . به عبارت دیگر وظیفه اجرای صفحات PHP به عهده کامپیوتر سرور وب هاست سایت آن می باشد . ( برخلاف HTML یا جاوا اسکریپت که اجرای آنها توسط خود مرورگر کاربر انجام می شود ) .

PHP مخفف عبارت Hypertext PreProcessor به معنای پیش پردازنده فرا متن می باشد که در سال 1994 توسط رسموس لردورف ایجاد شد و سپس توسط سایرین توسعه و گسترش پیدا کرد .

ساختار زبان PHP بسیار شبیه به زبان c و در نسخه های جدید شبیه به جاوا می باشد و به همین دلیل از محبوبیت فراوانی برخوردار است . از مشهورترین نرم افزارهای ساخته شده با PHP می توان به جوملا ، WikiMedia و یا Mambo اشاره کرد . سایت های فراوانی در جهان براساس زبان PHP نوشته شده اند و هر روز نیز بر تعداد آنها اضافه می شود . از مهمترین آنها می توان به ویکی پدیا اشاره کرد .

پی‌اچ‌پی امکان استفاده از انواع مختلفی از پایگاه‌های داده را از جمله MySQL، اوراکل، IBM DB۲ ،Microsoft SQL Server ،PostgreSQL و SQLite با دستورهایی ساده فراهم می‌سازد. پی‌اچ‌پی روی بیشتر سیستم‌عامل‌های معروف از جمله لینوکس، یونیکس، ویندوز و Mac OSX و با اغلب کارگزارهای وب (Web Server) معروف، قابل اجراست.

پیش از آغاز به یادگیری PHP ، شما باید آشنایی کافی با زبان های HTML و جاواسکریپت داشته باشید.

مزیت های PHP :

  • PHP یک ابزار اپن سورس و رایگان است و به همین دلیل هاست هایی که میزبانی آن را انجام می دهند ، بسیار ارزانتر از هاست های .Net هستند .
  • پی اچ پی بر روی تمامی پلتفورم های معروف مثل Windows , Linux و iOs اجرا می شود .
  • PHP یک زبان ساخت یافته بوده و یادگیری آن بسیار ساده است .
  • ابزار کار با PHP همگی اپن سورس بوده و استفاده از آنها رایگان هستند .

برای استفاده از PHP به چه نیاز دارید ؟

برای استفاده و اجرای صفحات PHP شما باید سرور آپاچی ( Apache ) یا IIS را بر روی کامپیوتر خود نصب کنید . یا اینکه صفحه خود را بر روی یک سرور که از PHP پشتیانی می کند ، اجرا نمایید .

به اشتراک گذاری این پست


لینک به پست

نحوه نصب و اجرای PHP :

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

شما از PHP می توانید برای 3 منظور کلی استفاده نمایید :

  1. وب سایت ها و برنامه های کاربردی تحت وب ( اسکریپت نویسی سمت سرور )
  2. برنامه های کاربردی دسکتاپ ( GUI )
  3. برنامه نویسی خط فرمان

برای برنامه نویسی و استفاده از PHP به 3 چیز کلی نیاز دارید :

  1. برنامه یا ابزاری برای طراحی و کدنویسی :
    در ساده ترین حالت می توانید از برنامه Notepad برای کدنویسی استفاده نمایید . اما نرم افزارهای حرفه ای مانند Dreamweaver یا Rad PHP هستند که در یک محیط ویژوال و IDE امکان کدنویسی و طراحی نرم افزاهای PHP را برای شما فراهم می آورند .
  2. سرور اجرا کننده PHP :
    در اینجا 2 حالت مختلف به وجود می آید :

    1. اجرای PHP بروی کامپیوتر خودتان : چنانچه بخواهید برنامه ها و صفحات وب PHP را بر روی کامپیوتر خود اجرا نمایید ، نیاز به تغییر خاصی ندارید . سیستم عامل های ویندوز ، مک و لینوکس از PHP به طور کامل پشتیانی می کنند . در ویندوز سرور Microsoft IIS و در لینوکس و مک سرور Apache وظیفه اجرا و پردازش فایل های PHP را برعهده دارند . این سرور ها به صورت پیش فرض بر روی سیستم عامل های نام برده نصب هستند و نیاز به هیچ برنامه جانبی نیست .
    2. اجرای PHP بروی یک سرور هاست ( اینترنتی ) : در اینجا نیز کار بسیار راحت است . شما کافی است هاست خود را بروی یک سرور خریداری نمایید که از PHP پشتیانی می کند . سپس کافی است فایل های ساخته شده خود را بروی آنها Upload کرده و اجرا نمایید . موتور این سرور ها صفحات را اجرا کرده و سپس خروجی را به مرورگر کاربر ارسال می کنند . به علت رایگان بودن PHP سرور های هاست PHP بسیار ارزان و در دسترس هستند .
    3. یک مرورگر وب :
      شما برای مشاهده صفحات PHP نیاز به یک مرورگر دارید که بر روی تمام سیستم عامل ها موجود است . تمامی مرورگرهای مطرح موجود ، به طور کامل از PHP پشتیانی می کنند .


      منابع دانلود و راهنمای PHP :
      در این قسمت منابع اصلی دانلود PHP و پایگاه داده آن یعنی MySQL را به شما معرفی کرده ایم :
      1. سایت رسمی و مرجع آموزش PHP به زبان انگلیسی : http://www.php.net
      2. دانلود PHP و ابزارهای جانبی: http://www.php.net/downloads.php
      3. دانلود MySQL از سایت رسمی: http://www.mysql.com/downloads/
      4. دانلود سرور Apache از سایت رسمی: http://httpd.apache.org/download.cgi

به اشتراک گذاری این پست


لینک به پست

ساختار دستوری PHP :

صفحات PHP از دو جزء اصلی تشکیل شده اند :

  1. تگ های HTML : ساختار صفحه های PHP ، کاملا با صفحه های HTML یکسان هستند . با این تفاوت که در این صفحات ، علاوه بر تگ های HTML می توان اسکریپت هایی را به زبان PHP برای اجرای دستورات مورد نظر خود ، به آنها اضافه نمایید . در این صفحات سایر اجزا با همان کد و ساختار صفحات HTML تعریف می شوند .
  2. اسکریپت های PHP : می توانید در هر جای صفحات PHP ، کدها و دستورات خود را که با این زبان نوشته اید را اضافه کنید .
    هر بلوک اسکریپت PHP ، همواره با عبارت php?> شروع شده و به عبارت <? خاتمه می یابد . دستورات مورد نظر بین این دو عبارت قرار می گیرند . هر خط دستوری PHP باید با عبارت سمیکلون ; به پایان برسد . این عبارت باعث می شود تا کدهای دستوری ، از هم جدا شده و قابل تشخیص شوند .

شکل کلی ( Syntax ) نوشتن یک اسکریپت PHP به صورت زیر است :

Syntax

<?php
.... php کدها و دستورات مورد نظر به زبان .... ;
?>
مثال :
<?php
echo "Hello World" ;
?>

صفحات PHP بر روی سرور اجرا شده و سپس نتایج خروجی به صورت کدهای ساده شده HTML و جاوا اسکریپت ، برای اجرا به مرورگر کامپیوتر کاربر ارسال می شود .

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

Syntax

<?
.... php کدها و دستورات مورد نظر به زبان .... ;
?>
مثال :
<?
echo "Hello World" ;
?>

به اشتراک گذاری این پست


لینک به پست

نحوه قرار دادن اسکریپت های PHP در صفحات :

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

< html >
< head >
</head>
<body>
< p > This is a HTML Paragraph < /p >
<?php
echo "Hello World" ;
?>
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

قرار دادن توضیحات comments در اسکریپت های PHP :

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

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

چنانچه توضیح در حد یک خط باشد ، با قرار دادن کد // در ابتدا خط ، توضیح خود را بعد از آن بنویسید .

ولی چنانچه حجم توضیح بیش از یک خط باشد ، باید علامت */ را در ابتدای توضیح و علامت /* را در انتهای آن قرار دهید . از این روش برای توضیحات چند خطی استفاده می شود .

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

Syntax توضیح یک خطی

// متن توضیح 

Syntax توضیح چند خطی

/*
خط 1 توضیح
خط 2 توضیح
خط 3 توضیح
...
*/

مثال : درمثال زیر در یک صفحه PHP هم توضیح یک خطی و هم چند خطی قرار داده ایم . دقت کنید که این توضیحات در خروجی نمایش داده نمی شوند :

< html >
< head >
</head>
<body>
< p > This is a HTML Paragraph < /p >
<?php
// متن توضیح یک خطی
echo "Hello World" ;
/*
خط 1 توضیح چند خطی
خط 2 توضیح چند خطی
...
*/
?>
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

نحوه تعریف و استفاده از متغیرها در PHP :

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

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

شکل کلی تعریف و مقدار متغیرها در PHP به صورت زیر است :

<?php
$ var_name = value ;
?>
مثال : $ My_Name = " Developer " ;
$ Int_Num = 12 ;

نکته : توجه کنید که اگر علامت $ را فراموش کنید ، متغیر تعریف نخواهد شد .

نکته 2 : زبان PHP در تعریف متغیرها به کوچک و بزرگ بودن حروف حساس است . بنابراین برای مثال متغیر Num با num متفاوت خواهد بود .

قوانین نام گذاری متغیرها در PHP :

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

  1. نام یک متغیر حتما بایستی با یک حرف یا علامت _ شروع شود . برای مثال نام های Num یا IntNumber_ صحیح و نام 1int غلط می باشد .
  2. نام متغیرها فقط می تواند شامل حروف ، اعداد و یا علامت _ باشد . برای مثال نام Int_Num صحیح و نامی مثل Int%Num غلط است .
  3. نام یک متغیر نمی تواند شامل فاصله باشد . اگر نام متغیر بیش از یک کلمه است ، باید با علامت _ آن را از هم جدا کرده و یا با بزرگ و کوچک نوشتن حروف ، کلمات را از هم تمایز دهید . برای مثال Int_Num یا IntNum . توجه داشته باشید مثلا نام Int Num غلط است .

انواع متغیرها در PHP :

برخلاف زبان های برنامه نویسی مثل VB یا ASP.Net در PHP لازم نیست ، نوع داده متغیر تعریف شود . هنگامی که متغیر را تعریف می کنید ، در زمان مقدار دهی ، PHP به طور اتوماتیک نوع داده ای را تبدیل کرده و در متغیر ذخیره می کند . برای مثال اگر یک متغیر را تعریف کرده و سپس مقدار یک عدد را به آن نسبت دهید ، PHP به طور اتومانیک نوع آن متغیر را عددی تعیین می کند . برای مواردی مثل متن و یا boolen نیز وضع به همین ترتیب است .

در متغیر های تعریف شده در مثال جدول synatx در بالای صفحه ، متغیر متغیر My_Name از نوع متن ( String ) و متغیر Int_Num از نوع عددی ( Integer ) خواهند بود . دقت کنید که مقدار های متنی باید در بین دو علامت " " تعریف شوند . ولی برای عدد اینگونه نیست .

به اشتراک گذاری این پست


لینک به پست

تابع در PHP :

همانند سایر زبان های برنامه نویسی در PHP نیز ، توابع یکی از مهمترین ابزارها برای طراحی برنامه ها هستند . PHP دارای بیش از 700 تابع درون ساخته است که امکان انجام بسیاری از کارها را را راحتی در اختیار برنامه نویسان قرار می دهد .

تابع چیست و چه کاربری دارد ؟ :

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

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

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

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

تعریف تابع در زبان PHP :

شکل کلی تعریف تابع در زبان PHP به صورت زیر است :

تعریف تابع در 7 با کلمه کلیدی function آغاز شده و سپس نام آن قرار می گیرد . نام تابع باید منحصر به فرد و غیر تکراری باشد . از قوانین زیر در نام گذاری توابع در 7 استفاده می شود :

  1. نام یک تابع حتما بایستی با یک حرف یا علامت _ شروع شود . برای مثال نام های MyFunction یا MyFunction_ صحیح و نام 1function غلط می باشد .
  2. نام توابع فقط می تواند شامل حروف ، اعداد و یا علامت _ باشد . برای مثال نام My_Function صحیح و نامی مثل My%Function غلط است .
  3. نام یک تابع نمی تواند شامل فاصله باشد . اگر نام تابع بیش از یک کلمه است ، باید با علامت _ آن را از هم جدا کرده و یا با بزرگ و کوچک نوشتن حروف ، کلمات را از هم تمایز دهید . برای مثال My_Function یا MyFunction . توجه داشته باشید مثلا نام My Functionغلط است .
  4. نام توابع نمی تواند معادل کلمات کلیدی در زبان 7 باشد . برای مثال نام یک تابع نمی تواند print باشد .

پس از نام تابع پرانتز باز و بسته قرار می دهیم . همچنین دستورات تابع بین دو { و } قرار می گیرد . هر کدی که بین این دوعلامت باشد ، جزء تابع خواهد بود .

 <?php
function نام تابع ( )
{
...
دستورات تابع
....
}
?>
مثال :
<?php
function My_Function ( )
{
...
echo " PHP Toturail " ;
....
}
?>

فراخوانی تابع در PHP :

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

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

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

<?php
نام تابع ( ) ;
?>
مثال :
<?php
My_Function ( ) ;
?>

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

< html >
< head >
</head>
<body>
<?php
function Show_Msg ( ) تعریف تابع
{
echo " You are learning PHP " ;
}
?>
< p > This is a HTML Paragraph < /p >
<?php
Show_Msg ( ) ; فراخوانی تابع
?>
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

ارسال پارامتر ( Parameter ) به تابع

مقدمه :

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

پارامتر چیست و چه کاربردی دارد :

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

هر تابع می تواند چندین پارامتر داشته باشد . مقادیری که می خواهیم به تابع ارسال کنیم تا در اجرای دستورات استفاده شوند را توسط پارامترهای تعیین شده به تابع ارسال می کنیم . فرض کنید که یک تابع عملیات جمع دو متغیر را انجام می دهد . می توانیم در هر بار فراخوانی تابع ، دو مقداری که مورد نظرمان است را توسط دو پارامتر به تابع ارسال کنیم ، تا آن دو را با هم جمع نماید . پارامترهای مورد نظر خود را به ترتیب در پرانتز مقابل نام تابع به ترتیب تعریف کرده و چنانچه بیش از یکی هستند ، آنها را با علامت کاما ( , ) از هم جدا می کنیم . در PHP لزومی به تعیین نوع داده ای پارامترها نیست .

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

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

<?php
function نام تابع ( Parameter 1 , Parameter 2 , ... )
{
...
دستورات تابع
....
}
?>
مثال :
<?php
function My_Function ( $txt_Name , $txt_Family )
{
...
echo ( $txt_Name , $txt_Family ) ;
....
}
?>

ارسال مقادیر پارامترها به تابع :

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

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

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

< html >
< head >
</head>
<body>
<?php
function Show_Name ( $txt_Name , $txt_Family ) تعریف تابع و پارامترهای لازم
{
echo "My Name is : " . $txt_Name . " " . $txt_Family ;
}
?>
< p > This is a HTML Paragraph < /p >
<?php
Show_Name ( "Mehrdad" , "Fatahi" ) ; فراخوانی تابع و ارسال پارامترها
?>
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

طراحی و کار با فرم ها در PHP :

از فرم ها در PHP ، برای دریافت اطلاعات از کاربر استفاده می شود . فرم های HTML می توانند شامل یک یا چندین کنترل کادر متن ، دکمه های انتخابی و یا منوهای کرکره ای باشند . کاربر بایستی مقادیر لازم را در کنترل های تعیین شده وارد کند .

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

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

کلیه کنترل های دریافت اطلاعات و محتویات فرم باید در دورن تگ فرم قرار بگیرند .

شکل کلی و نمونه طراحی یک فرم HTML ساده در صفحات PHP به صورت زیر است . این فرم دارای دو کادر متن برای دریافت نام و سن از کاربر و یک دکمه ارسال ( Submit ) است ، که با فشردن آن فرم به مقصد ارسال می شود

<form action="welcome.php" method="post">
Name: <input type="text" name="fname" />
Age: <input type="text" name="age" />
<input type="submit" />
</form>

تگ فرم دو خاصیت مهم دارد که تعیین کننده نحوه عملکرد فرم است . خاصیت action و method . در ابتدا به تشریح کارایی این دو خاصیت کلیدی در فرم ها می پردازیم :

  • خاصیت action : این خاصیت از نوع آدرس ( URL ) بوده و تعیین کننده آدرس فرم یا صفحه ای است که قرار است اطلاعات فرم به آن ارسال شود . اطلاعات ارسال شده در صفحه مقصد مورد استفاده و پردازش قرار می گیرد .
    برای مثال اگر مقدار آن را برابر با submit.php قرار دهیم ، اطلاعات فرم پس از submit شدن به صفحه تعیین شده ارسال شده و مرورگر نیز به همان صفحه هدایت می شود .
    تعیین مقدار این خاصیت اجباری است و اگر مقدار آن را خالی رها کنیم ، برنامه دچار نقص می شود . در این حالت فرم به یک آدرس پیش فرض مثل form.html می رود .
  • خاصیت method : این خاصیت روش ارسال اطلاعات فرم به صفحه را مقصد تعیین کرده و می تواند یکی از دو مقدار GET یا POST را داشته باشد .
    این دو حالت با هم تفاوت عملکرد نداشته و فقط در نحوه ارسال اطلاعات از روش های متفاوتی استفاده می کنند . در جدول زیر به تشزیح نحوه استفاده از هر 2 متد پرداخته ایم :
    • متد GET : در این روش اطلاعات بصورت ساده و کد نشده منتقل میشوند. این روش دقیقا مشابه اینه که اطلاعات رو بصورت Query به URL اضافه کرده باشیم و وقتی فرم رو Submit می کنیم، این اطلاعات خودش به URL اضافه میشه و قابل دیدن میشه. باید توجه داشت که اطلاعات حساسی مثل Password نباید در معرض دید قرار بگیره پس نباید برای فرمی که اطلاعات مهمی داره از GET استفاده کنیم تا اطلاعات فرم توی Address Bar قابل رویت نشه. به اضافه اینکه IE توی حجم اطلاعات GET محدودیت داره. به این صورت که وقتی اطلاعات فرم بصورت Query به URL اضافه میشه، طول این URL حداکثر میتونه 2083 کاراکتر باشه. در روش GET، چون اطلاعات فرم کد نمیشوند و ساده منتقل میشوند ، حجم کمتری دارند . اطلاعات فرم در این حالت، توسط متد GET_$ در صفحه مقصد قابل دریافت است . همچنین در روش GET از Upload خبری نیست، یعنی با GET نمیشه آپلود کرد.
      پس از submit فرم در این روش ، اطلاعات فرم به صورتی که در کد زیر نمایش داده شده به آدرس صفحه اضافه شده و به صفحه مقصد منتقل می شوند :

http://www.domain.com/submit.php? fname = morteza & age = 26 

  • نمونه این روش را مطمئنا قبلا در بسیاری از سایت ها مشاهده کرده اید .
  • متد POST : در این روش اطلاعات فرم برای ارسال به صفحه مقصد کد شده و به صورت مخفی منتقل می شوند . در این حالت دیگر اطلاعات به صورت نمایان در آدرس بار مرورگر قابل مشاهده نبوده و برای ارسال اطلاعات حساس مثل رمز عبور مناسب است .
    اطلاعات ارسال شده با این متد در صفحه مقصد توسط متد POST_$ قابل دریافت است .

فرم چگونه مقادیر را خوانده و به صفحه مقصد ارسال می کند :

همانطور که مشاهده کردید در یک فرم همواره چندین کنترل ورودی اطلاعات وجود دارد . هنگامی که فرم submit می شود ، مرورگر به صورت اتوماتیک تمامی مقادیر کنترل های ورودی به همراه نام آن کنترل ها ( خاصیت name هر کنترل ) را خوانده و به آدرس صفحه اضافه می کند ( این کار در متد POST به صورت مخفی انجام میشود ) . سپس مرورگر صفحه را به همراه جفت نام کنترل ها و مقادیرشان به صفحه مقصد ، ارسال می کند .

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

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

در مثال زیر به تشریح کلیه مطالب گفته شده در طی یک مثال واقعی می پردازیم .

مثال عملی در طراحی یک فرم HTML و سپس ارسال آن به مقصد :

مثال : در مثال زیر یک فرم طراحی کرده ایم که از کاربر نام و سن وی را سوال می کند . سپس در صورت کلیک شدن دکمه فرمان Submit ، فرم به همراه مقادیر وارد شده در کنترل های متن ، به صفحه receive.php ارسال می شوند و آن مقادیر در صفحه جدید مجدد به کاربر نمایش داده می شود .

نکته مهم : توجه داشته باشید که اطلاعات با استفاده از متد get ارسال شده است

< html >
< head >
</head>
<body>
<form action="recevie.php" method="get">
Name:
<input type="text" name="fname" />
Age:
<input type="text" name="age" />
<input type="submit" />
</form>
</body>
</html>

پس از ارسال صفحه و اطلاعات به صفحه receive.php ، این اطلاعات توسط این صفحه دریافت شده و به کاربر نمایش داده می شود . کد این صفحه نیز به صورت زیر است :

<html>
<body>
Hello < ? php echo $_GET [ " fname " ] ; ? > ! < br / >
You are < ? php echo $_GET [ " age " ] ; ? > years old.
</body>
</html>

در قسمت های بعدی آموزش PHP ، به توضیح کامل روش دریافت اطلاعات ارسالی فرم ها می پردازیم .

به اشتراک گذاری این پست


لینک به پست

متد get و متغیر GET_$ در فرم های PHP

متد get :

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

همانطور که گفتیم 2 روش برای انتقال اطلاعات فرم ها در PHP وجود دارد . متد get و متد post . در این بخش می خواهیم نحوه ارسال اطلاعات یک فرم توسط متد get و سپس دریافت اطلاعات در صفحه مقصد ، توسط متغیر GET_$ را تشریح کنیم .

نحوه کار متد get :

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

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

<form action="recevie.php" method="get" >
Name:
<input type="text" name="fname" />
Age:
<input type="text" name="age" />
<input type="submit" />
</form>

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

  1. اول اینکه مرورگر به صفحه تعیین شده در خاصیت action یعنی صفحه receive.php ارسال می شود .
  2. دوم اینکه مرورگر نام کنترل های متن و مقادیرشان را به صورت زیر به آدرس صفحه اضافه کرده وآن صفحه را به مقصد ارسال می کند :
    آدرس در نوار آدرس مرورگر به صورت زیر در خواهد آمد . در این مثال فرض کرده ایم که کاربر برای نام مقدار Morteza و برای سن مقدار 26 را وارد کرده است :

http://www.domain.com/receive.php? fname = Morteza & age = 26 

چند نکته مهم :

در روش ارسال get ، اطلاعات درون فرم از طریق نوار آدرس مرورگر نمایش داده شده و بنابراین در معرض دید سایرین بوده و همچنین اطلاعت به راحتی حک می شوند . به همین دلیل نباید از این روش در ارسال اطلاعات حساس مثل رمز عبور و ... استفاده کرد و برای ارسال آنها از متد post استفاده کرد .

دوم اینکه حجم اطلاعاتی که با این روش می توانید ارسال نمایید ، محدود است .

دریافت اطلاعات ارسالی در صفحه مقصد و استفاده از آنها - متغیر GET_$ :

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

برای این منظور در صفحه مقصد از متغیر از پیش تعیین شده ، GET_$ برای دریافت اطلاعات ارسالی استفاده می شود . می توانید به تعداد متغیر های ارسالی به صفحه از متغیر GET_$ استفاده نمایید . فقط باید همان نامی که در فرم صفحه مبدا برای متغیر تعیین شده و همچنین در نوار آدرس مرورگر است ، استفاده نمایید .

تشریح روش با یک مثال عملی :

کد لازم برای دریافت مقادیر متغیرهای ارسالی ، که در فرم بالای صفحه ارسال شده است به صورت زیر است . در فرم دو متغیر fname و age داشتیم ، که در کد صفحه مقصد آن ها را به روش زیر دریافت کرده و در خروجی دوباره استفاده نموده ایم

<html>
<body>
Hello < ? php echo $_GET [ " fname " ] ; ? > ! < br / >
You are < ? php echo $_GET [ " age " ] ; ? > years old.
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

متد post و متغیر POST_$ در فرم های PHP

متد post :

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

همانطور که گفتیم 2 روش برای انتقال اطلاعات فرم ها در PHP وجود دارد . متد get و متد post . در این بخش می خواهیم نحوه ارسال اطلاعات یک فرم توسط متد post و سپس دریافت اطلاعات در صفحه مقصد ، توسط متغیر POST_$ را تشریح کنیم .

نحوه کار متد post :

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

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

 <form action="recevie.php" method="post" >
Name:
<input type="text" name="fname" />
Age:
<input type="text" name="age" />
<input type="submit" />
</form>

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

  1. اول اینکه مرورگر به صفحه تعیین شده در خاصیت action یعنی صفحه receive.php ارسال می شود .
  2. دوم اینکه مرورگر نام کنترل های متن و مقادیرشان را به صورت کد شده و مخفیانه به صفحه مقصد ارسال می کند :
    آدرس در نوار آدرس مرورگر به صورت زیر در خواهد آمد . در این مثال فرض کرده ایم که کاربر برای نام مقدار ali و برای سن مقدار 22 را وارد کرده است :

http://www.domain.com/receive.php

چند نکته مهم :

در روش ارسال post ، اطلاعات درون فرم کد شده و مخفی ارسال می شوند .بنابراین در معرض دید سایرین نبوده و همچنین اطلاعت به راحتی حک نخواهند شد . به همین دلیل باید از این روش در ارسال اطلاعات حساس مثل رمز عبور و ... استفاده کرد .

دوم اینکه حجم اطلاعاتی که با این روش می توانید ارسال نمایید ، نا محدود است .

امکان bookmark کردن صفحه در این روش وجود ندارد .

دریافت اطلاعات ارسالی در صفحه مقصد و استفاده از آنها - متغیر POST_$ :

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

برای این منظور در صفحه مقصد از متغیر از پیش تعیین شده ، POST_$ برای دریافت اطلاعات ارسالی استفاده می شود . می توانید به تعداد متغیر های ارسالی به صفحه از متغیر POST_$ استفاده نمایید . فقط باید همان نامی که در فرم صفحه مبدا برای متغیر تعیین شده ، استفاده نمایید .

تشریح روش با یک مثال عملی :

مطالب تشریح شده همراه با کد مورد نیاز آن را در مثال عملی زیر نمایش می دهیم .

کد لازم برای دریافت مقادیر متغیرهای ارسالی ، که در فرم بالای صفحه ارسال شده است به صورت زیر است . در فرم دو متغیر fname و age داشتیم ، که در کد صفحه مقصد آن ها را به روش زیر دریافت کرده و در خروجی دوباره استفاده نموده ایم :

<html>
<body>
Hello < ? php echo $_POST [ " fname " ] ; ? > ! < br / >
You are < ? php echo $_POST [ " age " ] ; ? > years old.
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

کار با تاریخ در PHP - توابع پیش ساخته زبان PHP

تابع ( ) date در PHP :

از تابع ( ) date در PHP ، برای نمایش و یا دستکاری ساعت و تاریخ استفاده می شود .

از تابع ( ) date می توانید برای انجام اموری مثل نمایش تاریخ جاری سرور ، نمایش یک تاریخ خاص ، محاسبه زمان ، ایجاد یک برچسب زمانی و ... استفاده نمایید . این تابع یکی از توابع پیش ساخته و اصلی زبان PHP است .

شکل کلی تعریف و استفاده از تابع ( ) date در PHP به صورت زیر است :

< ? php
date ( format ) ;
? >

توضیح هر یک از موارد syntax در مطلب فوق

پارامتر format :

پارامتر format تعیین کننده نحوه نمایش تاریخ توسط تابع ( ) date است . در این پارامتر کاراکترهای زیر را می توانید به کار ببرید :

تعیین این پاامتر برای تابع اجباری است .

  • کاراکتر d : این کاراکتر ، نمایشگر شماره روز در تابع date بوده و عددی بین 01 تا 31 است .
  • کاراکتر m : این کاراکتر نمایشگر عدد ماه در تابع date بوده و عددی بین 01 تا 12 است .
  • کاراکتر Y : کاراکتر Y نمایشگر عدد سال در تابع date بوده و یک عدد چهار رقمی است .
  • کاراکترهای جدا کننده : از کاراکترهایی مثل " / " ، " - " ، " . " و ... می توان برای جدا نمودن عددهای سال و ماه و روز در تایع date است نمود.

مثال عملی : در مثال زیر نحوه به کار بردن تابع date در نمایش تاریخ و حالت های مختلف پارامتر format در آن را نمایش داده ایم :

: کد

< ? php
echo date("Y/m/d") . " < br / > ";
echo date("Y.m.d") . " < br / >";
echo date("Y-m-d");
? >

: خروجی

2012/03/11
2012.03.11
2012-03-11

توابع مهم و کاربردی زیر مجموعه تابع ( ) date :

در لیست زیر برخی از توابع مهم و کاربردی مرتبط با تابع date را معرفی کرده ایم . این توابع امکانات مهم و سودمندی برای کار با زمان در اختیار ما قرار می دهند . برای دریافت اطلاعات لازم راجع به هر کدام بر روی نام آن کلیک نمایید :

checkdate ( ) 

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

date_default_timezone_get ( )

این تابع زمان محلی ( timezone ) سرور را نمایش می دهد .

date_default_timezone_set ( )

این تابع زمان محلی ( timezone ) سرور را بر طبق مقدار داده شده ، تنظیم می کند .

date_sunrise ( )

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

date_sunrset ( ) 

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

getdate ( )

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

mktime ( )

این تابع برای تعیین تاریخ جاری و یا تعیین یک تاریخ در آینده به کار می رود .

به اشتراک گذاری این پست


لینک به پست

تابع ( ) time در PHP :

ابع ( ) time در PHP ، میزان ثانیه سپری شده از تاریخ اولین ثانیه روز اول سال میلادی 1970 را بر می گرداند . این تاریخ در کار با زمان و تاریخ در PHP یک مقدار پیش فرض است .

کاربرد تابع time در PHP ، بیشتر برای تعیین یا تنظیم زمان مورد در صفحات PHP است . برای مثال ، تعیین زمان برای اعتبار کوکی ها ( cookies ) در یک صفحه PHP است . به این صورت که در هنگام تعریف یک کوکی ، میزان ثانیه ای که کوکی باید اعتبار داشته باشد را به وسیله تابع time تعیین می کنیم .

شکل کلی تعریف و استفاده از تابع ( ) date در PHP به صورت زیر است :

 < ? php
time ( ) ;
? >

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

مثال عملی : در مثال عملی زیر تابع time را به کار برده و به وسیله آن مقدار ثانیه های گذشته از تاریخ 01/01/1970 را نمایش داده ایم . برای این منظور این مقدار را ابتدا در متغیر t$ ذخیره کرده و و سپس آن را در خروجی چاپ کرده ایم :

: کد

< ? php
$ t = time ( ) ;
echo ( $t . " ") ;
echo date ( " Y / m / d " ) ;
? >

: خروجی

 کد
1139118081
02/03/2012
توجه کنید که خروجی به صورت اکتیو توسط مرورگر تولید نشده است .

به اشتراک گذاری این پست


لینک به پست

کار با تابع ( ) include در PHP :

با استفاده از تابع ( ) include می توان محتویات یک فایل PHP را درون یک صفحه دیگر PHP ، وارد نمود . در این حالت سرور PHP در هنگام اجرای صفحه ، محتویات فایل اضافه شده را خوانده و آن را با صفحه اول ترکیب می کند . سپس خروجی را در قالب یک صفحه نمایش می دهد .

از این ترفند معمولا برای ساخت صفحات مادر ( Master Page ) در PHP ، استفاده می شود

شکل کلی استفاده از تابع ( ) include ، به صورت زیر است :

< ? php
include ( آدرس و نام فایل یا صفحه ای که می خواهید محتویات آن را در صفحه جاری وارد نمایید ) ;
? >

نکته مهم : اگر درهنگام اجرای دستور ( ) include ، مشکلی در اجرای فایل و خواندن محتویات آن به وجود آید ، سرور یک پیام هشدار صادر می کند ، ولی صفحه اجرا می شود ( با اشکال ) .

یک مثال از کاربرد این تابع :

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

مثال : در این مثال یک صفحه ساده PHP داریم . این صفحه دارای یک بخش هدر می باشد . اما کد بخش هدر را در یک فایل به نام header.php ذخیره کرده ایم . سپس با استفاده از تابع ( ) include ، محتویات فایل هدر را در صفحه خود وارد نموده ایم . این صفحه در هنگام اجرا کد بخش هدر خود را از فایل header.php دریافت خواهد کرد .

<html>
<body>
< ? php include ( "header.php" ) ; ? >
< h1 > محتویات صفحه < /h1 >
< p > محتویات صفحه < /p >
< /body >
< /html >

به اشتراک گذاری این پست


لینک به پست

کار با فایل ها در PHP :

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

در این بخش قصد داریم تا متدها و توابعی که برای کار با فایل ها در PHP در نظر گرفته شده اند ، را تشریح نماییم .

باز کردن یک فایل - متد ( ) fopen :

به وسیله تابع ( ) fopen در PHP ، می توانید یک فایل را باز کنید .

این تابع دو پارامتر اصلی دارد . پارامتر اول تعیین کننده نام و آدرس فایل و پارامتر دوم تعیین کننده نحوه باز کردن فایل است . در ادامه به توضیح این پارامترها خواهیم پرداخت .

برای کار با این تابع ، باید خروجی آن را در یک متغیر ذخیره نمود و سپس آن متغیر را در سطح برنامه استفاده نمود .

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

< ? php
$ نام یک متغیر دلخواه = fopen ( " نحوه باز کردن فایل " , " نام یا آدرس فایل مورد نظر " ) ;
? > ? >
مثال :
< ? php
$My_File = fopen ( " Example.txt " , " r" ) ;
? >

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

r : در این حالت فایل به صورت فقط خواندنی و از ابتدای آن باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود ندارد .

+r : در این حالت فایل به صورت خواندنی ، قابل ویرایش و از ابتدا باز می شود . در این حالت امکان تغییر فایل برای کاربر وجود دارد .

w : در این حالت فایل به صورت فقط نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود .

+w : در این حالت فایل به صورت خواندنی و نوشتنی و قابل تغییر باز می شود . در این حالت چنان فایل از قبل وجود داشته باشد ، محتویات آن پاک می شود . و اگر وجود نداشته باشد ، یک فایل جدید ایجاد می شود .

a : در این حالت فایل باز شده و متن تعیین شده به انتهای آن اضافه می شود .

x : در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت فقط نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند .

+x : در این حالت یک فایل جدید با نام تعیین شده ایجاد و به صورت خواندنی و نوشتنی باز می شود . چنانچه فایل از قبل وجود داشته باشد ، برنامه پیام error صادر کرده و مقدار false را بر می گرداند .

اگر سرور فایل را پیدا نکرده و یا وجود نداشت ، چه می شود :

اگر فایلی که در تابع ( ) fopen تعیین کرده ایم ، وجود نداشت و یا سرور موفق نشد ، آن را پیدا کند ، برنامه یک پیام error صادر کرده و مقدار false یا 0 را بر می گرداند .

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

< ? php
$file = fopen ( " welcome.txt " , " r " ) or exit ( " Unable to open file ! " ) ;
? >

بستن یک فایل باز شده - متد ( ) fclose :

پس از اینکه یک فایل را با دستور ( ) fopen باز کردیم ، می توانیم آن را با دستور ( ) fclose ببندیم .

برای این منظور باید نام متغیری که در هنگام باز کردن فایل به کار بردیم و محتویات فایل را درون آن ذخیره نمودیم را در پرانتز مقابل تابع ( ) fclose قرار دهیم .

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

< ? php
fclose ( " نام متغیری که فایل باز شده را در آن قرار داده بودیم" ) ;
? >
مثال :
< ? php
$My_File = fopen ( " Example.txt " , " r" ) ; // یک فایل را با این دستور باز کرده ایم
..
..
fclose ( $My_File ) ; // فایل باز شده را بسته ایم
? >

چک کردن اینکه به آخر فایل رسیده ایم یا خیر ؟ - متد ( ) feof :

تابع ( ) feof ، چک می کند که آیا برنامه به آخر یک فایل رسیده است یا خیر .

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

نکته : از این تابع در زمانی که فایل را با حالت های w , a و x باز کرده اید ، نمی توانید استفاده نمایید .

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

< ? php
feof ( نام فایل مورد نظر ) ;
? >

مثال : در مثال زیر یک اسکریپت طراحی شده است که فایل My_File$ را بررسی کرده و چنانچه برنامه به آخر آن رسیده باشد ، یک پیام صادر می کند :

< ? php
if ( feof ( $ My_File ) ) echo " End of file " ;
? >

خواندن یک فایل به صورت خط به خط :

به وسیله تابع ( ) fgetc در PHP ، می توانید یک فایل متنی را باز کرده و به صورت خط به خط ، بخوانید . سپس در صورت نیاز در خروجی چاپ نمایید .

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

مثال : اسکریپت مثال زیر یک فایل متنی را به وسیله یک دستور حلقه ، به صورت خط به خط خوانده و سپس در خروجی چاپ می نماید :

< ? php
$file = fopen( "welcome.txt", "r" ) or exit ( "Unable to open file!" ) ;
// حلقه زیر فایل را به صورت خط به خط تا رسیدن به آخر آن می خواند و در خروجی نمایش می دهد
while ( !feof ( $file ) )
{
echo fgets ( $file ) . "< br />" ;
}
fclose( $file ) ;
? >

به اشتراک گذاری این پست


لینک به پست

آموزش ارسال ایمیل ( Email ) به وسیله PHP :

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

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

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

تابع ( mail ، در PHP وظیفه ارسال ایمیل را بر عهده دارد . در این بخش قصد داریم تا به کمک تابع ( ) mail ، نحوه ارسال ایمیل را در PHP به شما آموزش دهیم .

تابع ( ) mail :

گفتیم که تابع ( ) mail در PHP ، وظیفه ارسال ایمیل را بر عهده دارد . اما این تابع چگونه کار می کند ؟

تابع ( ) mail ، به وسیله پارامترهایی که برای آن تعریف شده است ، آدرس ایمیل گیرنده و فرستنده ، موضوع و متن پیام و سایر خصوصیات یک ایمیل را دریافت کرده و سپس آنها را به مقصد ارسال می کند .

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

mail ( to , subject , message , headers ) ; 

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

to : این پارامتر آدرس ایمیل گیرنده یا گیرندگان نامه را دریافت می کند . استفاده از این پارامتر اجباری است .

subject : این پارامتر از نوع متن بوده و عنوان نامه را تعیین می نماید . این پارامتر نمی تواند بیش از یک خط باشد .استفاده از این پارامتر اجباری است .

massage : این پارامتر از نوع متن بوده و متن نامه را تعیین می کند . هر خط در این متن باید با یک کاراکتر ( \n ) از خط قبلی و یا بعدی جدا شود . همچنین تعداد کاراکتر هر خط نباید از 70 کاراکتر بیشتر باشد . استفاده از این پارامتر اجباری است .

headers : این پارامتر از نوع متن بوده و تعیین کننده خواصی مثل From و یا CC ( رونوشت ) است . هر خط در این متن باید با یک کاراکتر ( \r\n ) از خط قبلی و یا بعدی جدا شود . استفاده از این پارامتر اختیاری است .

پس از اینکه شما را با نحوه کار تابع ( ) mail و پارامترهای آن آشنا کردیم ، در چند مثال نحوه استفاده عملی از این تابع را به شما نشان می دهیم .

ارسال یک ایمیل ساده به وسیله تابع ( ) mail :

مثال 1 : در مثال زیر یک ایمیل ساده را به وسیله تابع ( ) mail ، ارسال کرده ایم . در این مثال هر کدام از خصوصیات ایمیل را به صورت از قبل تعیین شده در یک متغیر ذخیره کرده ایم . سپس متغیر ها را به عنوان پارامتر به تابع ( ) mail ارسال کرده ایم . این تابع نیز ایمیل را ارسال کرده و یک پیام تایید به کاربر نمایش می دهد .

توجه داشته باشید که این مثال فقط برای نمایش نحوه عملکرد تابع ( ) mail است و اینگونه ایمیل فرستادن بعید به نظر میاد . در مثال بعدی نحوه ارسال یک ایمیل کامل به وسیله یک فرم HTML را نشان خواهیم داد

< ? php
$to = "someone@example.com";
$subject = "Test mail";
$message = "Hello! This is a simple email message.";
$from = "someonelse@example.com";
$headers = "From:" . $from
mail ( $to , $subject , $message , $headers ) ;
echo "Mail Sent.";
?>

ارسال یک ایمیل به وسیله یک فرم HTML :

مثال 2 : در مثال زیر یک فرم HTML برای دریافت نظرات کاربران سایت طراحی کرده ایم . این فرم دارای تعدادی کادر متن است که مقادیر لازم را از کاربر دریافت کرده و سپس آنها را در یک متغیر تعیین شده ، ذخیره می نمایند . سپس این متغیرها را به عنوان پارامتر به تابع ( ) mail ارسال می کنند تا به ایمیل تعیین شده ارسال شوند :

<html>
<body>
<?php
if (isset($_REQUEST['email']))
// دستور بالا در صورتی که کادر ایمیل پر شده باشد ، ایمیل را ارسال می کند
{
// ارسال ایمیل
$email = $_REQUEST['email'] ;
$subject = $_REQUEST['subject'] ;
$message = $_REQUEST['message'] ;
mail ( "someone@example.com" , $subject , $message , "From:" . $email) ;
echo "از ارسال ایمیل شما متشکریم";
}
else
// اگر کادر ایمیل پر نشده باشد ، برنامه فرم زیرا را نمایش می دهد
{
echo " < form method='post' action='mailform.php' >
Email : < input name='email' type='text' /> <br />
Subject : < input name='subject' type='text' /> <br />
Message : <br />
< textarea name='message' rows='15' cols='40' >
< /textarea > <br />
< input type='submit' />
< /form >";
}
?>
</body>
</html>

به اشتراک گذاری این پست


لینک به پست

ایجاد و استفاده از کوکی ( cookie ) :

کوکی چیست ؟

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

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

برای مثال فرض کنید که در یک سایت فروم عضو شده و یک رمز عبور و شناسه کاربری را برای خود تعیین کرده اید . هنگامی که برای اولین بار اطلاعات کاربری خود را در مرورگر وارد می کنید ، این اطلاعات در یک کوکی بر روی مرورگر کامپیوتر شما ذخیره می شود . هنگامی که در مراجعه بعدی به همان سایت می روید ، متوجه می شوید که مرورگر اطلاعات کاربری شما را وارد نموده و شما log in شده اید ، بدون اینکه خودتان کاری انجام داده باشید . در واقع مرورگر از کوکی برای ایجاد ، ذخیره و ارسال مجدد این اطلاعات به سرور استفاده کرده است .

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

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

ایجاد کوکی ( cookie ) در PHP :

از تابع ( ) setcookie برای ایجاد و ذخیره یک کوکی در زبان PHP استفاده می شود . برای ایجاد یک کوکی تعیین چند چیز مهم است :

  1. نام
  2. مقدار
  3. مدت زمان اعتبار *

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

برای مثال فرض کنید در یک سایت login کرده اید . سپس کامپیوتر و مرورگر خود را برای مدتی رها می کنید ( مرورگر و صفحه جاری را نمی بندید ) . پس از مراجعه دوباره متوجه می شوید ، که مرورگر شما را logout کرده است و دوباره باید وارد شوید . دلیل این مسئله پایان یافتن مدت زمان اعتبار یک کوکی است .

شکل کلی تعریف و ایجاد یک کوکی به وسیله تابع ( ) setcookie در PHP به صورت زیر است :

< ? php
setcookie ( name , value , expire , path , domain ) ;
? >

توضیح هر یک از موارد syntax :

name : پارامتر name تعیین کننده نام کوکی است . از این نام برای بازیابی و فراخوانی کوکی در سطح برنامه استفاده می شود .

value : پارامتر value مقدار کوکی را تعیین می کند .این مقدار بر روی کامپیوتر ذخیره می شود .

expire : پارامتر expire تعیین کننده مدت زمان اعتبار کوکی ، بر حسب ثانیه است . پس از اتمام این مدت زمان ، کوکی از بین خواهد رفت .برای تعیین مدت زمان اعتبار کوکی ، معمولا از تابع ( ) time استفاده می شود .

path : این پارامتر تعیین کننده مسیری بر روی سرور سایت است که کوکی در آن ، قابل دریافت و ذخیره است .برای مثال اگر مقدار آن برابر با '/' تعیین شود ، در تمام سایت قابل دسترسی است . اما اگر روی مقدار /en/' تنظیم شود ، فقط در دایرکتوری en در سایت قابل دسترسی است .تعیین این پارامتر اختیاری است .

domain : پارامتر domain ، دامنه ای که کوکی بر روی آن قابل دسترس است را تعیین می کند .برای مثال اگر مقدار آن 'www.wp-parsi.com' تنظیم شود ، فقط در این دامنه قابل دسترسی است .تعیین این پارامتر اختیاری است .

مثال های عملی :

در مثال های زیر نحوه ایجاد چند کوکی را با پارامترهای مختلف به شما نمایش داده ایم :

مثال 1 :در مثال زیر یک کوکی به نام info با مقدار Mehrdad را ایجاد کرده ایم ، که برای مدت یک ساعت ( 3600 ثانیه ) اعتبار دارد . به کد مثال دقت نمایید :

< ? php
setcookie ( " info ", " NESTED ", time( )+3600 ) ;
? >

مثال 2 : در مثال دوم یک کوکی دیگر ایجاد کرده ایم ، که برای مدت یک سال اعتبار داشته ، ولی فقط در دامنه www.wp-parsi.com اعتبار دارد :

< ? php
$ expire = time( ) + 60 * 60 * 24 * 30 ;
setcookie ( " info2 ", " NESTED ", $expire , 'www.wp-parsi.com' ) ;
? >

به اشتراک گذاری این پست


لینک به پست

مفهوم و کاربرد Session در PHP :

مفهوم session :

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

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

اما در دنیای وب و اینترنت اوضاع فرق دارد . وب سرور سایتی که در حال بازدید از آن هستید ، نمی داند که شما کی هستید . زیرا آدرس HTTP مرورگر به سرور راجع شما اطلاعاتی نمی دهد . بنابراین تمایز کاربران با یکدیگر غیر ممکن شده و سرور با این وضع برای سرویس دهی به آنها دچار مشکل می شود . بنابراین باید چه کرد ؟ راه حل کجاست ؟

این مشکل در وب و در زبان PHP به وسیله session حل شده است .

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

این فرایند را تاکنون بارها تجربه کرده و باعث راحتی شما بوده است . اما session چگونه ایجاد و استفاده می شوند .

نحوه تعریف session بر روی سرور :

سرور سایت ، در لحظه ورود کاربر به سایت و وارد نمودن اطلاعات کاربری ، یک seesion با یک شناسه خاص ( unique ID - UID ) برای وی ساخته و اطلاعات وی را در آن session ذخیره می کند . این اطلاعات تا زمانی که کاربر در سایت است و یا اعتبار session از بین نرفته ، بر روی سرور ذخیره شده و در مرورگر به صورت کوکی تعریف شده اند .

session ها موقتی هستند و پس از اینکه کاربر سایت را ترک کرد و یا مثلا برای مدتی ، صفحه جدیدی باز نکرد ، از بین می روند . بنابراین در مراجعه بعدی ، در صورت فعال نبودن کوکی برای آن سایت ، باید اطلاعات را مجددا وارد نمایید .

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

اکنون پس از تعریف مفهوم seesion ، قصد داریم تا شما را با نحوه تعریف و استفاده از session در PHP ، آشنا نماییم .

نحوه تعریف session در PHP :

برای ایجاد session در یک صفحه PHP ، ابتدا باید تابع ( ) session_startup را قبل از تگ < head > در صفحه ، تعریف نمایید . به صورتی که در جدول زیر نمایش داده ایم :

این کد session کاربر را در سرور ثبت کرده ، به شما اجازه می دهد که عملیات session را شروع نموده و یک UID برای شما ایجاد می کند .

< ? php   session_start( )   ; ? >
< html >
< head >
< /head >
< body >
< /body >
< /html >

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

در مثال زیر یک session به نام views ، ابتدا مقدار دهی شده و سپس در درون صفحه بازخوانی شده است :

< ? php 
session_start( ) ;
// را مقدار دهی می کند session کد زیر یک
$_SESSION [ 'views' ] = 1 ;
? >
< html >
< head >
< /head >
< body >
< ?php
// را می خواند session کد زیر مقدار
echo " Pageviews = " . $_SESSION [ 'views' ] ;
? >
< /body >
< /html >

خروجی مثال = Pageviews = 1

مثال : در مثال دوم کدی طراحی شده است که به وسیله متغیر session به نام views ، تعداد دفعات مشاهده یک صفحه را نمایش می دهد . این دستود ابتدا مقدار این session را بررسی کرده و در صورتی که مقدار دهی نشده باشد ( یعنی کاربر اولین بار وارد صفحه شده است ) ، مقدار آن را برابر با 1 قرار می دهد . اما اگر از قبل مقدار دهی شده باشد ، یعنی کاربر قبلا به صفحه سر زده است . بنابراین یک واحد به مقدار آن اضافه می کند :

< ? php
session_start( ) ;
if ( isset ( $_SESSION [ 'views '] ) )
$_SESSION [ 'views' ] = $_SESSION [ 'views' ] + 1 ;
else
$_SESSION [ 'views' ] = 1 ;
echo "Views = " . $_SESSION [ 'views' ] ;
? >

به اشتراک گذاری این پست


لینک به پست

ساخت مستر پیج Master Page :

به وسیله تابع های ( ) include و ( ) require ، می توانید محتویات یک صفحه را درون یک صفحه دیگر وارد نمایید . در این حالت سرور PHP ، در هنگام اجرای صفحه ، محتویات صفحه وارد شده را با صفحه اصلی ادغام کرده و به صورت یکجا نمایش می دهد .

اما این کار چه فایده ای دارد ؟

با یک مثال توضیح می دهیم . فرض کنید که یک سایت ساده دارید که طراحی هر صفحه آن به صورت زیر است :

یک بخش ثابت هدر و یک بخش ثابت منو در سمت راست ، که در تمام صفحات تکرار می شوند . به علاوه یک بخش محتویات صفحه در وسط و سمت چپ صفحه ، که برای هر صفحه دارای محتویات متفاوتی است . تقریبا شبیه طراحی سایت خود ما !!

در این حالت شما برای طراحی این سایت 2 راه حل دارید :

  1. کد هدر و منو را در هر صفحه با copy و paste کردن و به صورت تکراری در کنار سایر محتویات در هر صفحه قرار دهید .
  2. کدر هدر را در یک فایل PHP به نام هدر و کد منو را در یک فایل دیگر PHP به نام منو قرار دهید . همچنین محتویات هر صفحه را در خود آن صفحه قرار دهید . سپس محتویات هدر و منو را با به کار بردن تابع ( ) include و یا ( ) require و اشاره به نام فایل کد آنها ، در درون هر صفحه وارد نمایید . در این حالت سرور PHP در هنگام اجرای هر صفحه ، محتویات فایل های هدر و منو را با محتویات خود صفحه ترکیب کرده و خروجی را تولید می کند .

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

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

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

به این شیوه در PHP و یا در ASP.Net ، ساخت مستر پیچ یا صفحات مادر گفته می شود . از صفحات مادر می توان برای طراحی سریع سایر صفحات استفاده نمود . در یک سایت شما می توانید به تعداد دلخواه و مورد نیاز و برای هر بخش ، یک صفحه مادر مخصوص طراحی نمایید .

PHP_Master_Page.gif

تفاوت تابع های ( ) include و ( ) require :

گفتیم که از تابع های ( ) include و یا ( ) require برای ساخت مستر پیچ ها استفاده می شود . اما این دو تابع با هم چه تفاوتی دارند . این دو تابع در هر حالت با هم یکسان هستند ، به جز مورد زیر :

  • اگر در هنگام کار با تابع include مشکلی برای اجرای صفحه پیش آید ، سرور یک پیام هشدار معمولی صادر کرده ، ولی صفحه را لود و اجرا می کند .
  • اما چنانچه برای پردازش صفحه در هنگام کار با تابع ( ) require مشکلی پیش بیاید ، سرور پردازش را متوقف کرده و صفحه دیگر اجرا نمی شود .

به اشتراک گذاری این پست


لینک به پست

با اجازه آقا مرتضی و ضمن تشکر از ایشون جهت آموزش عموم مطالب لازم .

آموزش شی گرائی :

درک مفهوم شی گرائی و لزوم کاربرد :

هر برنامه لزوماً دارای یک سری منطق مشابه و تکراری است یه بهتر بگم یک سری توابع و اعمال تکراری .

ساده ترین مثال کاربا دیتابیس .

فرض رو بر این بگیریم پروژه شما با پایگاه داده Mysqlنوشته شده و از درایور mysql استفاده میکنید . در جای جای پروژه شما میتوان تابع mysql_query را یافت .

حال با به دلایلی مجبور به استفاده از پایگاه دیگه ای هستید یا شاید بخواهید از داریور mysqli استفاده کنید! اینجاست که باید کل پروژه دستخوش تغییر شود . اما اگر همیشه از یک شی که کار اتصال و کوئری گرفتن را انجام دهد استفاده کنید ، فقط کافیست یک کلاس رو تغییر دهید .

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

پیشنهاد میکنم این مطالب را بخوانید .

http://phpro.ir/topic/%d8%a8%d8%b1%d9%86%d8%a7%d9%85%d9%87-%d9%86%d9%88%db%8c%d8%b3%db%8c-%d8%b4%db%8c%d8%a1-%da%af%d8%b1%d8%a7-%d8%af%d8%b1-php-%d9%82%d8%b3%d9%85%d8%aa-%d8%a7%d9%88%d9%84-2

http://forum.iranphp.org/Thread-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B4%DB%8C-%DA%AF%D8%B1%D8%A7%DB%8C%DB%8C?pid=577#pid577

شروع

برای داشتن یک شی نیاز به یک کلاس دارید ، که اشیا از روی آن ساخته شوند و کارها را انجام دهند .

کلاس با کلمه class شروع میشود و بعد از آن اسم کلاس دلخواه که تابع قوانین نامگذاری پی اچ پی است و دو تا آکولاد


class my_class{

// some code

}

هر کلاس میتواند شامل متغییرها ، ثابت ها و توابع مخصوص به خود باشد .

دقت کنید که به متغییرهای داخل کلاس ، پروپرتی گفته میشود و به توابع داخل کلاس متد !



class my_class{

public $var1 = null;
private $var2 = null;
protected $var3 = null;

const my_define = 'i am constant';

public function my_func1()
{
///
}

private function my_func2()
{
//
}

protected function my_func3()
{
//
}

}

var1 , var2 , var3 متغییرها یا بهتر بگم پروپرتیهای کلاس هستند (در ادامه با تفاوت کلامات کلیدی public protected private آشنا میشید ).

my_define ثابت کلاس هست .

my_func1 , my_func2 , my_func3 متدهای کلاس هستن که البته میتونن آرگومان هم بگیرن مثلاً



class my_class{

public $var1 = null;
private $var2 = null;
protected $var3 = null;

const my_define = 'i am constant';

public function my_func1($arg1,$arg2)
{
///
}

private function my_func2($arg1=null)
{
//
}

protected function my_func3($arg1 = '')
{
//
}

}

استفاده از پروپرتی ها در داخل متدهای کلاس

خب طبعاً ما پروپرتی ها و ثوابتی رو تعریف کردیم نحوه استفاده از آنها برای متدها و پروپرتی های غیر استاتیک(بعداً آشنا میشوید) از کلمه کلیدی $this استفاده میشود و برای ثوابت از self (بعداً خواهید آموخت برای متد و پروپرتی های استاتیک هم از کلمه کلیدی self استفاده میشود)




class my_class{

public $var1 = null;
private $var2 = null;
protected $var3 = null;

const my_define = 'i am constant';

public function my_func1()
{
if($this->var1 === null) // this is true
$this->var1 = 'My firest var setted';
}

public function show_var()
{
$this->myfunc1();
echo $this->var1; //out : My firest var setted
}

public function show_const()
{
echo self::my_define; // out: i am constant
}

public function show_var2()
{
echo $this->var2; // out: null/0
}

public function set_var2($arg)
{
$this->var2 = $arg;
}

}

نحوه استفاده از کلاس

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

لزوم استفاده از کلاس ساخت یک شی از اون هست .

کلاس بالا رو در نظر بگیرید ابتدا باید یک شی از این کلاس بسازیم و در متغییر بذاریم .

فکر کنم مثال پائین گویای همه چیز هست .



$obj1 = new my_class;
$obj1->show_var(); // out: My firest var setted

$obj1->var1 = 'setted in put';
$obj1->show_var(); // out: setted in put

$obj1->show_const(); //out: i am constant
echo $obj1::my_define ; //out: i am constant

$obj1->set_var2('i am setted2');
$obj1->show_var2(); // out : i am setted2

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

برای مثال دستورات زیر خطا میدهد .



$obj1->var2= 'i am var2'; # Error
echo $obj1->var3 ; # Error
$obj1::my_define = 'you not setted'; # Error

جلسه آینده بیشتر بحث میکنیم .

جهت مطالعه بیشتر : http://phpro.ir/topic/%D9%85%D8%AA%D8%AF%D9%87%D8%A7%DB%8C-%D8%AC%D8%A7%D8%AF%D9%88%DB%8C%DB%8C-%D8%AF%D8%B1-php

به اشتراک گذاری این پست


لینک به پست

ارث بری :

شاید مقوله ارث بری در همین ابتدا کمی براتون سنگین باشه و اصلاً لزوم استفاده شو ندونید .

در برنامه نویسی شی گرایی باید دید خود را به نحوه پیاده سازی برنامه کاملاً تغییر دهید .

در یک برنامه ساده مثلاً وردپرس ، کاربر نهایی در خود پنل وردپرس کار میکند و اصلاً نیازی به گشت و گذار در کدهای پی اچ پی را ندارد اما اگر برنامه شما یک برنامه پویا باشد ، باید انتظار این را داشته باشید که هر شخصی بتواند نسبت به نیاز خودش ، برنامه را تغییر و توسعه دهد .

بر همین اساس یک سری کلاسها بعنوان base برنامه استفاده میشود (که معمولاً در init برنامه بعنوان هسته معرفی میشوند) که کلاسهای دیگر از این کلاس ارث بری میکنند.

مثلاً ما یک کلاس post تعریف میکنیم که وظیفه آن گرفتن اطلاعات یک post هست .



class post{

const dbname = 'test';
const dbuser = 'root';
const dbpass = '';
const dbhost = 'localhost';

private function connect()
{
@mysql_connect(self::dbhost, self::dbuser, self::dbpass) or die('<h1>error in connect db');
@mysql_select_db(self::dbname) or die('<h1>error in select db');
@mysql_query("SET NAMES 'utf8' ");
}

public function get_post_by_id($id = null)
{
$id = (int) $id;
$this->connect();
$query = mysql_query("SELECT * FROM `post` WHERE `id`=$id LIMIT 1 ");
return mysql_fetch_assoc($query);
}

}

حال میتوانیم کلاسهای دیگری را تعریف کنیم که از این کلاس ارث بری کنند .

مثلاً کلاس موضوعات



class category extends post{

public function get_post_by_catid($cat_id = null)
{
$cat_id = (int) $cat_id;
$this->connect();
$query = mysql_query("SELECT `post_id`,`cat_id` FROM `cat_post` WHERE `cat_id`=$cat_id ");

$out = array();

while($row = mysql_fetch_assoc($query))
{
$get_post = $this->get_post_by_id($row['post_id']) ;
$out[] = $get_post['title'];
}

return $out;
}
}

میبینید که در کلاس category متدهایی رو استفاده کردیم که در کلاس post هست پس کلاس post میشه کلاس پدر (کلاس مادر هم داریم بعداً توضیح میدم ;) )

حال نحوه استفاده خیلی ساده است مثلاً مطالب موضوعات شناسه 2 رو میخوایم



$category = new category;
$post_by_cat = $category->get_post_by_catid(2);

foreach($post_by_cat as $post)
{
echo $post['title'].' - ';
}
//out : عنوان مطلب 1 - عنوان مطلب2 - عنوان مطلب 3 - عنوان مطلب چهارم

*یک نکته ! دیدید که در کلاس post متد connect از نوع protected هست این بدان معنی است این متد در کلاسهای مشتق (مثل category) هم میتواند استفاده شود اما در نمونه گیری خیر ! بطور مثال دستور زیر نادرست است .



$post = new post;
$post->connect(); # Error

ویرایش شده در توسط NESTED
تصحیح کد

به اشتراک گذاری این پست


لینک به پست

اعتبار سنجی داده های ورودی در PHP :

مقدمه :

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

برای روشن شدن مسئله به چند مثال اشاره می کنم .

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

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

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

چه اطلاعاتی را باید اعتبار سنجی نمود :

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

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

  • داده های که کاربر در فرم های وب وارد می نماید .
  • کوکی هایی که مرورگر می فرستد .
  • داده های سرویس های وب .
  • نتایج جستجو در پایگاه داده های سرور ( Query Results ) .

معرفی تابع های اصلی در عملیات اعتبار سنجی در PHP :

در لیست زیر چهار تابع اصلی ، در عملیات اعتبار سنجی متغیر ها و کادر های ورود اطلاعات در PHP را به شما معرفی کرده ایم . این تابع ها دارای بیشترین کاربرد در عملیات اعتبار سنجی هستند . در ادامه به توضیح کامل این توابع خواهیم پرداخت :

  • تابع ( ) filter_var : این تابع یک متغیر را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
  • تابع ( ) filter_var_array : این تابع آرایه ای از متغیرها را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
  • تابع ( ) filter_input-Get : این تابع مقدار یک کادر دریافت داده را با یک فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .
  • تابع ( ) filter_input_array : این تابع مقدار چندین کادر دریافت داده را با یک یا چند فیلتر اعتبار سنج خاص ، اعتبار سنجی می کند .

یک مثال ساده و ابتدایی از اعتبار سنجی داده :

مثال : در مثال ساده زیر یک عملیات اعتبار سنجی ساده را انجام داده ایم . این مثال برای آشنایی کلی و ابتدایی شما با نحوه اعتبار سنجی داده در PHP است و در بخش های بعد ، مثال های کامل تری را به شما نشان خواهیم داد .

در این مثال ابتدا یک متغیر معمولی تعریف شده است . سپس توسط یک دستور با استفاده از تابع "FILTER_VALIDATE_INT" که یکی از تابع های اعتبار سنج پیش فرض در PHP است ، این مسئله بررسی شده است که آیا متغیر تعریف شده ، عدد است یا خیر . در صورت عدد بودن آن عبارت "Integer is valid" و در صورت عدد نبودن آن عبارت "Integer is not valid" در خروجی چاپ خواهد شد :

 <?php
$int = 123;
if ( filter_var ( $int , FILTER_VALIDATE_INT ) )
{
echo ( " Integer is not valid " ) ;
}
else
{
echo ( " Integer is valid " ) ;
}
?>

به اشتراک گذاری این پست


لینک به پست

ایمن سازی داده ها (escape)

بعد از مبحث اعتبار سنجی که آقا مرتضی زحمتش رو کشیدن ، میرسیم به بحث ایمن سازی داده ها .

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

1 . داده های عددی .

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

داده های عددی رو به راحتی میشه با تابع intval ایمن کرد .


$str = 'reza1';
echo intval($str); // out : 1

$str = '1.reza';
echo intval($str); // out : 1

$str = '12366554deed';
echo intval($str); // out : 12366554

$str = '-091.reza';
echo intval($str); // out : -91

$str = '-1.reza';
echo intval($str); // out : -1

$str = '1.5669885.55';
echo intval($str); // out : 1.5669885

تنها مشکلی که این تابع داره نمیتونه داده هایی با طول بیشتر از 10 رو ایمن کنه و به جاش NULL برمیگردونه .

البته فکر نکنم حالا حالا ها تعداد مطالب شما به 9999999999 تا برسه :D

اما گاهی لازمه عددهایی با طول بیشتر رو ایمن کنید من یه تابع نوشتم با preg_replace این کارو میکنه


function big_intval($str ='')
{
$str = preg_replace('@([^0-9])@','',$str);
$str = ltrim($str,0);
if(empty($str))
$str = 0;
return $str;
}
# example
$str = 'reza1';
echo big_intval($str); // out : 1

$str = '1.reza';
echo big_intval($str); // out : 1

$str = '12366554deed';
echo big_intval($str); // out : 12366554

$str = '-091.reza';
echo big_intval($str); // out : 91

$str = '-1.reza';
echo big_intval($str); // out : 1

$str = '1.5669885.55';
echo big_intval($str); // out : 1566988555

$str = '123_ss__.._456__ss_589s145s98ss.485698s4r55f';
echo big_intval($str); // out : 12345658914598485698455

این تابع با تابع بالایی اندکی تفاوت داره .

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

این تابع رو میتونید برای مثلاً مبالغ استفاده کنید .

2. داده های رشته ای

داده های رشته ای به عباراتی غیر از عدد گفته میشوند .

داده های رشته ای میتونن دستورات html باشن و ...

گاهی وقتها نیاز هست که اسپیس اضافی جلو و عقب رشته رو حذف کنیم ، مثلاً یک فید دیتابیس از نوع varchar 20 هست اینجوری کاربری که اسپیس میزنه باعث میشه سر این فیلد خطا بده .

خب راه حل استفاده از تابع trim هست .


$str = ' reza ';

echo trim($str) ; //out : reza

echo ltrim($str) ; //out: reza |

echo rtrim($str) ; //out : reza

گاهی اوقات نیاز هست تمام تگ های جاوا اسکریپت و html رو حذف کنید جهت جلوگیری از هک XSS راه حل استفاده از تابع strip_tags هست .


$str = '<a href="">salam</a>';
echo strip_tags($str); // out:salam

$str = '<script>alert("XSS !")</script>';
echo strip_tags($str); // out: XSS

$str = '<span class="test">reza';
echo strip_tags($str); // out: reza

$str = '<style>.test{display:block}</style><div class=test>reza</div>';
echo strip_tags($str); // out: reza

گاهی اوقات نیاز هست تمامی آنچه در رشته هست در دیتابیس دخیره شود ، چه html , css , ... اما بصورتی که بعد از فراخوانی ، نمایشی باشد .

مثلاً به جای <strong>salam</strong> بنویسد <strong>salam</strong> یعنی یک رشته امن از نظر html و css و javascript

راه حل استفاده از تابع htmlspecialchars است .


$str = '<script>alert("XSS!");</script>';
echo htmlspecialchars($html, ENT_QUOTES); //out : <script>alert("XSS!");</script>

$str = '<style>*{display:none}</style>';
echo htmlspecialchars($html, ENT_QUOTES); //out : <style>*{display:none}</style>

$str = "<div style='font-size:40px'>BIG</div>";
echo htmlspecialchars($html, ENT_QUOTES); //out : <div style='font-size:40px'>BIG</div>

البته شما میتوانید از توابع کاملتری استفاده کنید مثلاً str_replace , preg_replace که یک پترن عبارت باقاعده ایجاد میکنید ، رشته هایی که شامل شدند عبور داده میشوند و رشته های غیره حذف میشوند .

مثلاً یک پترن ساده برای گرفتن فقط حروف کوچک لاتین a تا z


$str = 'reza رضا';
echo preg_replace('/[^a-z]+/','',$str); //out : reza

* لازم به ذکر است برای ذخیره سازی این رشته ها در دیتابیس باید از توابع escape مخصوص آن درایور دیتابیس استفاده کرد که در مبحث دیتابیس MySQL به آن اشاره شده/میشود .

به اشتراک گذاری این پست


لینک به پست

سلام ببخشيد اين مبحث آموزش مدتي متوقف شده بود

آموزش هاي اين بخش مجدد از سر گرفته خواهد شد

و بعد از اتمام هر فصل ، كل آموزشهاي فصل ياد داده شده به صورت فايل PDF در ارسال اول تايپك قرار خواهد گرفت

اين تاپيك آموزشي بوده و از ارسال سوالات خود در مورد آموزشها خود داري كنيد

دوستان ديگر هم مايل باشن مي تونن در روند آموزش اين تاپيك ياري رسان باشند فقط توجه داشته باشند آموزش ها بايد به سادترين شكل ممكن بوده و از ارسال آموزشهاي غير مرتبط در زمينه آموزش پايه ايي خودداري نمايند

بزودي با شما خواهيم بود

به اشتراک گذاری این پست


لینک به پست
مهمان
این موضوع برای عدم ارسال قفل گردیده است.

  • مطالب مشابه

    • توسط sanjesh_88
      سلام دوستان
      بنده یک سیستم نظر دهی با php برای وبسایتم نوشتم که id هر نظر را می گیرد id$ ذخیره می کند
      $sql="select * from tblabc where idpost=".intval($_GET['page'])." order by id88 desc"; $stmt=$db->prepare($sql); $stmt->execute(); while($result=$stmt->fetch(PDO::FETCH_ASSOC)){ $id=$result['idsanjesh88']; echo' <div id="nazar"> <div id="nazar_footer"> <div onClick="report1( '.$id.')" id="report">report <img class="mosalas" id="xxx" src="img/login_content_top.png" style="position:absolute; top:4px; right:0px;z-index:2; opacity:0; "> </div><!--report--> </div> </div> حالا می خواهم با دستور onclik اون تصاویری که به نام mosals هست را برا هر پستی که روی آن کلیک می کند (روی دکمه report مربوط به هر پست) اون تصاویر نمایش داده بشود ولی متاسفانه اون تصاویر برای همه ی پست های موجود opacity اش برابر 1 می شود در حالی که بنده می خواهم برای هر پستی که روی آن کلیک می کنیم این فانکشن اجرا بشه.
      <script> function report1(id){ $('.mosalas').animate({opacity:1},700) }; </script> اگر کسی کمک کنه ممنون میشم


    • توسط mohandes1900
      سلام کسی میتونه کمک کنه بهم میخوام سایتم رو توی موتور جست و جوی بایدو baido.com ثبت کنم....
      آدرس سایتم https://www.fooji.ir
      کمک لطفا ......
    • توسط Poorya.sh
      درود دوستان بنده در حال کار بر روی یک پروژه OpenSource هستم که به صورت یک cms کتابخانه هستش که ادمین لیستی از کتاب ها و تصویر کاور کتاب رو در اون وارد و کاربران میتونن نظرات خودشون درباره کتاب رو بدن و یا کتاب رو رزرو و بعد با مراجعه حضوری کتاب رو تحویل بگیرند در صورت موجود بودن که تمام این بخش ها رو بدون مشکل ایجاد کردم تنها مشکلی که در حال حاضر مقابل بنده هستش اینکه بعد از آپلود تصویر منتقل نمیشه به پوشته تصاویر و به همین دلیل تصویر نمایش داده نمیشه حدود یک هفته ای میشه که انواع روش ها رو امتحان کردم اما مشکلم حل نشد به عنوان آخرین راه چاره این تاپیک رو ایجاد کردم تا شاید اساتید بتونن کمکمی در حل این مشکل داشته باشند. شما میتونید کل پروژه بنده رو ازین لینک GitHub مشاهده و دریافت کنید و همچنین ورژن آنلاین روند کار قسمت ادمین رو از این لینک مشاهده کنید. (تصویری که میبینید نمایش داده میشه دستی کپی شده تا مشکل واضح تر به نمایش در بیاد.)
    • توسط Codepin
      سلام.
      دوستان بنده الان درحال پرسوجو برای بهترین قیمت برای نوشتن برنامه زیر برای سایت فروشگاهیمون هستم. لطف میکنید قیمت پایه رو برای اینکار به من بگید.
      قصد داریم برنامه ای نوشته بشه که کاربران بتونن به تعداد نامحدود در سایت ثبت نام کنن و محصولات خودشونو برای فروش قرار بدن و زمانی که خریدار ، هر محصوله این کاربر رو  سفارش میده یا خریداری میکنه ، اطلاعات سفارش مشتری ، نام محصول خریداری یا سفارش داده شده ، و همچنین مشخصات محصول مثل رنگ و سایز و... بلافاصله بعد از سفارش به کاربری که محصول رو ثبت کرده ارسال بشه و همچنین این اطلاعات علاوه بر فروشنده به مدیر اصلی سایت نیز ارسال بشه. 
      لطفا بگید که برای این بخش از برنامه نویسی که بدون نقص نوشته بشه چه مقدار باید هزینه کنیم...
    • توسط p30way

       
       
      مقدمه و معرفی : 
      با سلام خدمت شما همراهان گرامی و علاقه مندان به زبان PHP  با قسمت اول آموزش PHP از سری آموزش های برنامه نویسی در خدمت شما هستم. این آموزش به صورت متنی و ویدیویی در اختیار شما قرار خواهد گرفت.
      پیش نیاز های این دوره :

      قبل از شروع به یادگیری در نظر داشته باشید که شما بایستی یک دانش مقدماتی از طراحی وب HTML,CSS داشته باشید.
      مقدمه :

      زبان PHP یک زبان اسکریپت نویسی تحت وب می باشد که به سبب سرعت ، قدرت و امنیت بالایی که دارد از محبوبیت زیادی در بین توسعه دهندگان برخوردار می باشد. چنانچه حدود 60 در صد وب سایت های موجود در  سراسر اینترنت توسط PHP ساخته شده اند. PHP آنقدر قدرتمند است که وبسایت های معروفی چون facebook, yahoo, Wikipedia, apple و سیستم های مدیریت محتوای مشهور و قدرتمندی چون joomla, wordpress, drupal یا انجمن هایی مانند vbulletin توسط PHP ساخته و توسعه داده شده اند.

      عبارت PHP  مخفف عبارت PHP Hypertext Preprocessor است .PHP یک زبان open source یا متن باز و یک زبان اسکریپت نویسی سمت سرور است. PHP همیشه رایگان می ماند.
      ساختار PHP کاملا شبیه به زبان C است و یادگیری آن بسیار راحت است.با PHP شما می توانید صفحات ایستا (استاتیک) را به راحتی پویا (داینامیک) کنید، فایل ها را در سرور باز کنید، بخوانید، تغییر یا حذف نمایید، به انواع پایگاه داده ها وصل شوید و داده ها را ذخیره ، بازیابی و ویرایش کنید، و همچنین می توانید cookie ها را ارسال و دریافت نمایید.
       

      یک فایل  PHP با پسوند .php ذخیره و اجرا می شود و می تواند شامل برچسب های HTML ، کدهای جاوااسکریپت و خصوصیت های CSS باشد. نتیجه اجرای کدهای PHP روی server به صورت یک فایل html به سمت کاربر ارسال می شود .
      زبان PHP زبان قدرتمندی است که از سرعت پردازش بالایی نیز برخوردار است و همچنین روی اکثر سیستم عامل ها قابل اجرا است و با وب سرویس هایی چون Apache و IIS سازگار می باشد.
       
      مراحل نصب:

       برای اجرای فایل های php شما نیاز به یک وب سرویس دارید و اگر می خواهید فایل های PHP را روی کامپیوتر خود اجرا کنید می بایست وب سرویس Apache (آپاچی) ، PHP و پایگاه داده MYSQL را به روی کامپیوتر خود نصب کنید.
      شما می توانید هر سه گزینه بالا را به صورت جداگانه نصب کنید. ولی راه حل ساده تر و پرکاربردتر استفاده از نرم افزاهایی ست که به صورت یکجا PHP,Apache , Mysql  را به روی کامپیوتر شما نصب می کند. مشهورترین این نرم افزارها XAMP و WAMP می باشند که در این آموزش ما از XAMP (زمپ) استفاده خواهیم کرد.
       
      نصب XAMP :

      1-  ابتدا آخرین نسخه XAMP را از وبسایت تولید کننده دریافت می کنیم:  (نسخه سازگار با ویندوز خودتان 64  بیتی یا 32 بیتی )
      https://www.apachefriends.org/download.html
      2-  سپس فایل نصب را اجرا می کنیم.
      3-  در صفحه خوش آمدگویی روی گزینه Next کلیک کنید

      4-در این صفحه تیک تمامی موارد را بزنید و روی Next کلیک کنید.

      5-  مسیر نصب را تعیین کنید (معمولا مسیر پیش فرض انتخاب می شود) . بعد از آن رو گزینه Next کلیک کنید.

      6-  این صفحه معرفی Bitnami برای Xampp است. با زدن تیک گزینه Learn more about Bitnami for Xampp می توانید اطلاعات بیشتری را مشاهده فرمایید.
      در این صفحه روی گزینه Next کلیک کنید.

      7-  در این مرحله با انتخاب گزینه Next  فرایند نصب آغاز می گردد.

       
      نکته بسیار مهم:

      پورت آپاچی Xampp در ویندوز پورت 80 را اشغال می کند. اگر نرم افزاری یا سرویسی (مانند IIS یا SQL Server) از قبل این پورت را اشغال کرده باشد شما نمی توانید Xampp را اجرا کنید.
      برای رفع این مشکل می توانید یا سرویس ها یا نرم افزارهایی که پورت 80 را اشغال کرده اند غیرفعال کنید و یا پورت Xampp را به 8080  تغییر دهید.
      بعد از نصب برنامه Xampp را اجرا کنید. هنگامی که برنامه را اجرا کردید صفحه ای به عنوان کنترل پنل Xampp مانند شکل زیر برای شما نمایش داده می شود. شما می توانید برای شروع Apache و Mysql را start کنید.
      آیکن Mysql و Apache بعد از start شدن باید به رنگ سبز تغییر کند. اگر رنگ این دو زرد یا قرمز بود حتما مشکلی در هنگام نصب پیش آمده که مانع اجرای این  موارد شده است .


       
       
       
      شروع نوشتن اولین برنامه PHP:
       

      بسیار خب تا به اینجای کار خوب پیش رفتیم. برای نوشتن و اجرای کدهای PHP به دو ابزار دیگر هم نیاز داریم.
      1-  محیطی برای برنامه نویسی
      2-  نرم افزاری برای اجرا
      در این دوره از آموزش مقدماتی PHP از محیط Notepad ویندوز جهت نوشتن کدهای PHP استفاده می کنیم. محیط های حرفه ای تر با نمای کاربری زیباتری هم وجود دارد. ولی این محیط های حرفه ای را برای شروع به هیچ عنوان پیشنهاد نمی کنم. چون با امکاناتی که این نرم افزارها در اختیار شما قرار می دهند عملا قدرت کدنویسی را از شما می گیرند و شما به اصطلاح در کدنویسی تنبل بار می آیید و در آینده برای خطایابی یا توسعه به مشکل بر خواهید خورد. البته در آموزش های سطح حرفه ای حتما از محیط های پیشرفته تری جهت کدنویسی استفاده خواهیم کرد.

      برای اجرای کدی که نوشتیم از مرورگرهای وب استفاده می کنیم که در حال حاضر 2 مرورگر خوب و قدرتمند FireFox و Chrome را پیشنهاد می دهم که هر دوی این مرورگرها رایگان و قدرتمند می باشند.
      خب حالا به محل نصب  Xampp (پیش فرض آدرس C:/Xampp) رفته و پوشه htdocs را بیابید و باز کنید. مشاهده می کنید که تعدادی فایل و پوشه داخل htdocs از قبل وجود دارد.
      پوشه htdocs پوشه ریشه Apache است و تمام فایل های وب را از این پس در این پوشه ذخیره می کنیم.اگر مرورگر خود را باز کنید و عبارت localhost ویا 127.0.0.1 را در نوار آدرس بنویسید و Enter را بزنید صفحه ای مانند زیر برای شما باز خواهد شد. این دقیقا فایل index.php می باشد که داخل پوشه htdocs وجود دارد.
      وقتی localhost را در مرورگر اجرا می کنید در واقع مرورگر به پوشه htdocs رفته و بعد از آن فایل مورد نظر شما را اجرا می کند. مثلا اگر در پوشه htdocs پوشه ای به نام files ایجاد کنید و در رون این پوشه فایلی با نام hello.php را ذخیره کنید، برای اجرای این فایل باید آدرس localhost/files/hello.php را وارد کنید.
       


      نکته: اگر در ادامه localhost و یا در ادامه آدرس پوشه ها چیزی وارد نکنید، به صورت پیشفرض فایل index.php اجرا خواهد شد.
      بسیار خب حالا کلیه محتویات پوشه htdocs را cut کرده و داخل یک فولدری خارج از htdocs منتقل کنید تا بتوانیم خود به کدنویسی بپردازیم.
      در این قسمت نرم افزار notepad را از منوی استارت ویندوز پیدا و اجرا کنید. درون notepad کدهای زیر را با دقت وارد.
      <?php echo "Hello world"; ?> حالا فایل مورد نظر را در مسیر c:/htdocs با نام hellop.php ذخیره کنید.
      نکته: در هنگام ذخیره از لیست save as type  گزینه all files  و از لیست encoding گزینه utf-8 را انتخاب کنید.
      بسیار عالی . حالا مرورگر را باز کرده و آدرس localhost/hello.php را وارد کنید تا فایل مورد نظر اجرا شود.
      اگر تمام مراحل را با دقت انجام داده باشید باید نتیجه مانند شکل زیر باشد.

      بسیار خب ! تا به اینجای کار تمامی نرم افزارها و مقدمات لازم برای شروع کدنویسی به زبان PHP را نصب کردیم.
      در جلسه بعدی رسما کدنویسی را آغاز می کنیم.
      برای این جلسه یک فیلم ویدیویی آماده شده که می توانید از لینک زیر مشاهده کنید.
      ممنون که همراه ما بودید.
      منبع: آموزش PHP - پی سی وی مگ