بایگانی برچسب: s

آموزش PHP – جلسه دهم: پروژه ارسال ایمیل

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

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

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

پس اولین کاری که برای ایجاد پروژه ارسال ایمیل انجام می‌دهیم ترسیم یک الگوریتم است. پیش از این‌که بخواهید الگوریتم را ایجاد کنید باید در نظر داشته باشید که اسکریپتی که قصد ایجادش را دارید قرار است چه کاری را انجام دهد؟ خب در اینجا ما می‌خواهیم سیستم ارسال ایمیل تحت وب ایجاد کنیم پس مهم‌ترین بخش‌هایی که پروژه ما باید داشته باشد به شرح زیر است:

  • یک فیلد برای وارد کردن ایمیل مقصد (آدرسی که ایمیل به آن ارسال خواهد شد)
  • یک فیلد برای وارد کردن نام ارسال کننده
  • یک فیلد برای وارد کردن موضوع ایمیل
  • یک فیلد برای نوشتن متن ایمیل
  • یک دکمه برای ارسال ایمیل
  • یک دکمه برای ریست کردن فرم
  • یک صفحه پی‌اچ‌پی که عملیات پردازش و ارسال ایمیل را انجام دهد

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

  1. کاربر اطلاعات خواسته شده را در فرم وارد می‌کند
  2. اطلاعات به صفحه بررسی و ارسال ایمیل ارسال می شوند
  3. در صفحه بررسی و ارسال ایمیل چک می‌کنیم که آیا کاربر تمامی فیلد‌ها را پر کرده یا خیر. اگر فیلدها به درستی پر شده بود به مرحله ۴ می‌رویم و اگر پر نشده بود کاربر را به مرحله ۱ انتقال می‌دهیم
  4. حال براساس اطلاعاتی که کاربر وارد کرده ایمیل موردنظر را با کمک PHP ارسال می کنیم.
  5. بررسی می‌کنیم که آیا ایمیل با موفقیت ارسال شده یا خیر. اگر با موفقیت ارسال شده بود، باید پیامی مبنی بر ارسال موفق ایمیل به کاربر نمایش داده شود در غیر این صورت پیام خطای مناسب به کاربر نمایش داده شود

همان‌طور که می‌بینید در ۵ مرحله به ساده‌ترین حالت ممکن الگوریتم پروژه ارسال ایمیل را ایجاد کردیم. البته می‌توان از الگوریتم‌های دیگری هم استفاده کرد و شاید الگوریتم موردنظر شما بسیار بهتر از الگوریتمی باشد که در بالا نوشته‌ام. اما برای یکپارچه شدن آموزش براساس همین الگوریتم پروژه را ایجاد می‌کنیم.

ابتدا نرم‌افزار زمپ را اجرا کرده و در پوشه htdocs یک پوشه جدید به نام email می‌سازیم. سپس در این پوشه دو فایل به نام‌های index.php و send.php ایجاد می‌کنیم. فایل اول قرار است فرم ما را نشان دهد و فایل دوم پردازشگر و ارسال کننده ایمیل است.

در فایل index.php مطابق با نیاز خود که در بالا به آن اشاره کردم یک فرم با فیلد‌های موردنظر ایجاد می‌کنیم. برای زیباتر شدن نتیجه کار می‌توانید از دستورات اچ‌تی‌ام‌ال بهره ببرید ولی ما به منظور ساده‌تر بودن هر چه بیشتر کدها از حداقل کد ممکن استفاده کرده‌ایم.

<form method=”post” action=”send.php”>
email to : <input type=”text” name=”email”><br>
your name : <input type=”text” name”uname”><br=
subject : <input type=”text” name=”subject”><br>
message : <textarea name=”message” rows=”3″ cols=”4″></textarea>
<input type=”reset” value=”Reset”>
<input type=”submit” value=”Send Email”>
</form>

در فرم بالا ما به تعداد مورد نیاز فیلد ایجاد کرده‌ایم. فیلد ایمیل، نام کاربر، موضوع و متن پیام و نیز دو دکمه ریست و ثبت فرم.

