امتیاز موضوع:
  • 1 رأی - میانگین امتیازات: 5
  • 1
  • 2
  • 3
  • 4
  • 5
آموزشی مقدماتی پی اچ پی (PHP)
نویسنده پیام
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #1
آموزشی مقدماتی پی اچ پی (PHP)
در این دوره تلاش خواهیم کرد که برنامه نویسی را به زبانی ساده و همراه با لذت برای شما ارائه کنیم. شاید بعضی ها باشند که در ذهن یک غول از برنامه نویسی ساخته باشند اما اجازه بدهید که در اینجا اعلام کنیم این پیش فرض کاملا اشتباه است!

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

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




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

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



تارنمای پویا چیست؟ (تارنما= وب سایت)
در گذشته اگر قرار بود یک شرکت٬ سازمان و یا هر کسی که اقدام به راه اندازی سیستم تارنما بر روی شبکه داخلی و یا اینترنت نماید٬ باید این کار را توسط زبان و یا دستورهای اچ تی ام ال (HTML) انجام می داد.

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

با پیدایش زبان هایی مانند پی اچ پی این قابلیت به تولید سیستم اضافه شد که از دوباره سازی این صفحات و کدها جلوگیری می کرد. حال همین شرکت خودمان با ۲۰۰ محصول کافی است که یک صفحه به عنوان الگو داشته باشد و تمام محصول ها را در همان یک برگه به نمایش بگذارد. جالب شد نه!

البته این کار به کمک ابزاری دیگر به نام پایگاه داده ها انجام می شود. پایگاه داده ها جایی است که اطلاعات شما به طور طبقه بندی شده در آن ثبت می شود و هر لحظه می توانید به آنها دسترسی داشته باشید. نگران این مورد هم نباشید چون در طول دوره آن را هم با لذت تمام یاد خواهیم گرفت.
خب در یک تعریف کوتاه باید بگوییم که سیستم پویا سیستمی است که به کمک پایگاه داده ها و توسط یک الگو برای یک صفحه می تواند کار ۱۰۰ یا ۲۰۰ و یا حتی بیشتر را انجام دهد.

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

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



مفهوم سرور و کاربر CLIENT/SERVER

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

به طور ساده این مفهوم وقتی پیدا می شود که در یک تعامل بین دو طرف یکی سرویس بدهد و دیگری سرویس بگیرد٬ همین :)

مثلا وقتی شما به فروشگاه محله خود برای خرید می روید، در این تعامل شما کسی هستید که تقاضای سرویس دارید یعنی کاربر٬ و یا همان مشتری خودمان و در آن طرف قضیه فروشنده٬ سرویس دهنده می شود. در دنیای رایانه به سیستمی که سرویس ارائه می کند سرور (Server) و به کسی که سرویس می گیرد کاربر (Client) می گویند. سرور همان رایانه خودمان است با این تفاوت که از قطعاتی قوی تر و سریع تر تشکیل شده است.

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

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

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



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

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

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


[تصویر:  attachment.php?aid=11361]

منبع عکس: کتاب PHP and MySQL for Dynamic Web Sites: Visual QuickPro Guide نوشته Larry Ullman

در اینجا این درس را به پایان می بریم. در درس آینده کار را با معرفی سینتکس (Syntax) یا نحوه برنامه نویسی با پی اچ پی ادامه می دهیم.

فراموش نکنید که پی اچ پی زبان سمت سرور است؛ پس تا درس بعدی باید مقدمات لازم را فراهم کنید که همان نصب WampServer بر روی رایانه تان است. برای دریافت این نرم افزار به این آدرس مراجعه کنید.

به قسمت پایین صفحه رفته و برنامه مورد نظر خود را با توجه به نسخه سیستم عامل تان در بخش Downloads دریافت کنید. تا درس بعد بدرود :)


فایل‌(های) پیوست شده بندانگشتی (ها)
   

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
(آخرین ویرایش در این ارسال: ۱۵-فروردین-۱۳۹۳, ۱۳:۱۶:۳۱، توسط Ghoghnus.)
۱۵-فروردین-۱۳۹۳, ۱۳:۱۳:۴۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hadikh73, salehjg, omid_phoenix, رسول, babyy, hamed_Arfaee, فاطمه وطن دوست, Ambassador, behzady, azad11
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #2
RE: آموزشی مقدماتی پی اچ پی (PHP)
نحوه کار زبان پی اچ پی
پی اچ پی زبانی است که در داخل اچ تی ام ال قرار داده می شود. برای آشنایی با نحوه کار این زبان ما این مهم را قدم به قدم با کدنویسی ساده انجام می دهیم. ابتدایی ترین چیز در استفاده کردن از این زبان قرار دادن کدهای خود در داخل برچسب (تگ یا Tag) زیر است:

کد:
<?php
محل قرار گرفتن کد
?>
هر کدی که در میان این دو برچسب قرار دهید به عنوان کد پی اچ پی قلمداد می شود. نکته بعدی پسوند فایل شما است که در زبان کدنویسی پی اچ پی بهتر آن است که از پسوند .php استفاده کنید.

به طور مثال نام index.php را برای ابتدایی ترین فایل خود برگزینید. البته برای نمایش یک برگه دارای کد پی اچ پی ما کماکان باید از برچسب های اچ تی ام ال هم استفاده کنیم. به مثال زیر توجه کنید:
   
همانطور که می بینید برچسب پی اچ پی در داخل برچسب های اچ تی ام ال قرار گرفته است. تابع echo مورد نوشته شده را برای شما چاپ می کند. حال دست به کار شوید و فایلی با نام index.php درست کرده و برچسب های بالا را در آن بگذارید. این کار را با یک فایل متنی و تغییر پسوند آن انجام دهید. test.txt را به index.php تغییر دهید.

نکته: فراموش نکنید که برای نمایش کد در مرورگر خود حتما فایل مورد نظر را در پوشه www که توسط برنامه wamp server ایجاد شده قرار دهید. نشانی این پوشه می تواند چیزی مانند این باشد:

I:wampwww

البته :I می تواند نام درایو محل نصب برنامه باشد. در داخل www پوشه ای به نام PHP ایجاد کنید و فایل را در آن قرار دهید. برنامه wamp را اجرا کرده و بر روی آیکون این برنامه در قسمت راست نوار وظیفه کلیک کرده و مطابق عکس زیر Localhost را انتخاب کنید.
   
حال شما کلمه «درود» را در مرورگر خود مشاهده می کنید. شما ابتدایی ترین کد خود را در پی اچ پی نوشتید٬ به همین سادگی.

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

البته راه های بیشتری برای نوشتن برچسب پی اچ پی وجود دارد مانند:
کد:
<?  ?> و یا <script language="php"> </script>
که همان ابتدایی بهترین است و پیشنهاد می شود. برای دسترسی مستقیم هم می توانید در محل نشانی مرورگر نشانی http://127.0.0.1/php/index.php را هم وارد کنید. php نام پوشه ای است که شما در پوشه www ساخته اید.



فرستادن داده ها به مرورگر
در بخش قبل دیدید که ما کلمه «درود» را در مرورگر نوشتیم. این کار را با کمک دستور echo انجام دادیم. برای فرستادن داده ها به مرورگر تابع های متفاوتی وجود دارد که معروف ترین آنها echo و print است. برای مثال می توانید به این طریق عمل کنید:
کد:
echo 'درود';   print "درود";
شما این کار را می توانید با کمک ' ' و یا " " انجام دهید که تفاوتی هم با یکدیگر دارند که در دروس بعدی آنها را ذکر خواهیم کرد.

نکته بعدی این است که در آخر تمام کدهای پی اچ پی باید علامت ; یا سمی کالن (Semicolon) قرار بگیرد. مورد مهم بعدی این است که دستورات پی اچ پی را می توانید با حروف بزرگ ECHO یا کوچک echo بنویسید که فرقی برای پی اچ پی نمی کند و همه را یکی در نظر می گیرد ولی بهتر آن است که از همین ابتدا یاد بگیرید که از حروف کوچک استفاده کنید.

نکته: شما نمی توانید از علامت ' ' یا " " در داخلی یکدیگر به طور تکراری استفاده کنید. مثلا این مورد به شما خطا می دهد:
کد:
echo "٬ درود" حال شما چطور است؟"";  ویا  echo '٬ درود' حال شما چطور است؟'';
برای نوشتن دستور بالا شما باید به این صورت عمل کنید:

کد:
echo '٬ درود" حال شما چطور است؟" ';  ویا  echo "٬ درود' حال شما چطور است؟' ";

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


کد:
echo "٬ درود"\ حال شما چطور است؟"\";  ویا  echo '٬ درود'\ حال شما چطور است؟\'';

   

فضای خالی
پی اچ پی اصولا فضای خالی را در نظر نمی گیرد و اگر شما می خواهید به طور مثال یک فاصله یا یک خط فاصله بی اندازید، باید از کدهای اچ تی ام ال در کد پی اچ پی استفاده کنید. به طور مثال:

کد:
echo  'درود'  .  '<br />'  . 'حال شما چطور است' ;

همانطور که می بینید ما از برچسب اچ تی ام ال <br /> در داخل پی اچ پی برای انداختن خط فاصله استفاده کردیم.

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



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

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

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

در پی اچ پی به چند صورت می توانید توضیحات یا دیدگاه بگذارید:

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

کد:
print 'درود'; //کلمه درود را چاپ می کند
//کلمه درود را چاپ می کند
print 'درود';
استفاده از علامت #: درست مانند نمونه قبلی عمل می کند.

کد:
print '';  # کلمه درود را چاپ می کند
نوع سوم که با /* آغاز و با */ خاتمه می یابد برای گذاشتن توضیح در چند سطر است.

کد:
/*  این نوشته برای
توضیح این کد است
*/
متغیرها
متغیرها در اصطلاح فضاهایی هستند که مقداری را برای مدت کوتاهی در خود نگهداری می کنند که در صورت لازم از آن در طول مرحله اجرای کد استفاده شود. مقادیر داخل متغیرها می توانند اعداد٬ متن٬ کاراکتر و صورت های دیگری از مقدار باشند.

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

۱- یک متغییر باید با علامت $ آغاز گردد. مثلا $name

۲- نامی که برای متغیر انتخاب می کنید می تواند شامل حروف٬ اعداد و خط فاصله زیرین باشد. مانند $my_name

۳- کاراکتر ابتدایی نمی تواند عدد باشد. به همین دلیل این دو مثال خطا هستند: $3_name یا $5name

۴- در مورد نام متغیرها بزرگی و یا کوچکی حروف در پی اچ پی مهم و با هم متفاوت هستند. پس $NAME با $name با $Name متفاوت است.

نکته ۱: برای مقدار دادن به متغیرها از علامت '=' استفاده می کنیم. مانند $name = 'darsameh' و برای چاپ نیازی به علامت ' ' یا " " نیست. مانند echo $name ; که کلمه darsnameh را چاپ می کند.

نکته ۲: در زمان قرار دادن یک متغیر در بین کلمات و یا با کلمات نمی توانید از علامت ' ' استفاده کنید و باید حتما از علامت " " استفاده کرد. خروجی این کد:
کد:
echo 'درود $name' ;
برابر با:
کد:
درود $name
می شود که حتما خواسته نویسنده کد نیست. حالت درست به شکل زیر است:
کد:
echo " درود$name  ";
که خروجی آن می شود:

کد:
درود darsameh
حال بیاید یک مثال کامل برای متغیرها درست کنیم. یک برنامه کوچک که نام٬ نام خانوادگی و سن ما را چاپ می کند. برای این کار سه متغییر نیاز داریم. کد را به شکل زیر می نویسم:
کد:
<?php
$first_name = 'محمد';
$last_name  = 'ققنوس';
$age        = ۲۵ ;
print " درود $first_name  $last_name $age ساله ";
?>
خروجی می شود:
کد:
درود  محمد ۲۵ ساله

با یک مثال دیگر چطورید؟

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

کد:
<?php
$file = $_SERVER['SCRIPT_FILENAME'];
$user = $_SERVER['HTTP_USER_AGENT'];
echo "<p>نشانی فایل شما در:<br/><b>$file</b>.</p> ";
// چاپ اطلاعات مرورگر
echo "<p>شما از مرورگر زیر استفاده می کنید:
<br /><b>$user</b></p> ";
?>

ما در این دو مثال از متغیرها استفاده کردیم و بعد آنها را چاپ نمودیم.
کار با رشته ها یا String
رشته در اصل همان مجموعه ای از کاراکترها است. به طور مثال نام شما یک رشته است. اما ارقام هم می توانند رشته باشند، مثلا '12345'. وقتی یک مقدار رشته ای را به متغیر می دهید، آن متغیر رشته ای می شود و آن مقدار را برای شما نگهداری می کند.

