آموزش کار با PHP - قسمت چهارم
این مقاله توسط مجتبی دشتی نژاد نوشته شده است
هر گونه کپی برداری بدون داشتن اجازه نامه کتبی از نویسنده آن، ممنوع می باشد
ارتباط با کاربر
حال که با مختصرات PHP آشنا شدید، بهتر است به چگونگی اینجاد فرمها و ارتباط با
کاربر بپردازیم.
همان طور که می دانید، برای ساختن اجزاء صفحات وب، از تگهای HTML که معمولا به صورت
</tag> و <tag> می باشند، استفاده می کنیم (بعضی از اجزا، دارای تگ پایانی نیستند.
همانند تگ <img>). برای ساختن فرمها در HTML، ما از تگ <form> استفاده می کنیم:
<form>
<!-- Form Components -->
</form>
تگ <form> دارای دو خاصیت بسیار مهم می باشد:
- خاصیت action
- خاصیت method
خاصیت action محل اسکریپت پردازش فرم را تعیین می کند و خاصیت method، نوع ارسال داده ها به اسکریپت مورد نظر. خاصیت method، خود دارای دو مقدار می باشد:
- get
- post
اما فرق این دو متد در چیست؟ در متد get، داده های ما به صورت Query String به اسکریپت پردازش فرم ارسال می شود. اما در متد post این طور نیست. حالا شاید برای شما این سوال پیش بیاید که Query String چیست؟ به قطعه کد زیر توجه کنید تا در مورد آن توضیح دهم:
http://www.site.com/?name=mojtaba&familyname=dashti
این قطعه کد در واقع از دو خط کد زیر تشکیل شده است:
http://www.site.com/
?name=mojtaba&familyname=dashti
خط اول که آدرس سایت می باشد. اما خط دوم که به Query String معروف است، شامل داده
های ما می باشد که در PHP، مقدار mojtaba در متغیر name و مقدار dashti در متغیر
familyname ذخیره می شود.
معمولا برای ارسال داده های کم، از Query String استفاده می شود (متد get). اما
برای ارسال داده های بلند و رمزهای عبور (Password)، متد post بهترین انتخاب می
باشد.
ساخت یک Text-Box
Text-Boxها برای دریافت عبارات یک خطی، همانند نام، آدرس ایمیل، آدرس سایت، کلمه
عبور و ... در وب به کار می روند. برای ساخت Text-Boxها از تگ <input>، به صورت زیر
استفاده می کنید:
<input type="text" [size="m"] [name="name"] [value="optional value"]>
خاصیت type="text" به مرورگر می گوید که با این تگ <input> یک کادر متنی بسازد (بعضی دیگر از اجزای فرم نیز با همین تگ، ولی با خاصیت type متفاوت ساخته می شوند). دیگر خاصیتها برای کادر متنی، اختیاری می باشد. برخی از این خاصیتهای مهم به صورت زیر است:
- خاصیت size: اندازه Text-Box را بر حسب تعداد کاراکتر نشان می دهد. دقت داشته باشید که این خاصیت، در واقع در اندازه نمایش Text-Box و نه مقدار کاراکتری که می تواند دریافت کند، اثر می گذارد.
- خاصیت name: این خاصیت برای ایجاد فرمهای تعاملی بسیار مهم می باشد. با اختصاص یک نام به یک Text-Box، به راحتی می تواند به وسیله اسکریپتها، داده وارد شده توسط کاربر را دریافت کرده و بر روی آن عملیات انجام دهید.
- خاصیت value: به طور Default، کادرهای متنی هنگام نمایش خالی می باشند. اگر می خواهید متنی را درون Text-Box قرار دهید، عبارت مورد نظر خود را در قسمت value قرار دهید.
ساخت Text-Area
Text-Areaها در واقع نوع پیشرفته تر Text-Box می باشند که می توانند بیش از یک خط
داده را از کاربر دریافت کنند. برای ساخت Text-Area از تگ <textarea> استفاده می
کنیم:
<textarea [name="name"] [rows="m"] [cols="m"]>
Optional Text
</textarea>
خاصیتهای rows و cols، به ترتیب نمایانگر تعداد سطرها و کاراکترهای Text-Area می
باشند.
کادرهای پسورد (Password)
برای ساخت کادرهای پسورد، از تگ <input>، به صورت زیر استفاده می کنیم. کادرهای
Password در واقع نوعی Text-Box هستند، با این تفاوت که در این نوع کادرها، داده
های وارد شده به صورت ستاره (*) در ویندوزهای 98/ME/2000 و دایره (●) در ویندوز XP
نمایش داده می شوند.
<input type="password" [name="name"] [size="m"] [value="optional value"]>
کادرهای انتخاب (Check-Box)
حتما تا به حال با Check-Boxها در ویندوز برخورد کرده اید: مربع های کوچکی که کاربر
می تواند آنها را انتخاب کند. برای ایجاد کردن Check-Boxها از تگ <input> به صورت
زیر استفاده می کنیم:
<input type="checkbox" [name="name"] [value="value"] [checked="checked"]>
مقدار خاصیت value در صورتی که Check-Box انتخاب شده باشد، به سرور فرستاده می شود.
اگر خاصیت value را برای Check-Box در نظر نگیرید، به طور اتوماتیک مقدار on به
سرور فرستاده می شود. خاصیت checked="checked" سبب انتخاب شدن Check-Box هنگام لود
شدن صفحه می شود.
دکمه های رادیویی (Radio Buttons)
Radio Buttonها همانند Check-Boxها می باشند. با این تفاوت که در Check-Boxها،
کاربر می تواند از بین چندین انتخاب، هر کدام را که بخواهد انتخاب کند (1، 2، 3 و
یا بیشتر). اما در Radio Buttonها، کاربر از بین چندین انتخاب، تنها می تواند یکی
از آنها را انتخاب کند.
حال که با بعضی از اجزای فرم آشنا شدید، بهتر است یک فرم تعاملی بسازیم که یکسری
اطلاعات از کاربر گرفته و آنها را در صفحه ای مجزا نمایش دهد. کد HTML مورد نظر ما،
به صورت زیر می باشد. آن را در فایلی تحت عنوان index.php در محل دلخواه خود، ذخیره
کنید (در محلی که فایلهای php قادر به اجرا شدن هستند).
<html>
<head>
<title>Getting Information</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<div style="text-align: center">
<div style="width: 420px; text-align: justify ">
<form method="post" action="result.php">
<table border="0" width="100%">
<tr>
<td width="200px" style="text-align: right">Username</td>
<td width="20px"> </td>
<td width="200px" style="text-align: left">
<input type="text" name="username" size="20">
</td>
</tr>
<tr>
<td width="200px" style="text-align: right">Password</td>
<td width="20px"> </td>
<td width="200px" style="text-align: left">
<input type="password" name="password" size="20">
</td>
</tr>
<tr valign="top">
<td width="200px" style="text-align: right">Feedback</td>
<td width="20px"> </td>
<td width="200px" style="text-align: left">
<textarea name="feedback"
rows="5" cols="25"></textarea>
</td>
</tr>
<tr valign="top">
<td width="200px" style="text-align: right">Hobbies</td>
<td width="20px"> </td>
<td width="200px" style="text-align: left">
<input type="checkbox" id="internet" name="internet"
value="Internet" checked="checked">
<label for="internet">Internet</label><br>
<input type="checkbox" id="computer"
name="computer" value="Computer">
<label for="computer">Computer</label><br>
<input type="checkbox" id="hack"
name="hack" value="Hack">
<label for="hack">Hack, Crack</label><br>
</td>
</tr>
<tr valign="top">
<td width="200px" style="text-align: right">Show Password</td>
<td width="20px"> </td>
<td width="200px" style="text-align: left">
<input type="radio" id="no" name="passwordio"
value="no" checked="checked">
<label for="no">No</label><br>
<input type="radio" id="yes"
name="passwordio" value="yes">
<label for="yes">Yes</label>
</td>
</tr>
<tr>
<td colspan="3" style="text-align: center">
<input type="submit" value=" Submit Data ">
</td>
</tr>
</table>
</form>
</div>
</div>
</body>
</html>
حال که فرم HTML خود را ساختیم، ساخت اسکریپت مورد نظر خود را، که در اینجا result.php می باشد، شروع می کنیم.
<html>
<head>
<title>Result</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>Hello, you can see your information below ;)</p>
Username: <b><?=$username?></b><br>
<?php if ($passwordio == "yes") { ?>
Password: <b><?=$password?></b><br>
<?php } else { ?>
Password: <b><font color="red">Password is hidden</font></b><br>
<?php } ?>
Feedback:<br>
<b><?=$feedback?></b><br>
Hobbies:<br>
<?php echo("$internet<br>$computer<br>$hack");?><br>
</body>
</html>
دقت داشته باشید که این یک اسکریپت بسیار ساده می باشد و برای کامل کردن آن، نیازمند دانش بیشتری هستیم. پس فعلا به همین اسکریپت ساده اکتفا می کنیم.