حالا در فایل send.php باید کد زیر را قرا دهید:

<?php
$mailto = trim($_POST[’email’]);
$username = trim($_POST[‘uname’]);
$subject = trim($_POST[‘subject’]);
$message = trim($_POST]’message’]);

//merge name and message
$final_message = $username . ” : ” . $message;

if ($mailto != “” && $username !=”” && $subject !=”” && $message != “”)
{
//we know user filled the form
$email_send = mail ($mailto, $from_mail, $final_message);
//check for send email
if ($email_send){
echo “Your Email Has Been Send Successfully!”;
}else{
echo “sorry, there is problem in sending email, try again!”;
}
}else{
echo ‘You Must Fill All Fields! Go <a href=”index.php”>Back</a>’;
}
?>

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

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

پس در نتیجه مقدار متغیر email_send یا true می‌شود یا false. سپس با یک دستور if مجددا بررسی کرده‌ایم که اگر ارسال ایمیل موفق بوده یعنی email_send = true بوده باشد، پیام موفق بودن ارسال ایمیل و در غیر این صورت، (یعنی email_send = false بوده) پیام خطای ارسال نشدن ایمیل به کاربر نمایش می‌یابد.

نکته: ما نام کاربر و متن پیام او را به هم ترکیب کرده‌ایم و در یک متغیر دیگر به نام final_message قرار داده‌ایم تا کسی که ایمیل را دریافت می‌کند بداند این ایمیل از طرف چه شخصی برایش ارسال شده است. 

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

<?php
mail(’email@domain.com’, ‘subject’, ’email message’);
?>

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

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

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

همچنین می‌توانید از آنچه که در این جلسه یاد گرفتید به منظور ایجاد فرم تماس با ما برای سایت خود استفاده کنید.

در جلسات آینده و در پروژه‌های پیچیده‌تر روش ارسال ایمیل با ضمیمه و نیز ایمیل‌های HTML و UTF-8 را خواهید آموخت. فعلا سعی کنید مباحثی که تا اینجا آموزش داده شده را به صورت روان و کامل یاد بگیرید چراکه رفته رفته با بکار گرفتن پروژه‌های سنگین‌تر کار شما کمی بیشتر می‌شود. 

منبع: زومیت

آموزش PHP – جلسه نهم: متغیرهای پیش فرض و فرم ها

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

متغیرهای پیش‌فرض

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

متغیر SERVER_$

این متغیر در واقع یک آرایه از داده‌ها است که در آن اطلاعاتی از قبیل هدرها (Headers)، مسیرها (Paths) و … وجود دارد. همان‌طور که در بخش آموزش آرایه‌ها توضیح دادیم برای دسترسی به هر عضو یک آرایه باید نام آن عضو را در مقابل نام آرایه به‌کار ببرید. در مورد آرایه SERVER_$ باید از کدی شبیه به کد زیر استفاده کنید:

<?php
echo $_SERVER[‘SCRIPT_NAME’];
?>

کد بالا را در یک فایل به نام phpvars.php نوشته و در پوشه‌ای به نام new در پوشه htdocs سرور زمپ خود ذخیره کنید. بدین صورت فرضا اگر Xampp را در درایو C خود نصب کرده باشید، مسیر فایل باید به صورت زیر باشد:

C:/Xampp/htdocs/new/phpvars.php

سپس سرور را اجرا کنید. حالا باید این فایل از طریق آدرس http://127.0.0.1/new/phpvars.php در دسترس باشد. کد بالا باعث می‌شود مسیر جاری فایل در مرورگر نمایش یابد. برای ما نتیجه اجرای کد بالا به صورت زیر بود:

d34c52a0-453d-4b2f-9fb3-9290a5241836همان‌طور که می‌بینید مسیر فایل فراخوانی شده در سرور نمایش یافته است. حال بیایید ببینیم این متغیر چه اطلاعات دیگری را می‌تواند نشان دهد. به کد زیر دقت کنید:

<?php
echo $_SERVER[‘HTTP_HOST’];
?>

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