نکته این است که اگر می خواهید یک عدد را به طور رشته در متغیر قرار دهید، باید آنرا در داخل علامت '' یا "" قرار دهید. برای چاپ رشته هم باید از همان تابع های echo() و print() استفاده کنید. در قسمت قبلی شما با رشته کار کردید پس در اینجا نیازی به مثال نیست.

نکته: در زمانی که به یک متغیر مقداری داده اید، اگر دوباره مقدار دیگری در آن قرار دهید، متغیر مقدار جدید را نگهداری می کند.

نکته: شما هیچ محدودیتی در طول رشته ندارید.



اتصال رشته
برای اتصال دو رشته به هم از علامت ' . ' استفاده می کنیم. به طور مثال فرض کنید ما دو مقدار رشته داریم و می خواهیم آنها را در کنار هم نمایش دهیم.
کد:
$f_name = ' محمد';
$l_name = ' ققنوس' ;
$full_name = $f_name  . ' , ' . $l_name ;
print $full_name ;
خروجی این کد خواهد شد:
کد:
محمد , ققنوس
مقدار عددی
از آنجا که در پی اچ پی نیاز ندارید نوع مقدار در متغیر را تعبین کنید، کار با اعداد و به طور کلی متغیرها بسیار آسان است. شما می توانید یک مقدار صحیح یا اعشاری در یک متغیر قرار داده و از آن استفاده کنید.

از جمله کارهایی که شما با اعداد می توانید انجام دهید گرد کردن عدد و یا دادن فرمت خاصی به آن است که از توابع round() و number_format() استفاده می شود.برای فهم این موضوع به مثال زیر توجه کنید:
کد:
$number = 2050.169 ;
$number = round ($number);
echo $number . "<br />"; // => 2050

$number = 2050.169 ;

$number = round ($number, 2) ;
echo $number . "<br />";// => 2050.17

$number = 2050.169 ;
$number = number_format($number);
echo $number . "<br />";// => 2,050

$number = 2050.169 ;
$number = number_format($number, 2);
echo $number . "<br />";// => 2,050.17​
در این مثال ها چند نکته قابل توجه است

ابتدا که هر بار که به متغیر مقدار می دهیم، متغیر مقدار جدید را نگه می دارد.

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

تابع number_format() دو کار را همزمان انجام می دهد: ‍۱) به عدد از روی تعداد رقم ها سروسامانی می دهد و عدد را سه رقم سه رقم از هم جدا می کند. ۲) با وجود پارامتر، عدد با توجه به مقدار پارامتر اعشاری باز می گردد.



ثابت ها
ثابت ها در اصل همان متغیر هستند با این فرق که یک بار مقدار می گیرند و این مقدار تغییر نمی کند. همان طور که از نامش پیداست، ثابت است؛ یعنی در طول عملیات کد شما، این مقدار در ثابت ها تغییری نمی کند. برای تعریف کردن ثابت به مثال زیر توجه کنید:
کد:
define ( '  نام ثابت' , '  مقدار ثابت' );
define ( '  NAME' , '  محمد' );
همانطور که می بینید ثابت ها نیاز به علامت $ ندارند و نکته بعدی این است که معمولا برای تعریف ثابت از حروف بزرگ استفاده می شود.

نکته: برای نمایش و چاپ ثابت نباید آن را در علامت های ' ' و یا " " قرار دهید. به مثال زیر توجه کنید:

کد:
نادرست: echo ' درود NAME'; // => درودNAME
درست: echo ' درود ' . NAME; // => درود محمد
تفاوت علامت های ' ' و " "
در طول این درس ما از این دو علامت استفاده کردیم. حتما تا به حال متوجه فرق بین آنها شده اید. مورد اصلی تفاوت بین این دو طرز برخورد مقادیر در داخل این علامت ها است.

اگر مقداری را در بین علامت ' ' قرار دهید، پی اچ پی این مقدار را یک مقدار متنی در نظر می گیرد در صورتی که مقدار بین علامت " " مقداری است که پی اچ پی آن را ترجمه می کند.

در مثال های قبلی دیدیم که شما توانستید یک متغیر را در میان علامت " " قرار داده و مقدار داخل آن را چاپ کنید اما متغیر داخل ' ' به صورت همان نام متغیر چاپ شد.

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

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

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۱۵-فروردین-۱۳۹۳, ۱۹:۴۶:۱۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : رسول, babyy, omid_phoenix, hamed_Arfaee, hadikh73, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #3
درس دوم- ساخت فرم و انتقال داده از فرم به برگه نمایش
اکنون که شما با نحوه کار پی اچ پی آشنا شدید٬ وقت آن رسیده که از آن دانش پایه ای استفاده کرده و رفته به رفته برنامه نویسی با پی اچ پی را به طور جدی تر دنبال کنیم. در طول این درس ما تلاش می کنیم از موارد گفته شده استفاده کرده و قدم به قدم نکات جدید را به آن اضافه کنیم. این درس با ساخت فرم در اچ تی ام ال آغاز شده و یاد می گیریم که چطور می توانیم از پی اچ پی برای کار با مقادیر فرستاده شده توسط فرم استفاده کنیم.



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

برای انجام این مهم دو کار ضروری است٬ یکی ساخت خود فرم و دیگری نوشتن کد پی اچ پی برای گرفتن و پردازش داده های ارسالی فرم.

از آنجایی که پیش نیاز این درس اچ تی ام ال و آگاهی کمی از سی اس اس است، ما وارد جزییات چگونگی ساخت فرم نخواهیم شد اما در یک مثال شما این فرم را در اختیار خواهید داشت. هر فرم اچ تی ام ال با برچسب <form action="form.php" method="post"> آغاز شده و با </form> پایان می پذیرد. در داخل این فرم دو ویژگی وجود دارد که در زیر به دلیل استفاده از آنها اشاره می کنیم:

- action: این ویژگی تعیین می کند که داده ها به کدام فایل که کد پی اچ پی در آن قرار دارد ارجاع داده شود.

- method: این نحوه عملکرد در ارسال داده ها را تعیین می کند که در زمان خود به آن بیشتر می پردازیم.
در داخل این برچسب فرم٬ المان های دیگری نظیر textbox و radio button و select menu و غیره قرار می گیرند. این المان ها براساس نیاز و در جای مشخص خود واقع می شوند. اما نکته مهم نامی است که شما برای آنها انتخاب می کنید که کد پی اچ پی با آن نام ها، آنها را شناسایی می کند.

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

- GET: وقتی از این ویژگی استفاده می کنیم٬ داده ها به صورت نام = مقدار به مرورگر شما داده می شود به طوری که شما در نشانی مرورگر خود این داده ها را مشاهده می کنید.

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

خوبی این کار این است که کاربر می تواند این صفحه را برای خود نشان گذاری یا Bookmark کند و یا با کمک دکمه عقب (Back)٬ به عقب برگردد.

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

نکته ۱: به خاطر پدیدار شدن داده ها در محل نشانی مرورگر، ما از ویژگی get در مواردی که امنیت در درجه بسیار بالای باشد به هیچ وجه استفاده نمی کنیم.
نکته ۲: در اندازه مقدار داده شده به متد get محدودیت وجود دارد.

- POST: به طور کلی از این ویژگی برای زمانی استفاده می کنیم که امنیت بیشتری لازم داریم؛ چرا که این متد، داده ها را در مرورگر نشان نمی دهد. مثلا فرض کنید می خواهید مقداری را در پایگاه داده ها ثبت کنید و یا می خواهید رایانامه ای را ارسال کنید.

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

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

ابتدا فایلی با نام form.php ساخته و در پوشه www/php که قبلا در پوشه برنامه WampServer ساخته اید قرار دهید. حال برنامه را اجرا کرده و به آدرس http://127.0.0.1/php/form.php بروید و یا از طریق آیکون برنامه، Localhost را انتخاب کنید. فعلا یک برگه سفید بیش نیست اما در ادامه این برگه را با فرم خود پر می کنیم.

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

در فایل فرم خود کدهای زیر را وارد کنید:
کد:
<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <title>آموزش ساخت فرم اچ تی ام ال</title>
<link rel="stylesheet" type="text/css" media="all" href="style.css" />
</head> <body>
<!-- کد برای ساخت فرم - form.html -->
<form action="form_handler.php" method="get">
<fieldset>
<legend align="right">لطفا فرم زیر را پر کنید</legend>
<label> نام</label>
<input type="text" name="name" />
<label> رایانامه </label>
<input type="text" name="email" />
<label>دیدگاه</label>
<textarea name="comments" ></textarea>
</fieldset>
<input type="submit" name="submit" value="ارسال" class="submit"/>
</form>
</body>
</html>
حال فرم خود را در مرورگر نظاره کنید.

قسمت بعدی فایلی است که کدهای پی اچ پی در آن قرار دارد. فایل دیگری با نام form_handler.php بسازید. این فایل کار دریافت و سازماندهی داده ها را انجام می دهد. اطلاعات زیر را در داخل آن بنویسید:
کد:
<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title> پاسخ  </title>
<link rel="stylesheet" type="text/css" media="all" href="style.css" />
</head>
<body>
<div id="contain">
<?php  // چاپ داده های ارسالی
$name = $_GET['name'];
$email = $_GET['email'];
$comments = $_REQUEST['comments'];
echo 'با سپاس <br /><span> ' . $name . '</span><br />برای این نوشته <br />' ;
?>
<div class="comment"> <?php echo $comments ; ?> </div><br />

ما با شما تماس می گیریم توسط این رایانامه <br />
<div class="email">
<?php echo $email . '<br /><br />' ;?>
</div>
<a href="form.php">برگشت</a>
</div>
</body>
</html>
قبل از امتحان کدها یک کار دیگر هم باید انجام دهیم تا داده ها همان طور که ما می خواهیم نمایش داده شوند. فایل دیگری بسازید و نام آن را style.css بگذارید و کدهای زیر را در داخلش بنویسید.

