كار كردن با فرم ها
خوب در اين قسمت ميخواهيم ببينيم چجوري با استفاده از فرمها اطلاعات رو بين صفحات ارسال كنيم.
خوب يه مثال ساده ولي پركاربرد :
قصد داريم اطلاعات يك تكست باكس رو كه در اين صفحه قرار داره توسط صفحه دوم به اسم b.php بخونيم پس اسم اين صفحه رو كه هيچ كد پي اچ پي توش استفاده نكرديم ميزاريم a.php و ذخيره ميكنيم.
حالا ميرسيم به صفحه دوم اين كد رو تو صفحه دوم قرار بديد .
<?php
print "$user"
?>
خيلي ساده و به اين صورت اطلاعات رو ميگيريم يوزر اسم تكست باكسي هست كه تو فرم اول قرار داشت.
بقيه كد ها هم اچ تي ام هست و نيازي به توضيح نيست فقط در مورد get بگم كه اين دستور متغيير ها رو موقع ارسال تو ادرس نشون داده ميشه و شايد بعضي جاها زياد راه مطمئني نباشه ولي اگه بجاي اين عبارت از post استفاده كنيم ديگه در ادرس نشون داده نميشه .
تركيب كردن پي اچ پي با اچ تي ام ال :
به اين كد نگاه كنيد :
وقتي اين فرم رو اجرا كنيم فرم همواره خودشو صدا ميزنه چون ما از عبارت $PHP_SELF استفاده كرده ايم توجه كنيد كه ما هيچ دكمه اي رو صفحه قرار نداديم و در بيشتر مرورگرها با زدن كليد اينتر ميتونيم فرم رو اجرا كنيم .
البته در كد بالا هيچ اطلاعاتي رو بيرون نميده ولي در كد زير ميخواهيم يه بازي ساده بنويسيم تا بيشتر متوجه بشيم :
توضيحات : با دستور ! كه اشنا هستيد همون دستور نقض ، اما دستور isset اين دستور چك ميكنه ببينه اصلا اطلاعاتي وارد شده يا نه ما در خط اول چك ميكنيم ببينم (اگه نه اطلاعاتي وارد شده) انگاه پيغام خوش آمد گويي رو پخش كن اين كد موقعي ميتونه اتفاق بيفته كه برا اولين بار صفحه رو باز كرده يا هيچ اطلاعاتي وارد نكرده .
حالا ميرسيم به قسمت اچ تي ام ال اين كد رو زير كد بالايي قرار بديد
خوب اين كد نيز اطلاعات رو از كاربر ميگيره و صفحه رو دوباره اجرا ميكنه و پيغام مناسب رو پخش ميكنه .
ميخوايم با يه دستور جديد و كاربردي اشنا بشيم فرض كنيم بعد از اينكه كاربر در بازي بالا برنده شد ميخواهيم او را به يه صفحه جديد بفرستيم يعني ريدايركت كنيم ميتونيم از دستور زير استفاده كنيم اين دستور رو بجاي پيغامي بزاريد كه وقتي كاربر برنده ميشه انتخاب ميشه يعني بعد از else قرار بديد :
با دستور exit هم از داخل اين كد بيرون ميايم و به صفحه بعد منتقل ميشيم .
نوبتي هم باشه نوبت كار با فايل هاست :
خوب ما با استفاده از دستور enctype="multipart/form-data" درواقع ميايم همون فايل ديالوگ رو باز ميكنيم
در قسمت بعد ما يك متغيير مخفي ايجاد ميكنيم و سايز فايل رو تعيين ميكنيم و توش قرار ميديم كه در اينجا 51200 انتخاب كرديم
حالا با دو خط بعد يه تكست باكس و يه دكمه ميزاريم . ما اينجا به كاربر اجازه ميديم تا 50 كيلوبايت فايل اپلود كنه .
البته كد بالا جنبه نمايش داشت و عملا كاربرد زيادي نداره قبل از اينكه نمونه قابل اجرا رو امتحان كنيم بزاريد ليستي از متغيير هاي فايل اپلود رو براتون بگم
مثال توضيح نام متغيير
/tmp/php3d3ef مسير فايل اپلود شده $fupload
Test.gif اسم فايل اپلود شده $fuploadname
51200 حجم بر حسب بايت $fuploadsize
Image/gif نوع فايل اپلودي $fupload type
حالا مثال ، در اين مثال ما اطلاعات فايل اپلئدي رو نمايش ميديم
فكر نميكنم نيازي به توضيح باشه بجز اين خط ( $fupload, "$file_dir/$fupload_name") copy اين دستور فايل مورد نظر رو روي سرور كپي ميكنه و اگه اشكالي پيش اومد عبارت Couldn't copy رو چاپ ميكنه در اينجا ما پس از اينكه از كاربر فايل رو درخواست كرديم اطلاعات مربوط به اون فايل رو نمايش ميديم كه ما در اينجا فرض كرديم كه كاربر يك عكس را اپلود كرده است .
--------
مهدی صفری
خوب در اين قسمت ميخواهيم ببينيم چجوري با استفاده از فرمها اطلاعات رو بين صفحات ارسال كنيم.
خوب يه مثال ساده ولي پركاربرد :
PHP:
#this page name is a.php
<form action="b.php" method="get">
<input type="text" name="user">
<input type="submit" name="btn">
</form>
حالا ميرسيم به صفحه دوم اين كد رو تو صفحه دوم قرار بديد .
<?php
print "$user"
?>
خيلي ساده و به اين صورت اطلاعات رو ميگيريم يوزر اسم تكست باكسي هست كه تو فرم اول قرار داشت.
بقيه كد ها هم اچ تي ام هست و نيازي به توضيح نيست فقط در مورد get بگم كه اين دستور متغيير ها رو موقع ارسال تو ادرس نشون داده ميشه و شايد بعضي جاها زياد راه مطمئني نباشه ولي اگه بجاي اين عبارت از post استفاده كنيم ديگه در ادرس نشون داده نميشه .
تركيب كردن پي اچ پي با اچ تي ام ال :
به اين كد نگاه كنيد :
PHP:
<form action="<?php print $PHP_SELF?>" method="POST">
name: <input type="text" name="user">
</form>
وقتي اين فرم رو اجرا كنيم فرم همواره خودشو صدا ميزنه چون ما از عبارت $PHP_SELF استفاده كرده ايم توجه كنيد كه ما هيچ دكمه اي رو صفحه قرار نداديم و در بيشتر مرورگرها با زدن كليد اينتر ميتونيم فرم رو اجرا كنيم .
البته در كد بالا هيچ اطلاعاتي رو بيرون نميده ولي در كد زير ميخواهيم يه بازي ساده بنويسيم تا بيشتر متوجه بشيم :
PHP:
<?php
$num_guess=42;
$msg=" ";
if (! Isset($guess))
{
$msg="welcome To This Little Game";
}
elseif ($guess>$num_guess)
{
$msg="number $guess is Big! Try Smaller number.";
}
elseif($guess<$num_$guess)
{
$msg="Number $guess is Small ! Try Big Number";
}
else // vagti mosavi bashe
{
$msg="Well Done You Win";
}
?>
حالا ميرسيم به قسمت اچ تي ام ال اين كد رو زير كد بالايي قرار بديد
PHP:
<h1>
<?php print $msg ?>
</h1>
<form action="<?php print $PHP_SELF?>" method="POST">
Guess Number : <input type="text" name="guess">
</form>
ميخوايم با يه دستور جديد و كاربردي اشنا بشيم فرض كنيم بعد از اينكه كاربر در بازي بالا برنده شد ميخواهيم او را به يه صفحه جديد بفرستيم يعني ريدايركت كنيم ميتونيم از دستور زير استفاده كنيم اين دستور رو بجاي پيغامي بزاريد كه وقتي كاربر برنده ميشه انتخاب ميشه يعني بعد از else قرار بديد :
PHP:
header("Location: page.html");
exit;
نوبتي هم باشه نوبت كار با فايل هاست :
PHP:
<form enctype="multipart/form-data" action="<?print $PHP_SELF?>" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="51200">
<input type="file" name="fupload"><br>
<input type="submit" value="upload!">
</form>
در قسمت بعد ما يك متغيير مخفي ايجاد ميكنيم و سايز فايل رو تعيين ميكنيم و توش قرار ميديم كه در اينجا 51200 انتخاب كرديم
حالا با دو خط بعد يه تكست باكس و يه دكمه ميزاريم . ما اينجا به كاربر اجازه ميديم تا 50 كيلوبايت فايل اپلود كنه .
البته كد بالا جنبه نمايش داشت و عملا كاربرد زيادي نداره قبل از اينكه نمونه قابل اجرا رو امتحان كنيم بزاريد ليستي از متغيير هاي فايل اپلود رو براتون بگم
مثال توضيح نام متغيير
/tmp/php3d3ef مسير فايل اپلود شده $fupload
Test.gif اسم فايل اپلود شده $fuploadname
51200 حجم بر حسب بايت $fuploadsize
Image/gif نوع فايل اپلودي $fupload type
حالا مثال ، در اين مثال ما اطلاعات فايل اپلئدي رو نمايش ميديم
PHP:
1: <html>
2: <head>
3: <title>Listing 9.15 A file upload script</title>
4: </head>
5: <?php
6: $file_dir = "/home/mehdi/htdocs/uploads";
7: $file_url ="http:// www.safary.com/mehdi/uploads";
8: if ( isset( $fupload ) )
9: {
10: print "path: $fupload<br>\n";
11: print "name: $fupload_name<br>\n";
12: print "size: $fupload_size bytes<br>\n";
13: print "type: $fupload_type<p>\n\n";
14: if ( $fupload_type == "image/gif" )
15: {
16: copy ( $fupload, "$file_dir/$fupload_name") or die ("Couldn't copy");
17:
18: print "<img src=\"$file_url/$fupload_name\"><p>\n\n";
19: }
20: }
21: ?>
22: <body>
23: <form enctype="multipart/form-data" action="<?php print $PHP_SELF?>"
method="POST">
24: <input type="hidden" name="MAX_FILE_SIZE" value="51200">
25: <input type="file" name="fupload"><br>
x<input type="submit" value="Send file!">
27: </form>
28: </body>
29: </html>
--------
مهدی صفری