ec1ab67a-64c8-4b4f-923e-49f64d394169شاید بپرسید این موارد به چه کار می‌آیند؟ یک مثال خوب می‌زنم. فرض کنید تصاویر زیادی روی سرور شما وجود دارند. حالا به هر دلیلی تصمیم می‌گیرید مسیر تصاویر را در سرور تغییر دهید یا به صورت کلی دامین خود را می‌خواهید تغییر دهید. در این صورت باید هرجا که از این تصاویر استفاده کرده‌اید، مسیردهی را برای تک تک فایل‌ها تغییر دهید که این عملیات طبیعتا بسیار وقت‌ گیر و کم‌بازده است. در عوض می‌توانید تنها با چند کد ساده مسیر تمامی عکس‌های سرور خود را به مسیر جدید تغییر دهید. به مثال زیر توجه کنید. برای این کار کافی است یک فایل با نام دلخواه مثلا config.php ایجاد کنید و کد زیر را در آن قرار دهید.

<?php

$host = $_SERVER[‘HTTP_HOST’];
$image_path = $host . ‘/images/’;

?>

دقت کنید که به عنوان مثال تصاویر را به پوشه‌ای به نام images منتقل کرده‌ایم. ابتدا هدر هاست را همان‌طور که در بالا اشاره کردیم در متغیر جدیدی به نام host قرار داده‌ایم. سپس مسیر جدیدی را با ترکیب متغیر host و مسیر دلخواه جدید که در اینجا پوشه images است، در متغیر دیگری به نام image_path قرار داده‌ایم. به عنوان مثال در سرور محلی آنچه در متغیر image_path ذخیره می‌شود چیزی شبیه به مسیر زیر خواهد بود:

۱۲۷٫۰٫۰٫۱/images/

نکته مهم: اگر دقت کرده باشید بین متغیر host$ و مسیر ‘/images/’ از یک نقطه استفاده کرده‌ایم. در پی‌اچ‌پی برای اتصال رشته‌های متنی به یکدیگر و نیز اتصال متغیرها به یکدیگر و همچنین اتصال متغیر‌ها به رشته‌های متنی می‌توانید از نقطه استفاده کنید.

حالا در فایل‌های پروژه خود هر کجا که از عکس‌های جدید خود بخواهیم استفاده کنیم کافی است ابتدا فایل Config.php که در بالا ایجاد کردیم را به صفحه include یا require اضافه کنیم و سپس از متغیر image_path در هرجا که خواستیم استفاده کنیم. به مثال زیر توجه کنید:

<?php

require (“config.php”);
echo ‘<img src=’ . $image_path . ‘header.jpg>’;

?>

در کد بالا در تگ img که در html به منظور نمایش تصاویر از آن استفاده می‌کنیم، به جای آدرس ثابت عکس از آدرس جدیدی که ایجاد کرده‌ایم، بهره بردیم. به نوع استفاده از کاراکتر نقطه در کد بالا نیز توجه کنید چراکه در پی‌اچ‌پی بارها و بارها شرایطی پیش خواهد آمد که نیاز به ترکیب رشته‌ها خواهید داشت. همچنین اگر فکر می‌کنید این کد کمی برایتان گیج‌کننده است پیشنهاد می‌کنیم ابتدا دستورات HTML را ب‏ه‌خوبی فرا گرفته و سپس شروع به یادگیری php کنید زیرا همان‌طور که در جلسه اول گفتیم، پیش‌نیاز این آموزش‌ها آشنایی شما با دستورات HTML و تا حدودی دستورات CSS است. در جدول زیر لیست سایر اعضای آرایه SERVER_$ که می‌توانید از آن‌ها استفاده کنید را برایتان لیست کرده‌ایم:

جدول اعضای آرایه SERVER_$ در PHP