کد:
body { background-color:#fff; text-align: center; color:#333;}
/* قسمت فرم */
form { width:700px; margin:100px auto auto;}
fieldset{border:1px solid #ddd;}
label, input, textarea{margin:5px 10px 0px auto; text-align: right; clear: both; float:right;width:60%;}
input{margin:5px 10px 10px auto}
textarea{width:80%; height:150px;}
.submit{float: none; text-align: center; border:1px solid #ddd; color:#039;}

/* قسمت پی اچ پی */
#contain{ border:1px solid #ddd; width:60%; margin:150px auto auto auto; overflow: hidden;}
span{color: GREEN;}
.email{color:#960;}
.comment{color:#09C; width:80%; border:1px solid #eee; margin: auto;}
در حال حاضر ما سه فایل داریم؛ یکی برای ساختن فرم٬ دیگری برای کار با داده های فرم و آخری برای ساختار نمایش داده ها در مرورگر. حال می توانید عملکرد کد خود را ببینید.

نکته ۱: هر سه این فایل ها باید در داخل یک پوشه قرار گیرند.

نکته ۲: ما از متد GET و REQUEST برای ارسال داده ها استفاده کردیم٬ لطفا نگاهی هم به نشانی مرورگر بعد از فشردن دکمه ارسال بیاندازید. چه می بینید؟ بله داده ها به صورت نام و مقدار در داخل نشانی مرورگر دیده می شوند. حال در دو فایل فرم و پی اچ پی هر جا که GET یا REQUEST می بینید، آنها را با POST عوض کنید. حال چه شد؟ اثری از داده ها در مرورگر نیست. بعد از استفاده از POST دیگر داده ها در مرورگر فرستاده نمی شوند.

نکته ۳: اگر در فایل form_handler.php دقت کنید ما از متغیری با نام $_REQUEST به صورت آنچه در زیر می بینید استفاده کردیم.

کد:
$comments = $_REQUEST['comments'];
به این نوع متغیر فرا جهانی می گویند که اطلاعات فرستاده شده از فرم را ذخیره می کند. در آینده در مورد این نوع متغیر بیشتر حرف می زنیم.

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

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

نکته ۵: اگر به جای نوشته هایی مثل نام و... مطلبی نبود، این یعنی که متغیر خالی است و مشکلی در انتقال داده به متغیر اتفاق افتاده است.

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

تا بعد...

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۱۸-فروردین-۱۳۹۳, ۱۹:۵۸:۳۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, lord_viper, omid_phoenix, hamed_Arfaee, hadikh73, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #4
درس سوم- آشنایی با شرط ها و عملگرها
در درس قبلی با چگونگی ساخت فرم در اچ تی ام ال و ارتباط آن با پی اچ پی برای انتقال داده و کار با آن آشنا شدیم. نکته قابل توجه این است که اگر کاربر در داخل هر کدام از کادرهای تعیین شده در فرم مطلبی ننویسد٬ باز فرم ارجاع داده خواهد شد و جای آن کادر خالی باقی می ماند.

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

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



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

این یک شرط است که در صورت درستی شرط٬ عمل بعد از آن «نرفتن به گردش» اتفاق می افتد. البته این فقط یک شرط بود. ما می توانیم چند شرط را تعیین کنیم و یا از شرط های تو در تو استفاده کنیم. به مثال قبلی از این منظر نگاه کنید: «اگر باران بیاید» و «اگر ماشین نداشته باشیم» (دو شرط) «به گردش نخواهیم رفت».

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

مهمترین عباراتی که در ساخت شرط ها از آنها استفاده می کنیم if و else و else if هستند.
کد:
if: همان «اگر» خودمان است.

else: در غیر این صورت

else if: معنی آن می شود٬ در غیر این صورت اگر
شروع کار از عبارت if است٬ بعد از آن شرط ما قرار می گیرد البته در پرانتز٬ به دنبال آن هم عمل هایی که می خواهیم در صورت درستی یا نادرستی شرط اتفاق افتد.
کد:
if(شرط) {
//عملی که در صورت درستی باید انجام شود
}
خب حالا کمی با شرط ها آشنا شدیم اما قبل از بیشتر وارد شدن به بحث شرط ها لازم است که ما با عملگرها هم آشنا شویم.

عملگرها در اصل عباراتی هستند که درون پرانتز بعد از if قرار می گیرند تا شرط ما را پیاده سازی کنند. در زیر به لیست عملگرها و کارایی آنها توجه کنید:

- عملگرهای مقایسه ای: این دسته عملگرها برابری دو طرف عملگر را مقایسه می کنند:
نقل قول: == : برای ارزیابی برابری دو طرف عملگر است که در صورت برابری پاسخ درست می شود.
=! : این عملگر عدم برابری دو طرف را بررسی می کند که در صورت برابر نبودن پاسخ درست است.
< : این علامت کوچک تر است، یعنی اگر طرف چپ کوچک تر از طرف راست عملگر است، پاسخ درست می شود.
> : این درست برعکس کوچک تر یعنی بزرگ تر است. در صورتی که طرف چپ عملگر بزرگ تر باشد، پاسخ درست می شود.
<= : کوچک تر یا مساوی٬ هر دو صورت بررسی می شود.
>= : بزرگ تر یا مساوی.
عملگرهای منطقی: عملگرهای منطقی عبارات را براساس منطق بررسی می کنند:

! : این عملگر عبارت را منفی یا برعکس می کند مثلا درست می شود غلط
&& : این همان «و» خودمان است٬ زمانی این عملگر نتیجه درست می دهد که دو طرف آن بررسی شود. مثلا اگر x=5 و y=7 باشد، در صورت درستی هر دو عبارت، خروجی صحیح می شود.
|| : این همان «یا» می شود. در این عملگر هر کدام از دو طرف درست باشد، پاسخ صحیح می شود. مثلا اگر x=5 یا y=7 شود، هر کدام درست باشد، پاسخ صحیح می شود.
XOR: خروجی این عملگر زمانی درست است که فقط یکی از دو طرف درست باشد. اگر هر دو طرف درست یا هر دو طرف نادرست باشند٬ خروجی می شود ناصحیح.
نگران نباشید؛ ما با مثال های فراوان هر کدام از عملگرها و شرط ها را به طور مفصل شرح خواهیم داد. حال اجازه بدهید این را با خود عبارات شرطی بیشتر توضیح دهیم. از تک شرط شروع می کنیم:

کد:
if(شرط) {
//عملی که در صورت درستی باید انجام شود
}
این یک وضعیت تک شرطی است که تنها اگر شرط درست باشد، انجام می شود. مثلا:
کد:
if(باران بیاید) {
ما به گردش نمی رویم
}
یا مثلا اگر مقدار x با مقدار y برابر بود٬ x را چاپ کن:
کد:
if($x== $y) {
print $x;
}

شرط همراه با  else:

if (شرط) {
//عملی که در صورت درستی باید انجام شود
}
else {
// عمل دیگری اتفاق افتد
}
این یک عبارت شرطی با یک شرط همراه دو عمل است. این عبارت می گوید اگر شرط درست بود، این عمل اتفاق افتد، در غیر این صورت عمل دیگری اتفاق افتد. فرق این شرط با قبلی این است که ما از else برای زمانی که شرط نادرست بود استفاده کردیم. توجه کنید که در مثال قبلی اگر شرط نادرست بود، هیچ اتفاقی نمی افتد اما در این مثال در صورت نادرستی شرط، یک عمل دیگر اتفاق می افتد.
کد:
if (باران بیاید) {
به گردش نمیرویم
}
else {   // در غیر این صورت
به گردش می رویم
}
حال مثال را با متغیرها انجام می دهیم که اگر شرط درست بود یکی را چاپ کند و اگر شرط نادرست بود دیگری را.
کد:
if ($x == $y) {
print $x ;
}
else {
print $y ;
}
در مثال تک شرطی ما فقط به باران آمدن توجه کردیم که اگر بیاید به گردش نمی رویم یا اگر دو مقدار متغیرها برابر بود، یکی را چاپ کند. اما اینجا اگر باران بیاید نمی رویم و اگر نیاید ( در غیر این صورت) به گردش می رویم. و در مثال اگر متغیرها برابر بودند، x را چاپ کن٬ اگر برابر نبودند، y را چاپ کن.



چند شرطی
حالا فرض کنید می خواهیم شرط هایی را به طور پشت سر هم قرار دهیم. توجه کنید:
کد:
if (شرط) {
//عملی که در صورت درستی باید انجام شود
}
else if ( شرطی دیگر) {
// عمل دیگری اتفاق افتد
}
else {
// در صورت اتفاق نیافتن هر کدام از شرطهای بالا این عمل صورت گیرد
}
در اینگونه شرط ها، ما دو یا بیشتر٬ شرط داریم که برنامه ابتدا شرط ابتدایی را بررسی می کند٬ اگر شرط درست بود، اتفاق می افتد و از شرط ها خارج می شویم؛ اما اگر شرط ابتدایی درست نبود، شرط دوم بررسی می شود که در صورت درستی عمل، آن شرط اتفاق می افتد. اما اگر هیچ کدام از شرط ها درست نبود آخرین عمل صورت می گیرد.
کد:
if (باران نیاید) {
به گردش می رویم
}
else if ( ماشین داشته باشیم) {
به گردش می رویم
}
else {   // در غیر این صورت
به گردش نمی رویم
}
در این مثال اگر باران نیاید ما به گردش می رویم و شرط تمام می شود ٬ اگر باران بیاید و اگر ما ماشین داشته باشیم باز به گردش می رویم اما اگر باران بیاید و ماشین هم نباشد نمی رویم.
کد:
if ($x == $y) {
print $x +$y ;
}
else  if ( $x > $y) {
print $x ;
}
else {
print $y ;
}
حال بیایید به شرط های تو در تو بپردازیم. نگران نباشید؛ ما برای هر کدام مثال می آوریم تا خوب برای شما مشخص گردد.

حالا می خواهیم برای اتفاق افتادن یک عمل دو شرط بگذاریم٬ مثال «اگر باران بیاید» و «اگر ماشین نداشتیم» یادتان هست!
کد:
if (شرط) {
if (شرط) {
//عملی که در صورت درستی باید انجام شود
  }
             }
else {
// عمل دیگری اتفاق افتد
}
به این گونه از شرط گذاری شرط تو در تو می گوییم٬ که در صورت درستی شرط ابتدایی٬ برنامه به شرط داخل شرط ابتدایی یعنی شرط دوم می رود٬ اما در صورت نادرستی شرط ابتدایی٬ شرط داخل آن اصلا بررسی نمی شود و برنامه به سراغ else می رود.
کد:
if (باران بیاید) {
if ( ماشین نداشته باشیم) {
به گردش نمی رویم
}
}
else {   // در غیر این صورت
به گردش می رویم
}
به مثال زیر توجه کنید که از چند شرط به طور تو در تو استفاده شده است. این مثال می گوید که اگر متغیرها با هم برابر نیستند٬ هر کدام که بزرگ تر است را چاپ کن. در غیر این صورت یعنی اگر برابرند٬ جمع آنها را چاپ کن.
کد:
if ($x != $y)
{
if ( $x > $y){
print $x;
}
else {
print $y;
      }
}
else {
print $x +$y ;
      }
طبق مثال بالا اگر شرط ابتدایی برقرار نباشد یعنی اگر متغیرها برابر باشند به قسمت else آخر می رود و جمع آنها را چاپ می کند. اما در صورت برابر نبودن یعنی نادرست بودن شرط به داخل شرط ابتدایی رفته و شرط های دیگر را بررسی می کند.
نقل قول: نکته ۱: در زمانی که عمل بعد از درستی شرط یکی باشد، نیازی به گذاشتن { } نیست. این کاراکتر زمانی ضروری است که شما بخواهید چند دستور را بعد از درستی شرط انجام دهید. اما پیشنهاد می شود که شما همیشه از این کاراکترها استفاده کنید.

نکته ۲: تلاش کنید همیشه در زمان تعریف یک شرط هر دو کاراکتر {} را قبل از هر چیزی بگذارید چرا که در صورت استفاده از چندین شرط ممکن است ترتیب کاراکترها به هم بخورد که باعث ایجاد خطا می شود.


Switch
نوع دیگر شرط گذاری استفاده کردن از switch است که کارایی خود را دارد. نحوه نوشتن آن به شکل زیر است:
کد:
switch (متغیر)
{
     case  ‘مقدار ابتدایی’  :
     {
     // دستور
          break ;
}
      case  ‘مقدار دوم’  :
{
     // دستور
     break;
}
     default:
{
     // دستور
     break;
}
}
در این نوع شرطی، switch مقدار متغیر را با هر کدام از عبارات مقابل case مقایسه می کند. وقتی این مقدار برابر با هر کدام از عبارات شد، دستورات داخل آن case انجام می شود و بعد با کمک دستور break از داخل شرط خارج می شود. در درس های آینده از این نوع شرطی بیشتر حرف خواهیم زد و بهتر آن است که فعلا روی if تمرکز کنیم.



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

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

لطفا برنامه WampServer خود را اجرا کرده و سه فایل با نام های form.php و form_handler.php و style.css را ساخته و در پوشه www/php خود قرار دهید.

فایل form.php را باز کرده و کدهای زیر را داخل آن قرار دهید.
کد:
<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>آموزش شرطی با ساخت فرم اچتیامال</title>
     <link rel="stylesheet" type="text/css" media="all" href="style.css" />
</head>
<body>
<!-- کد برای ساخت فرم - form.html -->

<form action="form_handler.php" method="post">
<fieldset>
<legend align="right">لطفا فرم زیر را پر کنید</legend>
<label> نام</label>
<input type="text" name="name" />
<label> رایانامه </label>
<input type="text" name="email" />
<label>دیدگاه</label>
<textarea name="comments" ></textarea>
</fieldset>
<input type="submit" name="submit" value="ارسال" class="submit"/>

</form>
</body>
</html>
این دقیقا برابر همان فرمی است که در درس قبل ساختیم، البته با کمی از تغییرات مثلا تغییر متد.

حال ما نیاز به یک ارزیاب فرم با کدهای پی اچ پی داریم. فایل form_handler.php را باز کنید و کدهای پی اچ پی را در آن قرار دهید.
کد:
<html>
<head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title> پاسخ  </title>
     <link rel="stylesheet" type="text/css" media="all" href="style.css" />
</head>
<body>
<div id="contain">
<?php // قرار دادن داده ها در متغیر
$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
if ( !empty($_POST['name']) && !empty($_POST['comments']) && !empty($_POST['email']) )
{
echo 'با سپاس <br /><span> ' . $name . '</span><br />برای این نوشته <br />' ;
?>
<div class="comment"> <?php echo $comments ; ?> </div>
ما با شما تماس می گیریم توسط این رایانامه <br />
<div class="email">
<?php echo $email . '<br /><br />' ;?>
</div>
<?php
}
else
{
echo '<div class="error">لطفن برگردید و فرم را کامل پر کنید</div>';
}
?>
<a href="form.php">برگشت</a>
</div>
</body>
</html>
بررسی کدهای form_handler.php
در این کدها ابتدا ما داده های فرستاده شده از فرم را گرفته و در داخل متغیرها می گذاریم. سپس از شرطی ها برای بررسی داده ها استفاده می کنیم. کاری که انجام می شود این است که با یک «اگر» بررسی می کنیم که آیا همه کادرها پر شده یا نه.
کد:
$name = $_POST['name'];
$email = $_POST['email'];
$comments = $_POST['comments'];
این سه خط٬ داده ها را از فرم توسط متغیرهای پر شده $_POST گرفته و در متغیرهای تعریفی جدید می گذارند. حال می توانیم با بررسی مقدار داشتن یا نداشتن این متغیرها به خالی بودن یا پر بودن کادرها پی ببریم. این کار را با شرطی زیر انجام می دهیم:
کد:
if ( !empty($name) && !empty($_POST['comments']) && !empty($_POST['email']) )
این شرطی بررسی می کند که اگر متغیرهای نام٬ رایانامه و دیدگاه خالی نیست، دستورهای بعدی انجام شوند. در صورتی که پاسخ این شرط منفی باشد، به قسمت else می رود و هشدار خالی بودن را می دهد.
کد:
else
{
echo '<div class="error">لطفا برگردید و فرم را کامل پر کنید</div>';
}
همانطور که ملاحظه می کنید در داخل پرانتز if از هر دو نوع متغیر استفاده شده تا به شما گوناگونی این کاربرد را نشان دهیم. به طور مثال یکجا از خود متغیر ($_POST['comments']) استفاده شده و در جای دیگر متغیر $_POST['name'] را درون متغیر دیگری با نام $name ریخته و از آن استفاده کردیم.

در داخل این شرط از دو عملگر && و ! برای مطمئن شدن از خالی نبودن متغیرها استفاده شده است.

در زمانی که این شرط ها درست باشند، برنامه به داخل if رفته و دستورات چاپ متغیرها را اعمال می کند.

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

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

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

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

پس تا درس بعد بدرود.


فایل‌(های) پیوست شده
.zip   form3.zip (اندازه: 3.13 KB / تعداد دفعات دریافت: 40)

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۱۹-فروردین-۱۳۹۳, ۲۲:۲۲:۳۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, hamed_Arfaee, lord_viper, omid_phoenix, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #5
RE: آموزشی مقدماتی پی اچ پی (PHP)
تا اینجا در زمانی که خواستیم مقداری برای مان نگهداری شود تا در طول برنامه از آن استفاده کنیم٬ این مقدار را درون متغیرها که خانه های خالی حافظه هستند، قرار دادیم. اما این متغیرها تنها قادرند که یک مقدار را برایمان ذخیره کنند؛ پس اگر خواستیم چندین مقدار را ذخیره کنیم چی؟

اینجاست که آرایه ها به کمک ما می آیند. در این درس به شرح آرایه ها و چگونگی استفاده از آنها برای ذخیره چندین متغیر می پردازیم.



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

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

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

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



ساختار آرایه
پی اچ پی دو نوع آرایه را حمایت می کند٬ یکی آرایه با اندیس عددی٬ یعنی اندیس اشاره گر به مقدار عدد است و دیگری آرایه با اندیس کاراکتری یا کلمه ای که اندیس خود یک کاراکتر یا کلمه تعریف می شود. در زیر نمونه هایی از این دو نوع را می بینید:
کد:
$name[2]
$name[ ' staff ' ];
نکته ۱: قوانینی که برای نام گذاری متغیرها بیان شدند، برای آرایه ها هم برقرار هستند.

نکته ۲: به خاطر اینکه یک آرایه، مقادیر بیشماری را در خود نگه می دارد، طریقه چاپ آن با یک متغیر معمولی فرق دارد.

نکته ۳: پی اچ پی خود از آرایه های از قبل تعریف شده به نام متغیرهای فرا جهانی یا Super Global Variables استفاده می کند. نمونه هایی از این دست آرایه های از پیش تعریف شده را قبلا دیده اید. مثلا:
کد:
$_GET, $_POST, $_REQUEST ...


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

نوع اول
تعریف و دادن مقدار به آرایه در زمان ایجاد آن. به مثال زیر توجه کنید که ابتدا آرایه تعریف و همزمان بدان مقدار داده می شود:
کد:
$name[] = ' حمید ' ;
$name[] = ' سعید ' ;
$name[ ' staff3 ' ] = ' محمد' ;
در این حالت اندیس بطور خودکار از 0 تا ... به آرایه اضافه می شود، یعنی مقادیر برای فراخوانی باید با کلید خود خواسته شوند، و یا می توان از کلید کلمه ای استفاده کرد. توجه کنید:
کد:
$name[0]   // حمید  
$name[1]  //   سعید  
$name[' staff3 ']  //     محمد
حال مقدار نخستین آرایه با کلید 0 می شود 'حمید'، دومی می شود 'سعید' و سومی هم 'پیمان'. برای چاپ کردن این مقادیر هم می توانید به صورت یکی از روش های زیر عمل کنید:
کد:
echo $name[0] ;
echo $name[1] ;
echo $name[' staff3 '] ;
echo $name[0] . '  ' . $name[1] . '  ' . $name[' staff3 ']  ;
نوع دوم
در نوع دوم به جای تعریف یک آرایه به طور یکی یکی، می توانید با کمک تابع array() کل مقادیر را یکجا در آرایه قرار دهید که این قابلیت هم به چند شیوه قابل اجرا است. مانند:
کد:
$name = array ( ‘حمید  ’ ,  ‘ سعید ’ ,  ‘ محمد’) ;
خوب مقادیر به ترتیب با کلیدهای 0 و 1 و 2 وارد آرایه می شوند.
کد:
$name = array ( 1 => ‘حمید  ’ ,  ‘ سعید ’ ,  ‘ محمد’) ;
در این حالت ما عدد کلید شروع شونده را از 0 به 1 تغییر دادیم تا مقادیر با کلید 1 شروع به ذخیره شدن کنند. پس مقادیر به ترتیب با کلیدهای 1 و 2 و 3 وارد آرایه می شوند.
کد:
$name = array (' staff1' => 'حمید  '  , ' staff2' => ' سعید ' , 'staff3' => ' محمد' ) ;
در این حالت ما از کلید کلمه ای استفاده کردیم که به جای عدد، مقادیر با کلیدهایی که تعریف می کنیم وارد شوند. توجه کنید که در این حالت برای فراخوانی مقداری از آرایه باید نام کلید را بدانید؛ مثلا فرض کنید ما می خواهیم نام سعید را چاپ کنیم که باید به شیوه زیر باشد:
کد:
echo $name[ ' staff2 ' ] ;
نکته ۱: از تابع array() می توانیم برای تعریف نخستین یک متغیر آرایه ای استفاده کنیم مانند:
کد:
$name = array();
$name[] = '  سعید ' ;
همانطور که می بینید در جمله ابتدایی، متغیر $name را به صورت یک آرایه تعریف کردیم و در جمله دوم بدان مقدار دادیم.

نکته ۲: از تابع range() می توانیم برای ایجاد آرایه ای متشکل از یک سری اعداد پشت سر هم استفاده کنیم.
کد:
$number = range ( 1 , 20 );
در این حالت ما آرایه ای تعریف کردیم که اعداد 1 تا 20 را با کلید 0 تا 19 در خود جا داده است.
کد:
echo $number [0] ; // خروجی می شود  1
echo $number [10] ; // خروجی می شود   11
echo $number [19] ; // خروجی می شود   20
به خاطر شروع شدن کلید از 0، پس عدد 1 در آرایه ای با کلید 0 ذخیره می شود.



دسترسی به آرایه ها
در استفاده کردن از آرایه و چاپ آن دیدیم که این عمل چطور با دانستن کلید آرایه انجام شد. اما این راه فقط برای دسترسی به یک آرایه است. راه دیگری برای دسترسی همزمان به همه آرایه ها وجود دارد که از تابع foreach() استفاده می شود. ساختار این تابع به شکل زیر است:
کد:
foreach ( $array as $value ) {
//  دستورات برای انجام و استفاده از مقادیر
}
این تابع دارای دو پارامتر است که ابتدایی به نام آرایه شما اشاره دارد و دومی به تک تک مقادیر در آرایه. مثلا اگر بخواهیم اعدادی از 1 تا 20 را چاپ کنیم، می توانیم بنویسیم:
کد:
$number = range ( 1 , 20 ) ;
foreach ( $number as $num ) {
echo $num . '   ' ;
} //  1 2 3 4 5 ........ 20
دقت کنید که در زمان چاپ اعداد، بعد از هر عدد یک فاصله با کمک . ' ' گذاشتیم. علاوه بر این می توانیم در داخل ' <br /> ' بگذاریم که اعداد را در حالت ستونی چاپ کند:

echo $num . ' <br /> ' ;

نوع دیگر استفاده از این تابع گذاشتن کلید در آن است. توجه کنید:
کد:
$name = array (' staff1' => 'حمید  '  , ' staff2' => ' سعید ' , 'staff3' => ' محمد' ) ;
foreach ( $name as $key => $num ) {
echo $num . ' <br /> ' ;
}
مرتب کردن آرایه ها
برای مرتب کردن آرایه ها براساس حروف الفبا از تابع sort() استفاده می شود. ما در پی اچ پی قادر هستیم که آرایه ها را براساس چند فاکتور مرتب کنیم.

ابتدا اینکه آرایه را براساس مقدار داخل آن یا براساس کلیدهای آن مرتب کنیم.
کد:
$name = array (' staff1' => 'حمید  '  , ' staff2' => ' سعید ' , 'staff3' => ' محمد ' ) ;
sort($name);
foreach ( $name as $key => $num ) {
echo $num . ' <br /> ' ;
}
نکته: در این حالت مرتب سازی با استفاده کردن از تابع sort()، این تابع کلیدهای وارد شده برای آرایه را پاک کرده و مجددا خود از 0 تا... کلیدگذاری می کند. پس اگر برای آرایه خود کلید کلمه ای انتخاب کردید، هرگز از این تابع استفاده نکنید. برای دیدن این تغییرات کافیست که مطابق زیر عمل کنید:
کد:
$name = array ('staff1' => 'سعید' , 'staff2' => ' حمید  ' , 'staff3' => '  محمد'  ) ;
sort($name);
foreach ( $name as $key => $num ) {
echo $key . ' => ' . $num . ' <br /> ' ;
}
مشاهده می کنید که کلیدهای چاپی آنهایی که تعریف کردیم نیستند؟



مرتب کردن با حفظ کلیدها
برای مرتب کردن آرایه و نگهداشتن کلیدها می توانید از تابع asort() استفاده کنید به گونه ای که این تابع کلیدهای شما را دست نخورده باقی می گذارد.
کد:
$name = array ('staff1' => 'سعید' , 'staff2' => ' حمید  ' , 'staff3' => '  محمد '  ) ;
asort($name);
foreach ( $name as $key => $num ) {
echo $key . ' => ' . $num . ' <br /> ' ;
}


مرتب کردن براساس کلیدها
این حالت زمانی استفاده می شود که ما بخواهیم آرایه را براساس کلیدها و نه براساس مقادیر مرتب کنیم:
کد:
$name = array ('staff' => 'سعید' , 'manager' => ' حمید  ' , 'customer' => '  محمد'  ) ;
ksort($name);
foreach ( $name as $key => $num ) {
echo $key . ' => ' . $num . ' <br /> ' ;
}
نکته: برای نمایش یک جای یک آرایه در زمان هایی که می خواهید رفع اشکال کنید، می توانید مانند زیر از توابع اشاره شده استفاده کنید.
کد:
$name = array (  'staff1' => 'سعید' , 'staff2' => ' حمید  ' , 'staff3' => '  محمد' ) ;
print_r($name);
echo "<br />";
var_dump($name);


ساختار for و while
حلقه ها ساختاری در زبان برنامه نویسی هستند که به شما اجازه دسترسی به همه مقادیر را به طور مرتب می دهند. در قسمت قبلی ما از یک نوع این حلقه ها استفاده کردیم: foreach() یادتان هست!

دو نوع دیگر از حلقه ها که در اینجا معرفی می کنیم for و while هستند.

حلقه for
این نوع حلقه دارای سه پارامتر است که شامل نقطه شروع حلقه٬ شرط پایانی حلقه و شمارش اندیس یا کلید حلقه می شود.
کد:
for ( نقطه شروع   ; شرط پایانی   ;شمارش اندیس   )
{
// دستور
}
اجازه بدهید با یک مثال کارکرد for را بیشتر شرح دهیم. فرض کنید می خواهیم که از شماره ۱ تا ۱۰ را چاپ کنیم:
کد:
for ($i = 1 ; $i <= 10; $i++)
{
echo $i . ' <br /> ' ;
}
جمله ابتدایی پارامتر این حلقه 1 = i است که همان اندیس شمارشگر ماست٬ بعد از آن شرط پایانی حلقه است که می گوید تا زمانی که اندیس کوچک تر یا برابر ۱۰ شود. در آخر هم شمارشگر که هر بار که حلقه اجرا می شود یکی به آن اضافه می کند.

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

حلقه while
این حلقه هم مانند حلقه قبلی همان کار تکرار براساس شرط را انجام می دهد، ولی با یک تفاوت بزرگ و آن این است که در این نوع حلقه تعداد یا میزان تکرار را نمی دانیم. پس بر این اساس جایگاه استفاده از این نوع حلقه تغییر می کند. اجازه بدهید ابتدا مثال قبلی را توسط این حلقه بنویسیم تا تفاوت این دو مشخص تر شود.
کد:
$i =1;
while ( $i <= 10 ){
print $i . '  ' ;
$i++;
}
نکته: پی اچ پی نوع دیگری از حلقه دارد به نام do...while که شیوه کار آن درست مثل حلقه while است. با این تفاوت که در حلقه while در صورت درست نبودن شرط، دستورات داخل حلقه اجرا نمی شود اما در do...while حتی در صورت نادرستی شرط، باز هم اجرا می شود اما تنها برای یکبار.
کد:
$i = 1 ;
do {
print $i . '  ' ;
$i++;
} while ( $i <= 10 );   //  1 2 3 4 5 6 7 8 9 10
اگر در این مثال متغیر $i = 11 شود، یکبار این عدد چاپ می شود و بعد در شرط به خاطر برقرار نبودن شرط که باید کمتر از ۱۰ باشد٬ حلقه متوقف می شود.
کد:
$i = 11 ;
do {
print $i . '  ' ;
$i++;
} while ( $i <= 10 ); // 11
با به پایان رساندن این بخش ما مقدمات یادگیری اصول ابتدایی برای برنامه نویسی در زبان پی اچ پی را به پایان بردیم.

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

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

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

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۲۱-فروردین-۱۳۹۳, ۲۳:۲۶:۲۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, hamed_Arfaee, saeedsmk, omid_phoenix, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #6
درس پنجم- استفاده از فایل های متفاوت (فایل های خارجی)
با اطلاعاتی که تا به اینجا کسب کردیم٬ حال زمان آن رسیده تا با مفاهیم مهمتر و جالب تر پی اچ پی آشنا شویم.

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



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

فرض کنید شما سیستمی شامل ۱۰۰ برگه دارید که سیستم به صورت ایستا ساخته شده است٬ حال می خواهید یک قسمت در سربرگ صفحه ها را تغییر دهید. چه باید کرد؟ باید این کار را در تمام ۱۰۰ برگه انجام داد در صورتی که در سیستم پویا شما یک فایل برای سربرگ می سازید و آن را در بدنه فایل های دیگر وارد می کنید. حال برای تغییر تنها کافی است که آن فایل را تغییر دهید. البته در ادامه خودتان با انجام این کار، راز این نوع برنامه نویسی را کشف خواهید کرد.



نحوه قرار دادن فایل
کلا چهار تابع برای وارد کردن یک فایل در فایل دیگر وجو ددارند که شامل:
کد php:
include()
include_once()
require()
require_once() 
برای استفاده از این توابع و وارد کردن فایلی با آنها باید به طریق زیر عمل کرد:
کد:
include('نام فایل / نشانی فایل');
include(' files/header.html');
همانطور که مشاهده می کنید در داخل پرانتز ابتدا آدرس و بعد نام فایل آمده است. در اصل file پوشه ای است که شما فایل header.html را در آن قرار داده اید.

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

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

هر دوی این توابع نوع دیگری دارند که همراه با _once می آید. این توابع ضمانت می کنند که حتی در صورت دوباره فراخوانی فایل، آن فایل فقط یک بار وارد شود. once در زبان پارسی «یک بار» معنی می شود.

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

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

کد php:
include (‘ C:/php/includes/header.html ’); 
همان طور که می بینید نشانی از فهرست C: آغاز شده و به خود فایل header.html رسیده است.

آدرس دهی نسبی: در این نوع آدرس دهی، نشانی از خود فایلی که در آن هستید و تقاضای قرار دادن فایل را می کند آغاز می شود. مثلا:
کد php:
include(' ../includes/header.html '); 
فرض کنید فایل فراخوان کننده در داخل پوشه scripts با آدرس
کد:
C:/php/scripts/
قرار دارد و می خواهد فایل header.html را فراخوانی کند. در این صورت ابتدا باید از پوشه scripts بیرون رفته و بعد وارد include شود و باقی آدرس ها.

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



قرار دادن فایل خارجی
ابتدا به داخل پوشه php که قبلا ساخته اید بروید و پوشه جدیدی با نام including files بسازید. وارد آن شوید و فایلی با نام index.php و پوشه ای با نام includes بسازید. در داخل پوشه includes هم فایل هایی با نام های header.html و footer.htmlو style.css بسازید. حال ما پوشه ای به نام including files داریم که در داخل آن فایل index.php و پوشه includes قرار دارند.

سربرگ یا header: در داخل این فایل کدهای زیر را بنویسید:
کد:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" charset=utf-8" />
<title> فایل های خارجی</title>
<link rel="stylesheet" href="includes/style.css" type="text/css" media="screen" />
</head>
<body>
<div id="header">
<h1>  قسمت سربرگ</h1>
<div id="navigation">
<ul>
<li><a href="index.php"> خانه</a></li>
</ul>
</div> </div>
<div id="content"> <!-- قسمت محتوا -->
همان طور که مشاهده می کنید در این فایل قسمتی از کدهای اچ تی ام ال که شامل برچسب ها می شوند، قرار دارد. این بدین خاطر است که این فایل در داخل فایل اصلی فراخوانی می شود و در بالای باقی کدها قرار می گیرد. سربرگ را بسته و محتوای آن را ثبت کنید.

footer یا پایین برگ: فایل footer.html را باز کنید و کدهای زیر را در داخل آن قرار دهید:
کد:
</div><!-- پایان قسمت محتوا -->
<div id="footer">
<p>
    قسمت پایین برگه
</p>
</div>
</body>
</html>
در داخل این فایل برچسب های بستن html و body به همراه دیگر کدها قرار دارند. این فایل هم همانند فایل سربرگ در داخل فایل اصلی قرار داده می شود.

index.php: در این فایل ما باید دو فایل دیگر را فراخوانی کنیم و این کار را به صورت زیر انجام می دهیم:
کد:
<?php include ('includes/header.html'); ?>
<h1> قرار دادن فایل های دیگر در فایل اصلی</h1>
<p> در این قسمت محتوای تارنما قرار می گیرد. این قسمت همان فایل ایندکس است.
کد:
</p>
<?php include ('includes/footer.html'); ?>
همانطور که می بینید در ابتدا و پایان این صفحه دو برگه header و footer توسط تابع include وارد شده اند و هر آنچه در میان این دو تابع گذاشته شوند به صورت محتوا در داخل کادر اصلی نمایان می شوند.

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

شیوه نمایش محتوا از طریق Style: بخش آخر که شیوه نمایش محتوا را تعیین می کند، مطابق معمول در فایل style.css قرار می گیرد.
کد:
body {
     background:#fafafa;
     color:#555;
     font:12px Tahoma,Arial, Helvetica, "bitstream vera sans", sans-serif;
}
/* header */
#header {
     border:1px solid #bbb;
     height:130px;
     margin:10px auto;
     width:751px;
}
#header h1 {
     color:#888;
     font-size:24px;
     text-align:right;
}
/* navigation */
#navigation {
     border-top:1px solid #ccc;
     margin:auto;
     width:740px;
}
#navigation ul{
     overflow:hidden;
     list-style:none;
     margin:0px;
}
#navigation li {
     border-left:1px solid #bbb;
     float:right;
     width:130px;
     height:40px;
     list-style:none;
     margin:0 auto;
}
     #navigation a {
     color:#555;
     display:block;
     line-height:40px;
     text-align:center;
     font-size:18px;
     text-decoration:none;
}
#navigation a:hover {
     background:#e3e3e3;
     color:#333;
}
#navigation .active {
     background:#e3e3e3;
     color:#777;
}
/* content */
#content {
     border:1px solid #ccc;
     height:auto;
     min-height:400px;
     margin:10px auto;
     padding:0 0 20px;
     width:751px;
     text-align:right;
}

