کار با php و فرم html
چهارشنبه, ۸ خرداد ۱۳۹۲، ۰۷:۱۳ ب.ظ
سلام به همه
بعد از یک تاخیر نسبتا زیاد
امیدوارم از دستم دلخور نباشید.
تمام ولادت های این ایام(ماه رجب و شعبان) رو بهتون تبریک میگم.
بریم سر اصل مطلب
قراره توی 2 مرحله کار با فرم های html و ارسال اطلاعات به فایل php و
یه سری کارها با php روی اون اطلاعات و نمایش نتیجه رو یاد بگیریم.
سوال داشتید درخدمتیم
همونطور که قبلا گفته بودم، باید فایل های php رو توی مسیر xampp/htdocs بریزیم تا بتونیم اجراشون کنیم.و برای یادآوری بگم که برای اجرای فایل های php و یا html ای که قراره با فایل php ارتباط برقرار کنه ، باید توی مرورگر وبتون ، آدرسش رو مثلا اینجوری بنویسید: (localhost/test/home.php). با این کار مرورگر به مسیر xampp/htdocs/test/home.php میره و اون فایل رو اجرا میکنه.
درضمن باید با استفاده از نرم افزار xampp ، حتما apache رو در حالت Running بذارید.
اگر با phpDesigner هم کد بزنید راحت تر از notepad و ... است.
مرحله 1:
خوب حالا توی فولدر htdocs یه پوشه به اسم test_form بسازید و توی اون یه فایل به اسم form1.html بسازید و توش این کدها رو بنویسید:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<form name="MyForm" method="POST" action="test1.php">
Enter number 1: <input type="text" name="number1" value="" />
<br/>
Enter number 2: <input type="text" name="number2" value="" />
<br/>
Enter number 3: <input type="text" name="number3" value="" />
<br/>
<input type="hidden" name="number3" value="100" />
<input type="submit" name="submit" value="send" />
</form>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Enter number 1: <input type="text" name="number1" value="" />
<br/>
Enter number 2: <input type="text" name="number2" value="" />
<br/>
Enter number 3: <input type="text" name="number3" value="" />
<br/>
<input type="hidden" name="number3" value="100" />
<input type="submit" name="submit" value="send" />
</form>
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
توی
این کد یه فرم طراحی کردیم که با متد post اطلاعاتی که از کاربر میگیریم
رو به فایلی به آدرس test1.php ارسال میکنیم.(آدرس اون فایلی که میخوایم
بهش ارسال کنیم، داخل action مینویسیم.( دو نوع متد برای ارسال اطلاعات
داریم : post و get . راجع بهش تحقیق کنید. توی اینترنت ریخته)
توی خط های بعدی با استفاده از تگ input و تعریف type اون از نوع text ، یک فضایی رو ایجاد میکنیم که کاربر بتونه توش یه متن بنویسه.
توی input چهارم هم نوع اون رو hidden گذاشتیم و معنیش اینه که کاربر اونو نمیبینه( برا مواقعی که میخوایم یه اطلاعاتی رو بین فایلهامون منتقل کنیم)
input پنجم هم یک دکمه طراحی میکنه تا با فشردن اون، عملیات ارسال اطلاعات انجام بشه.
و اما فایل php تونو کنار همون فایل html به اسم test1.php بسازید و کدهای زیر رو توش بنویسید:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
توی خط های بعدی با استفاده از تگ input و تعریف type اون از نوع text ، یک فضایی رو ایجاد میکنیم که کاربر بتونه توش یه متن بنویسه.
توی input چهارم هم نوع اون رو hidden گذاشتیم و معنیش اینه که کاربر اونو نمیبینه( برا مواقعی که میخوایم یه اطلاعاتی رو بین فایلهامون منتقل کنیم)
input پنجم هم یک دکمه طراحی میکنه تا با فشردن اون، عملیات ارسال اطلاعات انجام بشه.
و اما فایل php تونو کنار همون فایل html به اسم test1.php بسازید و کدهای زیر رو توش بنویسید:
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
if(isset($_POST['number1']) && ! empty($_POST['number1']))
echo $_POST['number1'];
if(isset($_POST['number2']) && ! empty($_POST['number2']))
echo $_POST['number2'];
if(isset($_POST['number3']) && ! empty($_POST['number3']))
echo $_POST['number3'];
if(isset($_POST['number4']) && ! empty($_POST['number4']))
echo $_POST['number4'];
?>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if(isset($_POST['number1']) && ! empty($_POST['number1']))
echo $_POST['number1'];
if(isset($_POST['number2']) && ! empty($_POST['number2']))
echo $_POST['number2'];
if(isset($_POST['number3']) && ! empty($_POST['number3']))
echo $_POST['number3'];
if(isset($_POST['number4']) && ! empty($_POST['number4']))
echo $_POST['number4'];
?>
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
همونطور که گفتیم ، کدهای php باید بین دو تا تگ <? php?> باشن.
لازمه اینجا این تذکر رو بدم که نحوه ی اجرای کدهای php و html و ...، خط به خطه( که بهش میگن زبان script ای ).
و شما میتونید کدهای php و Htmlتونو توی یک فایل php کنار هم داشته باشید. مثلا چند خط php کد بزنید و چند خط html , ...
کد بالا خیلی ساده است . ما با آرایه سراسری$_POST[] میتونیم متغیر هایی که ارسال شدن رو استفاده کنیم و دسترسی داشته باشیم به اونها.
میبینید که اسم متغیر رو داخل براکت نوشتیم.
تابع isset بررسی میکنه که آیا این متغیر set شده و وجود داره یا نه.empty هم پر یا خالی بودن متغییر رو چک می کنه.
echo هم که چاپ میکنه.
مرحله 2:
میخوایم که کاربر فقط عدد وارد کنه و اگر عدد وارد نکرد، برش گردونیم به همون فایل html و ازش بخوایم که دوباره وارد کنه. وهمینطور معدل اعداد رو هم حساب کنیم.
پس کدهای زیر رو جایگزین کدهای فایل test1.php کنید لطفا:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
لازمه اینجا این تذکر رو بدم که نحوه ی اجرای کدهای php و html و ...، خط به خطه( که بهش میگن زبان script ای ).
و شما میتونید کدهای php و Htmlتونو توی یک فایل php کنار هم داشته باشید. مثلا چند خط php کد بزنید و چند خط html , ...
کد بالا خیلی ساده است . ما با آرایه سراسری$_POST[] میتونیم متغیر هایی که ارسال شدن رو استفاده کنیم و دسترسی داشته باشیم به اونها.
میبینید که اسم متغیر رو داخل براکت نوشتیم.
تابع isset بررسی میکنه که آیا این متغیر set شده و وجود داره یا نه.empty هم پر یا خالی بودن متغییر رو چک می کنه.
echo هم که چاپ میکنه.
مرحله 2:
میخوایم که کاربر فقط عدد وارد کنه و اگر عدد وارد نکرد، برش گردونیم به همون فایل html و ازش بخوایم که دوباره وارد کنه. وهمینطور معدل اعداد رو هم حساب کنیم.
پس کدهای زیر رو جایگزین کدهای فایل test1.php کنید لطفا:
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
<?php
if(isset($_POST['number1']) && ! empty($_POST['number1']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
if(isset($_POST['number2']) && ! empty($_POST['number2']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
if(isset($_POST['number3']) && ! empty($_POST['number3']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
if(isset($_POST['number4']) && ! empty($_POST['number4']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
$n1 = (int)$_POST['number1'];
$n2 = (int)$_POST['number2'];
$n3 = (int)$_POST['number3'];
$n4 = (int)$_POST['number4'];
$avg = ($n1+$n2+$n3+$n4)/4;
echo "average of ($n1 , $n2 , $n3 , $n4) is : $avg .";
?>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
if(isset($_POST['number1']) && ! empty($_POST['number1']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
if(isset($_POST['number2']) && ! empty($_POST['number2']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
if(isset($_POST['number3']) && ! empty($_POST['number3']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
if(isset($_POST['number4']) && ! empty($_POST['number4']))
{
if(!is_numeric($_POST['number1']))
{
echo "error : number1 is not a number.<br />please Enter a number <br />";
include('form1.html');
exit;
}
}
$n1 = (int)$_POST['number1'];
$n2 = (int)$_POST['number2'];
$n3 = (int)$_POST['number3'];
$n4 = (int)$_POST['number4'];
$avg = ($n1+$n2+$n3+$n4)/4;
echo "average of ($n1 , $n2 , $n3 , $n4) is : $avg .";
?>
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
خیلی
ساده : چک میکنه که آیا از نوع عدد هستن یا نه. اگر از نوع عدد نبودن،
فایل form1.html رو صدا میزنه و بقیه خط ها رو هم اجرا نمیکنه.
در نهایت اگر همه عدد بودن و از برنامه خارج نشده بود، میاد معدل اعداد رو میگیره و نمایش میده.
موفق باشید.
التماس دعا.
در نهایت اگر همه عدد بودن و از برنامه خارج نشده بود، میاد معدل اعداد رو میگیره و نمایش میده.
موفق باشید.
التماس دعا.
- ۹۲/۰۳/۰۸
بازم ممنون :)