نام فایل کنونی که در سرور اجرا شده را بر می‌گرداند $_SERVER[‘PHP_SELF’]
آدرس آی‌پی سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_ADDR’]
نام سرور کنونی را بر می‌گرداند $_SERVER[‘SERVER_NAME’]
هدر هاست کنونی را بر می‌گرداند $_SERVER[‘HTTP_HOST’]
آی‌پی سروری قبلی‌ای که کاربر از آن به سایت ما وارد شده را بر می‌گرداند $_SERVER[‘REMOTE_ADDR’]
پورت دستگاهی که کاربر از طریق آن با سرور ارتباط برقرار کرده را بر می‌گرداند $_SERVER[‘REMOTE_PORT’]
نام مسیر دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_FILENAME’]
پورتی که سرور از آن برای ارتباطات خود استفاده می‌کند را برمی‌گرداند $_SERVER[‘SERVER_PORT’]
نام دقیق فایلی که فراخوانی شده را بر می‌گرداند $_SERVER[‘SCRIPT_NAME’]
آدرس URI $_SERVER[‘REQUEST_URI’]

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

فرم‌ها در PHP

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

با استفاده از تگ FORM در اچ‌تی‌ام‌ال می‌توانیم فرم موردنظر خود را ایجاد کنیم. تمامی فیلدهای ورودی باید در داخل این تگ به‌کار گرفته شوند. به مثال زیر توجه کنید:

<FORM action=”send.php” method=”post”>

name : <input type=”text” name=”username”>

<input type=”submit” name=”send” value=”Submit Your Name!”>

</form>

در کد بالا همان‌طور که می‌بینید یک فرم ایجاد کرده‌ایم که شامل یک فیلد ورودی برای وارد کردن نام است. این فیلد از نوع متنی بوده و خاصیت name آن را username تعیین کرده‌ایم. همچنین از یک دکمه از نوع Submit برای ثبت فرم استفاده کرده‌ایم و خاصیت نام این دکمه را send و متن روی دکمه را با خاصیت value برابر Submit Your Name! قرار داده‌ایم.

مهم‌ترین نکته کد بالا دو خاصیت action و method در تگ FORM است. در قسمت action ما عبارت send.php را نوشته‌ایم. این یعنی اطلاعات فرم ما پس از ثبت، به صفحه‌ای که در بخش action تعیین کرده‌ایم ارسال خواهد شد. همچنین در بخش method می‌توان از دو حالت get و post استفاده کرد. تفاوت این دو روش را نیز به شما توضیح خواهیم داد اما در کل نتیجه کار در هر دو حالت یکی خواهد بود.

کد بالا را در یک فایل به نام form.php قرار دهید و سپس این فایل را در همان پوشه new که در ابتدای آموزش ایجاد کرده بودید قرار دهید. حالا یک فایل دیگر به نام send.php ایجاد کنید و کد زیر را در آن قرار دهید:

<?php
$user = $_POST[‘username’];
echo “your name is : ” . $user;
?>

از آنجا که در بخش method فرم خود از روش post استفاده کرده‌ایم در اینجا برای دریافت اطلاعات فرم خود، از متغیر POST_$ استفاده کرده‌ایم. سپس در مقابل نام این متغیر (در واقع آرایه) به عضو مورد نظرمان که در اینجا name تعیین شده برای فیلد نام در فرم بالا است، را وارد کرده‌ایم. سپس نتیجه را در متغیر user ذخیره کرده و نهایتا آن را با دستور echo نمایش داده‌ایم. پس مثال بالا شامل دو فایل شد. یکی فایل form.php که فقط کدهای html را در آن به‌کار بردیم و دیگری فایل send.php که اطلاعات فرم ما به این صفحه ارسال می‌شود. سپس با دستورات پی‌اچ‌پی، اطلاعات وارد شده در فیلد username را از فرم گرفته و آن را چاپ کردیم.

اگر در هنگام تست کدهای بالا به آدرس URL در مرورگر توجه کنید ابتدا از آدرس http://127.0.0.1/new/form.php به فرم دسترسی یافته‌ و پس از ثبت فرم آدرس صفحه به http://127.0.0.1/new/send.php تغییر خواهد کرد. از آنجا که ما در ثبت فرم از متد post استفاده کرده‌ایم، اطلاعات به صورت امن و بدون این‌که به کاربر نمایش داده شوند به صفحه جدید که در اینجا send.php است ارسال شده است. اما تفاوت این روش با get چیست؟ در کد form.php در بخش method این‌بار به جای post از get استفاده کنید و فایل را ذخیره کنید. کد form.php شما در این حالت باید مثل زیر باشد:

<FORM action=”send.php” method=”get”>
name : <input type=”text” name=”username”>
<input type=”submit” name=”send” value=”Send Your Name!”>
</form>

حالا فایل send.php را نیز به صورت زیر تغییر دهید:

<?php
$user = $_GET[‘username’];
echo “your name is : ” . $user;
?>

می‌بینید که این‌بار به جای POST_$ از GET_$ استفاده کرده‌ایم و بقیه مراحل مشابه با روش قبل است. اما یک تفاوت بسیار مهم در این روش نسبت به روش post وجود دارد. اگر فرم را در این حالت ثبت کنید و به آدرس URL در مرورگر توجه کنید باید چیزی شبیه به عکس زیر را ببینید. من در صفحه form.php در فیلد نام عبارت mojtaba را نوشته و فرم را ثبت کردم. 

۵۸۴۲۲b2d-5982-4a82-83b5-81c895506efe

همان‌طور که در تصویر بالا هم می‌بینید این‌بار نام فیلد ثبت‌شده و نیز مقدار وارد شده در آن در آدرس مرورگر نمایان شده است. حال اگر کمی خلاقیت به خرج دهید کافی است به جای mojtaba در آدرس URL بالا، هر مقدار دیگری را که دوست دارید وارد کنید. نتیجه چه خواهد شد؟ نام جدید در مرورگر چاپ خواهد شد بدون این‌که نیاز باشد آن را از طریق فرم ثبت کنید! حالا اگر تعداد فیلدهای ما بیشتر باشد چه کاری باید انجام داد؟ فرض کنید در فرم خود ۳ فیلد با نام‌های user و age و city داریم. اگر این فرم را با متد GET ارسال کنیم آدرس URL صفحه‌ای که فرم به آنجا ارسال می‌شود به صورت زیر خواهد بود. فرض کنید نام صفحه مقصد mypage.php است:

mypage.php?user=mojtaba&age=25&city=tehran

می‌بینید که نام فیلد اول یعنی user پس از علامت سوال ? قرار گرفته و بعد = و سپس مقدار وارد شده در این فیلد. برای فیلدهای دوم به بعد نام هر فیلد پس از علامت & قرار می‌گیرد و مجددا = و سپس مقدار فیلد. به هر تعدادی که فیلد داشته باشیم از فیلد دوم به بعد به همین صورت در آدرس URL اضافه خواهند شد.

برای درک بهتر این بخش یک مثال دیگر می‌زنیم. یک فایل جدید به نام my.php در پوشه new ایجاد کنید و کد زیر را در آن قرار دهید:

<?php
$name = $_GET[‘name’];
$age = $_GET[‘age’];
$city = $_GET[‘city’];

echo “your name is $name and yor age is $age and your city is $city”;
?>

حالا آدرس زیر را در مرورگر خود اجرا کنید:

http://127.0.0.1/new/my.php?name=mojtaba&age=25&city=tehran

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

your name is mojtaba and yor age is 25 and your city is tehran

شما می‌توانید به جای مقادیر این سه متغیر در آدرس URL از مقادیر دلخواه خود استفاده کنید تا مبحث get را بهتر درک کنید.

برای تمرین سعی کنید یک فرم جدید ایجاد کنید که به جای یک فیلد دارای چند فیلد باشد و سپس با استفاده از دو متد post و get داده‌های ثبت شده توسط فرم را با پی‌اچ‌پی دریافت کرده و آنها را نمایش دهید. با استفاده از آنچه تا به این لحظه یادگرفته‌اید می‌توانید یک ماشین حساب ساده بسازید. ابتدا دو عدد را با فرم از کاربر دریافت کنید و سپس با پی‌اچ‌پی عملیات ریاضی موردنظر را انجام دهید. این کار بسیار ساده است و باعث می‌شود مبحث این جلسه را نیز به‌خوبی یاد بگیرید.

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

منبع: زومیت