#content h1 {
     font-size:16px;
     padding:20px 0 0;
}
#content p {
     padding:20px 20px 0;
}
/* footer */
#footer {
     border:1px solid #ccc;
     height:100px;
     margin:0 auto;
     padding:10px 0;
     text-align:center;
     width:751px;
}
این شیوه گذاری به ما اجازه می دهد که محتوا را هر طور که دوست داریم نمایش دهیم.

حال یک نگاه به خروجی کار بیاندازیم:



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

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

سپس مرورگر محتوای زیرین این تابع را به نمایش می گذارد تا به تابع دیگر که باز هم include() است برسد.

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

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

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

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

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

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۲۸-فروردین-۱۳۹۳, ۱۱:۱۷:۵۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : hamed_Arfaee, babyy, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #7
RE: آموزشی مقدماتی پی اچ پی (PHP)
در درس های قبلی با ساخت فرم آشنا شدیم و دیدیم که چطور می شود داده های فرم را به برگه دیگری انتقال داد.

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



کار با فرم در یک برگه
منظور از این نوع عملکرد در ساخت فرم، داشتن «فرم» و «بررسی کننده» آن در یک برگه است. این عمل فوایدی در بر خواهد داشت که در ادامه با آنها آشنا می شویم. نکته مهم در داشتن هر دو فاکتور در یک برگه استفاده از یک تابع شرطی برای ارزیابی عملکرد و نحوه کار با آن است. مثلا این تابع انتخاب می کند که داده ها را نمایش دهد یا خود فرم را و این انتخاب را تحت چه شرایطی بگیرد. در زیر به ساختار این تابع شرطی توجه کنید:
کد php:
if ( /*  فرم ارسال شد */){
//  دستورات بررسی کننده فرم
} else {
//  نمایش فرم

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



شرط «فرم ارسال شد»
اگر یادتان باشد در درس های قبلی فرمی داشتیم که داده ها را به برگه دیگر انتقال می داد، اما چه زمانی این انتقال صورت می گیرد؟

در داخل هر فرم «دکمه ای» با نام ارسال یا Submit وجود دارد. «اگر فرم ارسال شد» یعنی اگر کاربر دکمه «ارسال» را بعد از پر کردن فرم فشار داد.

مثلا شرط مقابل را در نظر بگیرید:
کد:
if ( isset( $_POST['submit'] ) ) {
// دستورات کار با داده های فرم
} else {
// نمایش فرم }
تابع isset( $_POST['submit'] ) بررسی می کند که آیا دکمه ارسال یا Submit فشار داده شده است یا نه. از این تابع برای بررسی انتخاب یا عدم انتخاب دکمه ارسال فرم استفاده می شود.

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

برای اینکه از داشته هایمان تا به امروز هم استفاده کنیم، ساخت این فرم را در ادامه درس قبلی و در قالب اضافه کردن یک برگه که حامل فرم است انجام می دهیم. فرم ثبت نام در تارنما را حتما قبلا دیده اید؛ بیایید در اینجا یک فرم ثبت نام ساده بسازیم و به تارنمایی که در درس قبل داشتیم اضافه کنیم.

در درس قبل تارنمایی درست کردیم از چند بخش به شرح زیر:
نقل قول: سربرگ header.html
پایین برگ footer.html
صفحه اصلی index.php
فایل شیوه style.css
حال به این تارنما یک برگه دیگر به نام «ثبت نام» اضافه می کنیم و در آن برگه فرم ثبت نام را نمایش می دهیم. در کنار آن، بررسی کننده فرم ثبت نام را هم در همان برگه می گنجانیم تا پاسخ ها یا هشدارها در همان برگه ثبت نام در بالا یا پایین فرم، به نمایش درآیند.

پوشه جدیدی به نام ثبت نام = register بسازید و محتوای پوشه ای که در درس قبل با نام Including Files ساختیم را در آن رونویسی و بازنویسی کنید.

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

برگه ثبت نام
ابتدا کدهای زیر را در داخل این فایل رونویسی و بازنویسی کنید:
کد php:
<?php  $page_title 'ثبت نام';
include (
'includes/header.html'); ?>
<h1>  ثبت نام </h1>
<?php
  
if (isset($_POST['submit'])) {
$name $_POST['name'] ;
$username $_POST['username'];
$password $_POST['password'];
$email $_POST['email'];
if ( !empty(
$name) && !empty($username) && !empty($password) && !empty($email) ){
$respond 'ثبت نام شما با موفقیت انجام شد'; }
else { 
$respond ' لطفا تمام گزینه ها را پر کنید'; }
echo 
$respond ; }?>
<!-- کد برای ساخت فرم - form.html -->
<form action="register.php" method="post">
<fieldset> <legend align="right">لطفا فرم زیر را پر کنید</legend>
<label> نام کامل </label>
<input type="text" name="name" />
<label> شناسه </label> <input type="text" name="username" />
<label> رمز </label>  <input type="text" name="password" />
<label> رایانامه </label> <input type="text" name="email" />
</fieldset>
<input type="submit" name="submit" value="ارسال" class="submit"/>
</form>
<?php include ('includes/footer.html'); ?>
شرح کدهای این برگه
اکنون این برگه شامل هر دو بخش فرم و بررسی کننده آن است.

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

بعد از آن سربرگ را وارد کردیم که از تابع include استفاده شده است.

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

حال شرط دیگری را در داخل شرط قبلی می گذاریم که از پر بودن تمام متغیرها مطمئن شویم. اگر تمام متغیرها پر بود، این یعنی تمام موارد توسط کاربر نوشته شده است و پیام «ثبت نام شما با موفقیت انجام شد» را در متغیری دیگری بنام respond می گذاریم.

در غیر این صورت در آن متغیر پیام «لطفا تمام گزینه ها را پر کنید» گذاشته می شود تا به کاربر هشدار دهد که باید تمام موارد را بنویسد و بعد از آن متغیر را چاپ می کنیم که بسته به نسبت به پر بودن یا نبودن موارد، مقدارش متفاوت است.

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

در آخر هم فایل بالای برگه را وارد کردیم.

برگه سربرگ header
برای اینکه برگه جدید «ثبت نام» در تارنما قابل دیدن باشد، باید پیوند آن را به قسمت ناوبری تارنما «navigation bar» اضافه کنیم. پس تغییراتی در این فایل می دهیم.
کد:
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html"  charset= "utf-8" />
<title> <?php echo $page_title; ?> </title>
<link rel="stylesheet" href="includes/style.css" type="text/css" />
</head>
<body>
<div id="header">
<h1> درسنامه </h1>
<div id="navigation">
<ul>
<li><a href="index.php"> خانه</a></li>
<li><a href="register.php">  ثبت نام </a></li>
</ul>
</div>
</div>
<div id="content">
شرح برگه
این برگه درست مانند برگه درس قبلی است البته با چند تغییر.

ابتدا که در <title> <?php echo $page_title; ?> </title> از متغییری که در قسمت قبلی شرح دادیم استفاده کردیم تا تیتر در مرورگر با توجه به عمل برگه نمایش یابد.

نکته بعدی اضافه کردن پیوند به برگه «ثبت نام» است که به صورت زیر انجام می شود.
کد php:
<li><a href="register.php">  ثبت نام </a></li
این تکه کد یک دکمه دیگر به ناوبری تارنما اضافه می کند که مقصد این گزینه به برگه ثبت نام ختم می شود.

بعد از انجام این تغییرات اگر به تارنما نگاه کنید این دکمه را خواهید دید.



برگه شیوه
برچسب های لازم در این برگه قبلا در درس های دیگر آورده شده است. کافی است که آنها را در این برگه وارد کنید. برای این کار کدهای درس Including Files و کدهای درس Form را وارد این برگه کنید. البته تنها تغییر در انتخابگر ارسال است که در زیر می بینید.
کد:
.submit {text-align:center; border:1px solid #ddd; color:#039; width:20%; margin:auto 20px auto auto;}
از آنجایی که هدف این درس آموزش سی اس اس نیست و پیش فرض ما هم دانش این شیوه نویسی از طرف کارآموزان است، در اینجا بیشتر به این بخش نمی پردازیم. اما شما می توانید شیوه نمایش را به سلیقه خود تغییر دهید. تنها کافیست که مقادیر انتخابگرها را تغییر دهید.

نتیجه کار باید چیزی شبیه تصویر زیر گردد.

   



فرم (چسبنده) حفظ کننده مقدار Sticky Form
فرم چسبنده در همان فرم استاندارد در اچ تی ام ال است منتها با این تفاوت که در این فرم قابلیت نگهداری مقادیر نوشته شده در کادر اضافه می شود.

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

بهتر است این کار را با فرم ساخته شده در همین درس انجام دهیم. به کدهای زیر توجه کنید:
کد php:
<form action="register.php" method="post">
<
fieldset>
<
legend align="right">لطفا فرم زیر را پر کنید</legend>
<
labelنام کامل </label>
<
input type="text" name="name" value="<?php if (isset($_POST['name'])){ echo $_POST['name'];} ?>" />
<
labelشناسه </label>
<
input type="text" name="username" value="<?php if (isset($_POST['name'])){ echo $_POST['username'];} ?>" />
<
labelرمز </label>
<
input type="text" name="password" />
<
labelرایانامه </label>
<
input type="text" name="email" value="<?php if (isset($_POST['name'])){ echo $_POST['email'];} ?>" />
</
fieldset>
<
input type="submit" name="submit" value="ارسال" class="submit"/>
</
form
این قسمت فرم در برگه ثبت نام است. اگر توجه کنید می بینید که در داخل برچسب های input المان جدیدی با نام value وارد شده است. value در اصل مقدار پیش فرض است که در داخل کادر نمایان می شود. با کمک value و شرطی که داخل آن می گذاریم ما می توانیم در صورت نوشته شدن کلمه ای، آن را دوباره در داخل کادر نمایش دهیم تا کاربر نیاز به دوباره نویسی نداشته باشد.

نکته: معمولا این کار در مورد قسمت «رمز» به دلیل رعایت نکات امنیتی انجام نمی شود.

اجازه بدهید یک نگاه دقیق تری به یکی از این المان ها بی اندازیم.
کد php:
<input type="text" name="name" value="<?php if (isset($_POST['name'])){ echo $_POST['name'];} ?>" /> 
همانطور که مشاهده می کنید، در این کد که یک کادر متنی اضافه می کند، المان جدیدی اضافه شده است: value

در داخل این المان یک شرط نیز گذاشته شده است:
کد:
if ( isset($_POST['name']) ) {  echo $_POST['name']; }
که می گوید: اگر نوشته ای وارد این کادر شد، آن نوشته را در همین کادر چاپ کن. فکر می کنیم حال به قدرت و کاربری شرطی ها بیشتر اعتقاد پیدا کرده اید، نه؟

در اینجا این درس هم به پایان می رسد. در درس آینده به سراغ توابع و چگونگی ساخت آنها می رویم.

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۰۲-اردیبهشت-۱۳۹۳, ۰۹:۵۹:۵۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, lord_viper, babyy, hamed_Arfaee, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #8
RE: آموزشی مقدماتی پی اچ پی (PHP)
مفهومی که در این درس با آن آشنا می شویم تابع نام دارد.

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

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



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



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

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

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



طریقه نوشتن تابع
شیوه نوشتن تابع به صورت زیر است:
کد:
function نام تابع  () {
//  دستورات
}
ابتدا کلمه تابع (function) نوشته و بعد از آن نام تابع را می نویسید. دستورات تابع در داخل بلوک آن قرار می گیرند. به تابع زیر توجه کنید:
کد:
function add(){
$X = 3 + 2  ;
print   $x  ;  // 5
}
همان طور که می بینید تابعی با نام add() نوشته شده که در آن اعداد ۲ و ۳ با هم جمع و در متغیر $X ریخته می شوند، در آخر تابع هم متغییر $x چاپ می شود. تا اینجا تابعی نوشته شده است اما این تابع تا زمانی که فراخوانی نشود، به تنهایی کاری نمی کند.



فراخوانی تابع
همانطور که گفته شد تابع این توانایی را به ما می دهد که از دوباره نویسی کدها جلوگیری کنیم و یک بار با نوشتن، آن را در زمان های مورد نیاز استفاده کنیم. قسمت دوم تعریف تابع به استفاده از تابع در زمان های مورد نیاز به هر تعدادی که خواستیم اشاره می کند، این کار را فراخوانی تابع می گوییم. به مثالی که در بالا زدیم دوباره توجه کنید:
کد:
<?php
function add() {
$X = 3 + 2  ;
print   $x  ;  // 5
}
add(); //  فراخوانی تابع   =>   5
?>
فراخوانی تابع با عبارت add() که همان نام تابع است انجام گرفت و با فراخوانی آن کدهای تابع عمل کرده و نتیجه را چاپ می کند. نکته قابل توجه این است که شما می توانید به هر تعدادی که خواستید از این تابع استفاده کنید و یا به تعبیر دیگر آن را فراخوانی کنید و هیچ محدودیتی در آن نیست.

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



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

حال اگر بخواهیم تابع را طوری بنویسیم که مقادیر را به صورت پارامتر از ما بگیرد و بعد عملیات جمع را انجام دهد، ما می توانیم خروجی های متفاوت و با توجه به پارامترهای ارسالی بگیریم. مثلا به تابع زیر دقت کنید:
کد:
<?php
function add( $x , $y ) {
$z = $x + $y ;
print   $z  ;  // خروجی با توجه به پارامترهای ارسالی است
}
add(۵ , ۶); //  فراخوانی تابع با ارسال دو مقدار به صورت پارامتر  
?>
در زمان فراخوانی تابع هر مقداری که به صورت پارامتر به تابع ارسال کنیم، حاصل جمع آن دو عدد را خواهیم داشت. این به ما اجازه می دهد که تابعی مستقل از مقادیر و تنها متمرکز به عملیات خاصی داشته باشیم. به طور مثال می توانیم فراخوانی را به شکل های زیر انجام دهیم:
کد:
add(۱ , ۲); // ۳
add(۳ , ۹);  // ۱۲
add(۱۱ , ۶۸);  // ۷۹
نکته: در هنگام فراخوانی تابع حتی می توان پارامترها را به صورت متغیر به تابع ارسال کرد:
کد:
add(  $a , $b );
در این حالت این دو پارامتر می توانند هر عددی را ارسال کنند. خوبی این کار به این است که پارامترها می توانند نتیجه یک عمل دیگر باشند و یا اعدادی باشند که توسط کاربر در کادرهای فرم نوشته شده باشند.

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

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



برگه تابع function.php
در داخل پوشه function فایلی با نام function.php بسازید و کدهای زیر را در داخل آن بنویسید:
کد:
<?php
$page_title = 'تابع';
include ('includes/header.html'); ?>
<h1>  تاریخ تولد </h1>
<?php
/*  انگلیسی به فارسی  */
function convert($string) {
    $persian = array('۰', '۱', '۲', '۳', '۴', '۵', '۶', '۷', '۸', '۹');
    $num = range(0, 9);
    return str_replace($num, $persian,  $string);
}
function calendar() {
    echo '<select name="year">';
    for ($year = 1300; $year <= 1390; $year++) {
                echo "<option value="$year">" . convert($year) . "</option> "; }

    echo '</select>';
    $months = array (1 => 'فروردین', 'اردیبهشت', 'خرداد', 'تیر', 'مرداد', 'شهریور', 'مهر', 'آبان', 'آذر', 'دی', 'بهمن', 'اسفند');
    echo '<select name="month">';
    foreach ($months as $key => $value) {
                echo "<option value="$key">$value</option> "; }

    echo '</select>';
    echo '<select name="day">';
    for ($day = 1; $day <= 31; $day++) {
    echo "<option value="$day">" . convert($day) . "</option> "; }
    echo '</select>';
} // End of the function definition.
echo '<form action="function.php" method="post">';
// Call the function.
calendar();
echo '</form>';
?>
<?php include ('includes/footer.html'); ?>
اتفاقی که در اینجا می افتد این است که این برگه برای شما یک کادر تاریخ به همراه روز، ماه و سال می سازد. در درس قبلی ما یک فرم ثبت نام نوشتیم. خوب فرم ثبت نام نیاز به تاریخ زادروز هم دارد:

   

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

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

(function convert($string کاری که این تابع می کند این است که با گرفتن یک عبارت اعدادی که به زبان انگلیسی نوشته شده اند را به زبان فارسی تبدیل می کند. این تابع از سه قسمت تشکیل شده است:

کد php:
$persian = array('۰''۱''۲''۳''۴''۵''۶''۷''۸''۹'); 

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

کد php:
$num range(09); 

این دقیقا همان کار بالا را برای اعداد انگلیسی انجام می دهد اما با کمک تابع range() یادتان هست؟ در قسمت آرایه ها در مورد این تابع حرف زدیم.

کد php:
return str_replace($num$persian,  $string); 

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

بعد از این تابع به تابع دیگری می رسیم با نام calendar(). این تابع هیچ ورودی به عنوان پارامتر دریافت نمی کند و فقط خروجی برای ما چاپ می کند. برای ساختن یک کادر زادروز نیاز به سه قسمت است: روز، ماه و سال؛ که در این تابع به طور مجزا هر کدام تعریف شده اند.
کد php:
echo '<select name="year">';
    for (
$year 1300$year <= 1390$year++) {
            echo 
"<option value="$year">" convert($year) . "</option> ";    }

echo 
'</select>'
این قسمتی است که با استفاده از حلقه for، بخش سال را برای مان چاپ می کند. این سال ها از ۱۳۰۰ شروع و به ۱۳۹۰ ختم می شود. دقت کنید که این اعداد به زبان انگلیسی هستند پس در زمان چاپ آن از تابع تبدیل کننده convert که قبلا نوشتیم استفاده می کنیم تا کار تبدیل را انجام دهد.
کد php:
$months = array (=> 'فروردین''اردیبهشت''خرداد''تیر''مرداد''شهریور''مهر''آبان''آذر''دی''بهمن''اسفند');
echo 
'<select name="month">';
    foreach (
$months as $key => $value) {
                    echo 
"<option value="$key">$value</option> ";    }
echo 
'</select>'

در این قسمت به کمک تابع array() ماه های ایرانی را در آرایه ای قرار داده و با کمک حلقه آنها را چاپ می کنیم.
کد php:
echo '<select name="day">';
        for (
$day 1$day <= 31$day++) {
                           echo 
"<option value="$day">" convert($day) . "</option> "; }
echo 
'</select>'
این قسمت شبیه سال است که روز را برایمان چاپ می کند.

خب تا به اینجا تابع نوشته شده و آماده استفاده است، پس با یک فراخوانی از آن استفاده می کنیم:
کد:
echo '<form action="function.php" method="post">';
calendar();
echo '</form>';
نکته: برای ساخت این زاد روز انگار، ما از برچسب های اچ تی ام ال با نام select استفاده کردیم که یک کادر با قابلیت نگهداری مقادیر و به صورت کشویی به پایین درست می کند.



توابع با پارامتر پیش فرض
کار دیگری که در هنگام ساخت یک تابع می توانید انجام دهید، دادن یک مقدار پیش فرض به یک پارامتر یا متغیر است. با این کار در صورتی که هنگام فراخوانی، مقداری را به پارامتر نفرستید، از مقدار پیش فرض استفاده می کند و اگر مقداری را به عنوان پارامتر بفرستید، از مقدار شما استفاده می کند.
کد:
function say_hello( $name , $message = ' درود '){
echo "$message, $name" ; }
say_hello('پیمان'); //     درود ، پیمان
echo '<br />';
say_hello('پیمان' , 'سلام' ); // سلام ، پیمان
در زمان فراخوانی ابتدایی فقط یک پارامتر فرستاده می شود و پیغام همراه مقدار پیش فرض چاپ می شود. اما در فراخوانی دوم که با دو مقدار تابع را می خواند، در زمان چاپ از این دو مقدار استفاده می کند و مقدار پیش فرض را در نظر نمی گیرد.



بازگشت مقدار از تابع
در توابعی که تا به اینجا مثال زدیم، به جز تابع convert()، همه آنها مقدار خروجی را چاپ می کردند. حال شرایطی مانند تابع convert() را در نظر بگیرید که نیاز داریم تابع، عملیاتی انجام دهد و بعد خروجی را به ما باز گرداند تا در جای دیگری از آن استفاده کنیم. برای این کار از عبارت return استفاده می کنیم. به مثال زیر توجه کنید:
کد:
function add ( $x , $y ){
$z = $x + $y ;
return $z ;
}
$num = add( 2 , 3 ) ;
echo $num * 3 ;
اینجا ابتدا مقدارهایی فرستاده شده، بعد در تابع آنها جمع و در درون متغیر دیگری $z ریخته می شوند. در آخر هم تابع مقدار را توسط متغیر باز می گرداند.

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

نکته ۱: برای اینکه چند مقدار را به عنوان خروجی باز گردانیم، باید از آرایه برای بازگرداندن استفاده کنیم:
کد:
return array  ($x , $y );
نکته ۲: در ساخت توابع باید به این نکته توجه کرد که توابع برعکس متغیرها به بزرگی و کوچکی نام تابع اهمیت نمی دهند. مثلا همه این فراخوانی ها یک تابع را صدا می زنند:
کد:
add( $x , $y);
ADD( $x , $y);
Add( $x , $y);
خب این هم از توابع؛ در درس های بعدی به سراغ پایگاه داده ها MySQL می رویم تا خود را به این فن هم مجهز کنیم. بعد از یادگیری پایگاه داده ها موضوع از این هم جالب تر خواهد شد.

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
(آخرین ویرایش در این ارسال: ۲۱-اردیبهشت-۱۳۹۳, ۱۶:۰۳:۱۴، توسط babyy.)
۲۱-اردیبهشت-۱۳۹۳, ۰۱:۱۳:۱۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper, hamed_Arfaee, babyy, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #9
درس هشتم- پایگاه داده ها (مقدماتی)
در ساخت تارنمای پویا، یکی از پایه های این کار داشتن پایگاه داده ها است.

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

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

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



پایگاه داده ها MySQL
این پایگاه داده ها بر طبق تارنمای MySQL، مشهورترین پایگاه داده های منبع باز (Open Source) است که عموما توسط پی اچ پی استفاده می شود. شیوه نگهداری داده ها در MySQL به این طریق است که داده ها در آبجکت های (object) به نام جدول انبار می شوند. جدول یک مجموعه ای از داده های مرتبط با هم را در سطرها و ستون ها نگهداری می کند.

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

   
این یک نمونه از جدول همراه دو سطر و چهار ستون است. به سطر ابتدایی توجه کنید، نام هر ستون در بالای آن آورده شده است. در هر سطر داده های مربوط به یک کاربر نوشته شده است که به آن اصطلاحا رکورد (Record) گفته می شود و به هر خانه (Cell) از جدول، رشته (Field) گفته می شود که تک تک داده ها را در بر می گیرد.

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

نام گذاری پایگاه داده ها، جدول، سطر و ستون ها باید طبق قوانین از قبل نوشته شده صورت گیرد. در زمان نام گذاری متغیرها هم یک چنین قوانینی وجود داشت، به خاطر می آورید؟

باید تنها از حروف، اعداد و علامت خط زیرین (_) استفاده شود.
نباید از نام های از قبل تعریف شده در پایگاه داده ها استفاده کرد.
بزرگی یا کوچکی حروف برای نامگذاری مورد توجه است و تفاوت ایجاد می کند.
هر نام نمی تواند بیشتر از ۶۴ کاراکتر باشد.
باید در محیط و حوزه خود منحصر به فرد باشد؛ دو جدول با یک نام نمی توانند ساخته شوند.
نکته: در هنگام ساختن جدول شما باید تعیین کنید که چه نوع داده ای در هر ستون قرار می گیرد؛ این کار با تعیین نوع داده ها در زمان معرفی ستون ها انجام می شود که این نوع می تواند: متن، عدد و یا زمان باشد. البته هر کدام هم از اندازه ها و متغیرهای بسیاری تشکیل می شوند.

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

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

- CHAR: این نوعی است به طور ثابت که رشته ای را از ۰ تا ۲۵۵ کاراکتر در خود نگهداری می کند.

- VARCHAR: درست مانند CHAR با این تفاوت که از ۰ تا ۶۵۵۳۵ کاراکتر را نگهداری می کند. فرق دیگر بین CHAR و VARCHAR در ثابت و متغیر بودن طول نوع است. VARCHAR دارای طول متغیر است و اندازه آن با توجه به طول داده تغیر می کند.

- TEXT: برای نگهداری متن از آن استفاده می شود. البته خود TEXT براساس طول نگهداری به انواع TINYTEXT و TEXT و MEDIUMTEXT و LONGTEXT تقسیم می شود.

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

- DATE: برای حفظ تاریخ در پایگاه کاربرد دارد.

به منظور آشنایی هر چه بیشتر با انواع داده ها می توانید به جدول زیر مراجعه کنید.
   
اتصال به پایگاه داده ها
برای اتصال به پایگاه و کار با آن دو روش موجود است:

روش اول: اتصال با کاربر پایگاه توسط Command Prompt یا خط فرمان که مسیر دسترسی به آن در سیستم عامل ویندوز به شرح زیر است:
نقل قول: Start > Programs > Accessories > Command Prompt

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

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

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

روش دوم: راه ساده تر برای دسترسی، از طریق نوشتن نشانی در مرورگر و دسترسی به پایگاه توسط نرم افزار phpMyAdmin است که با نصب پایگاه یا WampServer نصب می شود. به طور مثال در حالت نصب WampServer در رایانه خود با آدرس زیر به پایگاه دسترسی پیدا می کنید:
نقل قول: http://localhost/phpmyadmin/
چیزی که مشاهده می کنید، یک صفحه کار با پایگاه به صورت GUI(Graphical User Interface) یا رابط کاربر گرافیکی است. این صفحه کار با پایگاه را بسیار ساده می کند که در ابتدای کار انتخاب خوبی است. شما با چیزی مانند تصویری زیر مواجهه می شوید:

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

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



ساخت پایگاه درphpMyAdmin:
۱. برای ساخت پایگاه در این فضا کافی است که بر روی دکمه Databases واقع در بالای صفحه در نوار ابزار سمت چپ کلیک کنید. در صفحه ای که باز می شود به سراغ قسمت Create Database رفته و نام پایگاه خود را وارد کنید.

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

   

با فشردن دکمه Create، پایگاه داده ها ساخته شده و نشانه آن در قسمت چپ اضافه می شود.


   

۲. مرحله بعدی ساخت یک شناسه کاربری برای اتصال به پایگاه داده های ساخته شده است. البته شما می توانید از کاربر root استفاده کنید، اما بهتر آن است که نشانه کاربری برای خود بسازید. برای این کار بر روی نشان پایگاه ساخته شده در ستون چپ (اینجا darsnameh) کلیک کنید و از نوار ابزار بالای صفحه گزینه Privileges را انتخاب کنید.

   
روی دکمه Add user کلیک کنید تا کادر اضافه کردن کاربر نمایان شود.
   
در این کادر سه مورد وجود دارد که باید نوشته شوند:

نام کاربری
محل اتصال کاربر
رمز: دو بار

   

بعد از پر کردن موارد خواسته شده، دکمه Add User در قسمت پایین کادر را بزنید.
   

حال پایگاه داده ها به همراه کاربر ساخته شده و آماده اتصال است.

۳. در این قسمت باید جدول مورد نظر خود را بسازید. جدولی که در بخش توضیح جدول ساختیم یادتان هست؟ حال می خواهیم همان را در پایگاه داده ها پیاده کنیم.

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


   
نام جدول را users و ۵ ستون انتخاب می کنیم و دکمه Go را فشار می دهیم.


   
   
با توجه به این جدول، ستون های داخل کادر را پر می کنیم. مواردی که باید نوشته شوند شامل Name و Type و Length و Attributes و Index هستند. البته Attributes و Index را فقط برای ستون ابتدایی یعنی ID می نویسیم.

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

- A_I یا Auto Increment: برای شمارنده ها مانند ستون ID که به صورت منحصر به فرد تعیین می شوند، استفاده می شود. این کار باعث ایجاد شماره از ۱ تا... برای هر رکورد به صورت یگانه می شود.
   
در درس بعدی با دیگر انتخاب ها بیشتر آشنا می شویم. بعد از انتخاب کلید Save، جدول ما ساخته می شود و همچنین نماد آن در ستون چپ به صورت نام جدول ظاهر می گردد. با انتخاب نام جدول می توانید آن را مشاهده کنید که البته هنوز خالی است.

   

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

اما قبل از این کار بهتر است که طریقه دیگر که همان کار با CMD است را یاد بگیریم، چرا که دانستن آن برایمان ضروری و در نهایت بهتر است.

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

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
(آخرین ویرایش در این ارسال: ۲۹-اردیبهشت-۱۳۹۳, ۱۰:۳۴:۴۳، توسط Ghoghnus.)
۲۹-اردیبهشت-۱۳۹۳, ۱۰:۰۸:۵۴
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : babyy, lord_viper, hamed_Arfaee, behzady
Ghoghnus آفلاین
مدیر بخش
*****

ارسال‌ها: 1,497
موضوع‌ها: 270
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1652
( 3938 تشکر در 1453 ارسال )
ارسال: #10
RE: آموزشی مقدماتی پی اچ پی (PHP)
در درس قبل با پایگاه داده ها و مفاهیم مهم در این زمینه آشنایی پیدا کردیم. یاد گرفتیم که چطور می شود پایگاهی برای انبار کردن داده ها با استفاده از phpMyAdmin ساخت. با توجه به آسانی کار در محیط این برنامه که به صورت «رابط کاربر گرافیکی» است، ابتدا از این ابزار برای بیان چگونگی ساخت پایگاه و متعلقاتش بهره بردیم، اما نکته در این است که در زمان نوشتن برنامه ای به زبان پی اچ پی و اتصال به پایگاه از داخل برنامه، باید از کد‌های زبان SQL استفاده کنیم.

پس این یک ضرورت است که با این زبان هم آشنا باشیم؛ البته کار بسیار راحتی است و دستورات بسیار محدود و ساده. در این درس با توجه به آشنایی مقدماتی درس قبلی با برنامه MySQL که از زبان SQL بهره می‌برد، تلاش می کنیم که زبان SQL را شرح دهیم.



MySQL و SQL
قبل از ورود به بحث لازم دیدیم یک بار دیگر در مورد این دو مفهوم توضیح کوتاهی بدهیم، باشد که تعریف واضع تر باعث فهم بهتر هر کدام از این دو گردد.

SQL یا Structured Query Language
این یک زبان برنامه نویسی ویژه ای است که به منظور مدیریت داده ها در سیستم های مدیریتی پایگاه داده های ارتباطی (RDBSM) نوشته شده است. سیستم های مدیریتی پایگاه داده های ارتباطی، به سیستم هایی گفته می شود که داده ها در داخل پایگاه براساس ارتباط بین شان انبار می شوند و در زمان خواندن از آنها، می توان با توجه به ارتباط داخلی، داده ها را فراخوانی کرد.

MySQL
این یک نرم افزار است که از زبان SQL استفاده می کند و ما معمولا آن را بر روی رایانه خود نصب می کنیم. می توان گفت که MySQL موتوری است که دستورات SQL را اجرا می کند. البته نرم‌افزارهای دیگری هم هستند که از زبان SQL برای ساخت و کار پایگاه داده ها استفاده می کنند. به طور مثال شرکت مایکروسافت نرم افزاری بنام Microsoft SQL Server دارد و یا شرکت Oracle نرم افزاری با همین نام دارد که همه آنها از زبان SQL در نرم افزار خود استفاده می کنند.

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



دسترسی به MySQL Server
برای دسترسی به سرویس دهنده پایگاه داده ها و ساخت جدول و... ما نیاز به یک سطح دسترسی کاربری داریم. در درس قبل انجام این کار را توسط محیط phpMyAdmin دیدیم، اما در این درس این کار را توسط CMD انجام می دهیم.

کاربر MySQL
این کاربر هنگام نصب نرم‌افزار همراه بقیه موارد نصب می شود و برای استفاده از آن باید از محیط خط دستور یا همان Command Prompt Interface استفاده کرد. در شروع باید از طریق مسیر زیر (در سیستم عامل ویندوز) به CMD مراجعه کنید:
کد:
Start\ All Programs\Accessories\Command Prompt
راه دیگر هم دسترسی مستقیم به CMD از طریق گرفتن دکمه «پنجره» در صفحه کلید و انتخاب حرف R است. بعد در داخل کادری که باز می‌شود حروف cmd را بنویسید و دکمه Enter را بزنید.

هر دوی این ها به پنجره سیاه رنگ CMD در ویندوز ختم می‌شوند. در لینوکس نام این ابزار را Terminal می نامند که به خاطر گوناگونی نمای صفحه در نسخه های مختلف لینوکس هر کدام راه دسترسی خود را دارد.

نکته: برای کسانی که از Wamp Server استفاده می کنند، یک راه بسیار ساده وجود دارد. باید بر روی نشان برنامه در قسمت راست پایین صفحه کلیک کنید، بعد نشانگر را بر روی MySQL برده تا گزینه MySQL Console را مشاهده کنید. با این انتخاب مستقیما به پایگاه وصل می شوید.

حال فرض می کنیم که می خواهیم از داخل CMD وارد پایگاه شویم. پایگاه شما در داخل پوشه ای است که Wamp Server در آن نصب شده، پس باید به داخل آن پوشه رفت و دنبال پوشه ای به نام bin گشت. ما این برنامه را در دایرکتوری I نصب کرده ایم، پس آدرس ما به صورت زیر است:
کد:
I:\wamp\bin\mysql\mysql5.5.24\bin
این مسیر پوشه bin در رایانه ماست که آدرس ابتدایی به محل نصب بستگی دارد. به طور مثال اگر شما Wamp را در دایرکتوری C نصب کنید آدرس می شود:
کد:
C:\wamp\bin\mysql\mysql5.5.24\bin
این مسیر را باید از داخل cmd رفت. فرض کنید اکنون cmd ما را در داخل دایرکتوری C نشان می دهد.

لطفا به طرز انجام این کار دقت کنید:
نقل قول: C:\> I: // داخل دایرکتوری شو
I:\> // حال اینجا هستیم
I:\> cd wamp\bin\mysql\mysql5.5.24\bin // ورود به آدرس جدید
I:\wamp\bin\mysql\mysql5.5.24\bin> // bin داخل پوشه
I:\wamp\bin\mysql\mysql5.5.24\bin> mysql -u root
این دستور ما را به پایگاه داده ها با شناسه کاربری root بدون هیچ روزی وصل می کند. اما این کار به دلایل امنیتی درست نیست و بهتر آن است که برای شناسه root یک رمز برگزینیم:
کد:
I:\wamp\bin\mysql\mysql5.5.24\bin> mysqladmin -u root password "darsnameh"
حال کاربر ریشه پایگاه رمز "darsnameh" را داراست. برای ورود باید به شیوه زیر عمل کرد:

برای جلوگیری از تکرار، از نوشتن آدرس دیگر خودداری می کنیم
کد:
>mysql -u root -p
Enter Password: darsnameh
mysql>
این علامت ورود در پایگاه است. در حال حاضر به پایگاه داده ها وصل شدیم. البته برای ساختن کاربرهای جدید هم می توانید به طریق زیر عمل کنید:
کد:
>CREATE USER 'test' IDENTIFIED BY 'your_password';
نکته: در صورت تغییر رمز کاربر ریشه به هنگام باز کردن صفحه phpMyAdmin، به یک خطا می خورید. برای رفع این مشکل باید رمز را در داخل فایل تنظیمات وارد کنید. ابتدا به آدرس زیر رفته:
کد:
wamp\apps\phpmyadmin
و فایل config.inc.php را توسط ویرایشگر باز نموده و تغییرات زیر را انجام دهید:
کد:
$cfg['Servers'][$i]['verbose'] = 'localhost';
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['socket'] = '';
$cfg['Servers'][$i]['connect_type'] = 'tcp';
$cfg['Servers'][$i]['extension'] = 'mysqli';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'dars';
$cfg['Servers'][$i]['AllowNoPassword'] = true;
لطفا تغییرات را بر اساس نام کاربری و رمز آن وارد کنید. موارد مهمی که اغلب نیاز به تغییر دارند به شرح زیر هستند:
کد:
$cfg['Servers'][$i]['port'] = '3306';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = 'dars';
حال با دوباره راه اندازی برنامه همه چیز درست می شود. اگر مطابق چیز گفته شده عمل کنید، به مشکل دیگری بر نخواهید خورد. در صورت داشتن خطای دیگر می توانید با جستجوی متن خطا در گوگل دلیل آن را هم پیدا کنید.

خب حال ما به سرویس دهنده پایگاه دسترسی داریم. برای دیدن باقی پایگاه ها به شکل زیر عمل می کنیم:
کد:
> show datanases;
این کار لیستی از تمام پایگا‌ه داده‌ها را برای مان نمایش می دهد.

اجازه بدهید با پاک کردن پایگا‌ه هایی که دیروز ساختیم شروع کنیم:
کد:
> DROP DATABASE darsnameh;
حال فرض کنید می خواهیم پایگاه داد‌ه جدیدی ساخته و در آن جدول درس قبلی را هم اضافه کنیم:
کد:
> CREATE DATABASE darsnameh ;
قبل از ساخت جدول ابتدا باید مشخص کنیم که در کدام پایگاه می خواهیم جدول اضافه کنیم:
کد:
> USE darsnameh ;
Database changed //  پیام تغییر پایگاه
خب تا به اینجا پایگا‌هی با نام darsnameh ساخته شد و به آن متصل شدیم، مرحله بعدی ساخت جدول و ستون هایش است. جدول درس قبل یادتان هست؟
   
ساختار درست کردن جدول به شکل زیر است:
کد:
CREATE  TABLE   table_name
(
column_name1    data_type,
column_name2    data_type,
column_name3    data_type,
....
);
نام جدول که users است و دارای ۵ ستون. ابتدا باید جدول و ستون هایش را ساخت، وارد کردن داده ها باید در مرحله دیگری صورت بپذیرد:
کد:
> CREATE TABLE  users
(
ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
FirstName VARCHAR(20) NOT NULL,
LastName VARCHAR(40) NOT NULL,
Email VARCHAR(50),
PRIMARY KEY (ID)
) ;
نقل قول: INT: نوع صحیح، نوع داده هایی که در این ستون قرار می گیرند.
UNSIGNED: این داده ها بدون علامت و همه مثبت هستند.
NOT NULL: این خانه نمی تواند خالی بماند و حتما باید مقدار داشته باشد.
AUTO_INCREMENT: مقدار خانه ها را به طور اتوماتیک از 1 به بعد وارد می کند.
VARCHAR(20): نوع رشته ای، نوع داده هایی که در این ستون باید وارد شوند.
PRIMARY KEY (ID): انتخاب ستون ID به عنوان ستون کلیدی.
PRIMARRY KEY: وقتی به ستونی این المان را اضافه می کنید، آن ستون تبدیل به ستون منحصر به فرد می شود و رکورد‌هایی که می خواهید وارد جدول کنید را منحصر به فرد می‌کند.
هر جدول باید یک کلید اصلی داشته باشد و هر جدول تنها می‌تواند یک کلید اصلی داشته باشد. ستون کلید اصلی هرگز نمی‌تواند مقدار NULL داشته باشد. NULL مقداری است به معنی هیچ اما با ستون خالی متفاوت است. مقداری که وارد ستون کلید اصلی می شود باید منحصر به فرد باشد.
اینها ویژگی‌های ستون کلید اصلی دار هستند که باعث ایجاد قابلیت هایی در مورد نوشتن، خواندن و جستجو در جدول می شوند. در ادامه دوره با استفاده از این ویژگی، مفهوم آن بیشتر روشن خواهد شد.

در بخش قبل ما یک پایگاه داده ها درست کردیم و در درون آن هم جدولی ساختیم. حال برای دیدن جدول کافی است که دستور زیر را وارد کنید:
کد:
> SHOW TABLES;
mysql> SHOW TABLES;
+---------------------+
| Tables_in_darsnameh |
+---------------------+
| users                        |
+---------------------+
1 row in set (0.00 sec)
خروجی دستور به صورتی که مشاهده می کنید می شود. برای دیدن جزییات جدول دستور زیر را بزنید:
کد:
EXPLAIN users;
و یا
DESCRIBE users;
هر دوی این دستورات مشخصات جدول را برای شما نشان می دهند.

نکته: فراموش نکنید که قبل از هر کاری با پایگاه داده ها، باید ابتدا آن را انتخاب کنید:
کد:
> USE darsnameh;
خب تا به اینجا ما دو شیوه ساخت پایگاه داده ها و نحوه کار با آن را یاد گرفتیم. مرحله بعدی انبار کردن یا نوشتن داده ها در پایگاه است. برای نوشتن داده ای در پایگاه می توان به دو صورت عمل کرد.

۱- استفاده از محیط و دستورات SQL: با این شیوه می توان به طور مستقیم داده ها را وارد جدول پایگاه نمود.

۲- استفاده از پی اچ پی برای ثبت داده ها در پایگاه: در داخل کد‌های پی اچ پی از دستورات SQL استفاده کرده و داده ها را در آن می گذاریم.

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

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

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

[تصویر:  a.jpg]

باور کنیم
همانگونه که در غیبت مقصریم در ظهور موثریم!
نیستیم؟

زیر شمشیر غمش رقص کنان باید رفت #  کان که شد کُشته ی او نیک سرانجام افتاد



 چشمک - بهینه شده برای ورژن جدید دانلود پروژه برنامه نويسي
۱۶-خرداد-۱۳۹۳, ۱۰:۰۰:۲۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : lord_viper, hamed_Arfaee, babyy, behzady


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  آموزشی مقدماتی پی اچ پی (PHP) Ghoghnus 12 7,277 ۰۶-اردیبهشت-۱۳۹۵, ۱۴:۳۲:۵۱
آخرین ارسال: Ghoghnus
  [آموزشی] مجموعه آموزشی php bghad1 2 3,512 ۲۷-اسفند-۱۳۹۳, ۱۴:۵۱:۱۷
آخرین ارسال: bghad1

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 2 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS