PDA

View Full Version : مبتدی: تابع$_post



mahdivita
دوشنبه 14 اسفند 1391, 21:53 عصر
سلام
یه برنامه میخوام بنویسم که از کاربر نام و نام خانوادگی و جنسیت و تاریخ تولد و آدرسشو بگیره سپس با کلیک روی دکمه ی تایید در فایل phpمشخصاتشو نمایش بده
لطفا اگه کسی میتونه کمک کنه

MMSHFE
دوشنبه 14 اسفند 1391, 23:01 عصر
<!doctype html>
<html>
<head>
<title>Form DEMO</title>
<meta charset="utf-8"/>
</head>
<body>
<form action="" method="post">
<table>
<tr align="left">
<th>Name</th>
<td><input name="name" type="text"/></td>
</tr>
<tr align="left">
<th>Family</th>
<td><input name="family" type="text"/></td>
</tr>
<tr align="left">
<th>Gender</th>
<td>
<input name="gender" type="radio" value="male"/>Male
<input name="gender" type="radio" value="female"/>Female
</td>
</tr>
<tr align="left">
<th>Birth Date</th>
<td><input name="bdate" type="text"/></td>
</tr>
<tr align="left">
<th>Address</th>
<td><textarea name="address"></textarea></td>
</tr>
</table>
</form>
<?php
if(isset($_POST['name'], $_POST['family'], $_POST['gender'], $_POST['bdate'], $_POST['address'])) {
echo ' <p><b>Name:</b> ' . htmlentities($_POST['name'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
echo ' <p><b>Family:</b> ' . htmlentities($_POST['family'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
echo ' <p><b>Gender:</b> ' . ($_POST['gender'] == 'male' ? 'Male' : 'Female') . '</p>' . PHP_EOL;
echo ' <p><b>Birth Date:</b> ' . htmlentities($_POST['bdate'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
echo ' <p><b>Address:</b> ' . htmlentities($_POST['address'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
}
?>
</body>
</html>

MMSHFE
دوشنبه 14 اسفند 1391, 23:04 عصر
راستی، POST_$ یک تابع نیست، یک آرایه است.

mahdivita
سه شنبه 15 اسفند 1391, 05:05 صبح
سلام
ممنون که وقت گذاشتین اما دوتا مشکل وجود داره
1:خط 36ارور میده من تلاش کردم برطرف کنم اما نتونستم
2:منظورمن این بود که فرم ها در فایلhtmlباشند و خروجی در فایلphp

MMSHFE
سه شنبه 15 اسفند 1391, 07:16 صبح
وقتی با خطا مواجه میشین فقط نگین خطا میده. متن خطا رو هم بگذارین. برای جداسازی HTML و PHP هم کافیه بخش HTML رو توی یک فایل و بخش PHP رو هم توی یک فایل دیگه ذخیره کنید و اسم فایل PHP رو توی قسمت action فرم بنویسید.

amin7x
سه شنبه 15 اسفند 1391, 11:44 صبح
ببخشید میشه بگید تابع های زیر چه کاری رو انجام میدن؟

htmlentities و ENT_QUOTES

و اینکه این علامت ? و : به چه دردی میخوره؟


($_POST['gender'] == 'male' ? 'Male' : 'Female')

MMSHFE
سه شنبه 15 اسفند 1391, 12:43 عصر
تابع htmentities جلوی ورود کدهای خطرناک برای هک کردن سایت شما با روشهایی مثل Javascript Injection رو میگیره و کار اصلی اون، Escape (خنثی) کردن کارکترهایی هست که برای زبان HTML معنای خاصی دارن (مثل تگ script و...)
این ساختار هم معروفه به ساختار شرطی سه گانه که قسمت اول ( قبل از ? ) شرطه، قسمت دوم ( قبل از : ) مقداری که اگه شرط درست باشه باید توی عبارت استفاده بشه و قسمت آخر هم مقداریه که اگه شرط نادرست باشه باید توی عبارت مورد استفاده قرار بگیره. موفق باشید.

mahdivita
سه شنبه 15 اسفند 1391, 14:57 عصر
سلام
این خط ارور میده


if(isset($_POST['name'], $_POST['family'], $_POST['gender'], $_POST['bdate'], $_POST['address']){

MMSHFE
پنج شنبه 17 اسفند 1391, 09:39 صبح
یه پرانتز بسته قبل از } اضافه کنید.

mahdivita
پنج شنبه 17 اسفند 1391, 09:53 صبح
متاسفانه این بار هم نشد

mahdivita
پنج شنبه 17 اسفند 1391, 10:42 صبح
سلام
این فرمم هست که طراحی کردم اما سر کد PHP مشکل دارم اگه کسی میتونه کمک کنه
http://uplod.ir/2puewa202prl/Untitled-1.html.htm

MMSHFE
پنج شنبه 17 اسفند 1391, 11:06 صبح
این کد form.html :


<!doctype html>
<html>
<head>
<title>Form DEMO</title>
<meta charset="utf-8"/>
</head>
<body>
<form action="result.php" method="post">
<table>
<tr align="left">
<th>Name</th>
<td><input name="name" type="text"/></td>
</tr>
<tr align="left">
<th>Family</th>
<td><input name="family" type="text"/></td>
</tr>
<tr align="left">
<th>Gender</th>
<td>
<input name="gender" type="radio" value="male"/>Male
<input name="gender" type="radio" value="female"/>Female
</td>
</tr>
<tr align="left">
<th>Birth Date</th>
<td><input name="bdate" type="text"/></td>
</tr>
<tr align="left">
<th>Address</th>
<td><textarea name="address"></textarea></td>
</tr>
</table>
</form>
</body>
</html>

اینم کد result.php :


<!doctype html>
<html>
<head>
<title>Form DEMO</title>
<meta charset="utf-8"/>
</head>
<body>
<?php
if(isset($_POST['name'], $_POST['family'], $_POST['gender'], $_POST['bdate'], $_POST['address'])) {
echo ' <p><b>Name:</b> ' . htmlentities($_POST['name'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
echo ' <p><b>Family:</b> ' . htmlentities($_POST['family'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
echo ' <p><b>Gender:</b> ' . ($_POST['gender'] == 'male' ? 'Male' : 'Female') . '</p>' . PHP_EOL;
echo ' <p><b>Birth Date:</b> ' . htmlentities($_POST['bdate'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
echo ' <p><b>Address:</b> ' . htmlentities($_POST['address'], ENT_QUOTES, 'utf-8') . '</p>' . PHP_EOL;
}
?>
</body>
</html>

mahdivita
پنج شنبه 17 اسفند 1391, 11:09 صبح
میدونم که دارم اعصابتونو داغون میکنم اما نمیشه کد PHPفرم خودم رو یه کمش رو بنویسین ممنون میشم
البته اگه مایلید

mahdivita
پنج شنبه 17 اسفند 1391, 11:09 صبح
راستی ممنون از اینکه وقت گذاشتین دوباره نوشتین

MMSHFE
پنج شنبه 17 اسفند 1391, 11:11 صبح
دوست عزیز، قرار نیست اینجا به کسی ماهی بدیم. اینجا اومدین که ماهیگیری یاد بگیرین. پس کد نمونه رو نگاه کنید و فرم خودتون رو براساس تفاوتها اصلاح کنید.

mahdivita
پنج شنبه 17 اسفند 1391, 11:23 صبح
[/io]خجالت[io]

mahdivita
پنج شنبه 17 اسفند 1391, 11:42 صبح
مشکل این چیه؟؟؟؟؟؟




<?php
$a=$_POST["name"];
echo 'نام شما:'."$a"."<br>";
?>

MMSHFE
پنج شنبه 17 اسفند 1391, 11:46 صبح
<?php
if(isset($_POST['name'])) {
echo 'نام شما: ' . $_POST['name'] . '<br/>' . PHP_EOL;
}
?>

مشکل خاصی نداره. فقط چند نکته:
1- همیشه قبل از استفاده از مقادیر POST و GET و... چک کنید ببینید وجود داره یا نه (isset) تا با پیغام خطا مواجه نشین.
2- وقتی خود متغیر ['POST['name_$ هست، چرا توی یک متغیر دیگه میگذارینش و بعد چاپ میکنید؟ خوب همون رو چاپ کنید تا در مصرف حافظه صرفه جویی بشه.
3- لازم نیست اسامی متغیرها حتماً توی کوتیشن گذاشته بشه.

mahdivita
پنج شنبه 17 اسفند 1391, 11:50 صبح
خیلی ممنون اون phpیه ارور کوچیک هم میداد که الان با این کد شما برطرف شد اما وقتی مقداری رو توی تکست میریزم توی خروجی نشون نمیده
این کد html اگه میشه ببینین من به نظرم درست بود:


<html>
<body>
<center>
<form id="form1" name="form1" method="post" action="">
<label>
<input type="text" name="name" id="name" />
</label>
نام
</form>
<form id="form2" name="form2" method="post" action="">
<label>
<input type="text" name="fname" id="fname" />
</label>
نام خانوادگی
</form>
<form id="form3" name="form3" method="post" action="">
<p>
<label>
<input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_0" />
زن</label> <pre> :جنسیت</pre>
<label>
<input type="radio" name="RadioGroup1" value="radio" id="RadioGroup1_1" />
مرد</label>
</form>
<form id="form4" name="form4" method="post" action="">
<p>
<label>
<select name="sal" id="sal">
<option>1374</option>
<option>1375</option>
<option>1376</option>
<option>1377</option>
<option>1378</option>
<option>1379</option>
<option>1380</option>
<option>1381</option>
<option>1382</option>
<option>1383</option>
<option>1384</option>
<option>1385</option>
<option>1386</option>
<option>1387</option>
<option>1388</option>
<option>1389</option>
<option>1390</option>
<option>1391</option>
</select>
سال </label>
<label>
<select name="mah" id="mah">
<option>فروردین</option>
<option>اردیبهشت</option>
<option>خرداد</option>
<option>تیر</option>
<option>مرداد</option>
<option>شهریور</option>
<option>مهر</option>
<option>آبان</option>
<option>آذر</option>
<option>دی</option>
<option>بهمن</option>
<option>اسفند</option>
</select>
</label>
ماه
<label>
<select name="roz" id="roz">
<option>1</option>
<option>2</option>
<option>3</option>
<option>4</option>
<option>5</option>
<option>6</option>
<option>7</option>
<option>8</option>
<option>9</option>
<option>10</option>
<option>11</option>
<option>12</option>
<option>13</option>
<option>14</option>
<option>15</option>
<option>16</option>
<option>17</option>
<option>18</option>
<option>19</option>
<option>20</option>
<option>21</option>
<option>22</option>
<option>23</option>
<option>24</option>
<option>25</option>
<option>26</option>
<option>27</option>
<option>28</option>
<option>29</option>
<option>30</option>
<option>31</option>
</select>
</label>
روز
</p>
</form>
<form id="form5" name="form5" method="post" action="">
<label>
<textarea name="address" id="address" cols="45" rows="5"></textarea>
</label>
آدرس
</form>
<p>&nbsp;</p>
<form name="form6" method="post" action="1.php">
<input name="ok" type="submit" value="ارسال" />
</form>
<p>
<input name="cancel" type="submit" value="انصراف" />
</p>
<p>&nbsp; </p>
</center>
</body>
</html>

mahdivita
پنج شنبه 17 اسفند 1391, 12:01 عصر
لطفا ........

MMSHFE
پنج شنبه 17 اسفند 1391, 12:16 عصر
<!doctype html>
<html dir="rtl">
<head>
<title>My Web Page</title>
<meta charset="utf-8"/>
</head>
<body>
<div align="center">
<form action="" method="post">
<label>نام <input type="text" name="name" id="name"/></label><br/>
<label>نام خانوادگی <input type="text" name="fname" id="fname"/></label><br/>
جنیست
<label><input checked="checked" name="gender" type="radio" value="male"/>مرد</label>
<label><input name="gender" type="radio" value="female"/>زن</label><br/>
<label>سال
<select name="sal">
<option value="1374">1374</option>
<option value="1375">1375</option>
<option value="1376">1376</option>
<option value="1377">1377</option>
<option value="1378">1378</option>
<option value="1379">1379</option>
<option value="1380">1380</option>
<option value="1381">1381</option>
<option value="1382">1382</option>
<option value="1383">1383</option>
<option value="1384">1384</option>
<option value="1385">1385</option>
<option value="1386">1386</option>
<option value="1387">1387</option>
<option value="1388">1388</option>
<option value="1389">1389</option>
<option value="1390">1390</option>
<option checked="checked" value="1391">1391</option>
</select>
</label><br/>
<label>ماه
<select name="mah">
<option checked="checked" value="1">فروردین</option>
<option value="2">اردیبهشت</option>
<option value="3">خرداد</option>
<option value="4">تیر</option>
<option value="5">مرداد</option>
<option value="6">شهریور</option>
<option value="7">مهر</option>
<option value="8">آبان</option>
<option value="9">آذر</option>
<option value="10">دی</option>
<option value="11">بهمن</option>
<option value="12">اسفند</option>
</select>
</label><br/>
<label>روز
<select name="roz">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select>
</label><br/>
<label>آدرس<textarea cols="45" name="address" rows="5"></textarea></label><br/>
<input name="action" type="submit" value="ارسال"/>
<input name="action" type="submit" value="انصراف"/>
</form>
</div>
</body>
</html>

کد رو با کد خودتون مقایسه کنید. ضمناً بد نیست لینکهای این تاپیک (http://barnamenevis.org/showthread.php?269194-%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D9%85%D8%B1%D8%AD%D9%84%D9%87-%D8%A8%D9%87-%D9%85%D8%B1%D8%AD%D9%84%D9%87-PHP-%D8%A7%D8%B2-%D9%BE%D8%A7%D9%8A%D9%87-%D8%A8%D8%A7-%D9%85%D8%AB%D8%A7%D9%84) رو هم به ترتیب مطالعه کنید.

mahdivita
پنج شنبه 17 اسفند 1391, 12:40 عصر
بخوایم جنسیت رو در خروجی چاپ کنه چه شرطی باید بزاریم؟؟؟؟
من خودم این طوری نوشتم توی vb کامل بلدم اما phpنه


if(isset($_POST["jensiat"]="mard"))
{
echo "جنسیت شما:".$_POST["jensiat"] . '<br/>';
}
else
{
echo "جنسیت شما:".$_POST["jensiat"] . '<br/>';
}

T.R.G.T
پنج شنبه 17 اسفند 1391, 13:03 عصر
<?php
if(isset($_POST["gender"]) and !empty($_POST["gender"])){
if($_POST["gender"]=='male'){
$gnr='مرد';
}else{
$gnr='زن';
}
echo '<h3><p align="center" dir="rtl">جنسيت شما : '.$gnr.'</p></h3>';
}
?>

MRmoon
پنج شنبه 17 اسفند 1391, 13:12 عصر
یعنی چی؟

خوب ظرط دیگه لازم نیست!

اینو مینویسی:



echo "GENDER:{$_POST['gender']}".PHP_EOL;

mahdivita
پنج شنبه 17 اسفند 1391, 13:14 عصر
نمیشه امتحان کردم تور خدا کمک کنین

MRmoon
پنج شنبه 17 اسفند 1391, 13:19 عصر
نمیشه امتحان کردم تور خدا کمک کنین

الان چیش نمیشه؟ ارور میده چیه؟

mahdivita
پنج شنبه 17 اسفند 1391, 13:20 عصر
genderقبل از دو نقطه چیه؟؟؟؟

MRmoon
پنج شنبه 17 اسفند 1391, 13:23 عصر
اون نوشتس! شما اونو عوض کن بذار جنسیت

mahdivita
پنج شنبه 17 اسفند 1391, 13:54 عصر
من دوتا رادیو باتن دارم که برای جنسیت هست وداخل html هست و میخوام وقتی روی هر کدوم از این دوتا رادیو باتن کلیک کرد زن یا مرد بودن رو تویphpچاپ کنه
کمک کنید تورو خدا

T.R.G.T
پنج شنبه 17 اسفند 1391, 14:06 عصر
دوست عزیز برو دوتا مقاله بخون تو فروم ها بگرد حتما جوابت رو پیدا می کنی
چون معلومه هیچی از php بلد نیستی

mahdivita
پنج شنبه 17 اسفند 1391, 14:17 عصر
خب شمایی که بلدی بگو

T.R.G.T
پنج شنبه 17 اسفند 1391, 14:27 عصر
چی رو بگم

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

mahdivita
پنج شنبه 17 اسفند 1391, 14:32 عصر
دیگه اینا رو که یه آدم 10 ساله هم میدونه که دوست من
من خودم کلی گشتم آخر سر اومدم اینجا و تا چندی پیش مهندس داشتن به من راهنمایی میکردن ولی دیگه این قسمت رو نشد بگن
من اومدم اینجا یاد بگیرم نیومدم که بهم بگین برو تو گوگل بگرد

T.R.G.T
پنج شنبه 17 اسفند 1391, 14:34 عصر
کدی که من بهت دادم رو تست کردی

mahdivita
پنج شنبه 17 اسفند 1391, 14:41 عصر
این اون چیزی هستش که من قصد درست کردنشو دارم
http://upload7.ir/images/69701554522788063232.jpg

MMSHFE
جمعه 18 اسفند 1391, 09:05 صبح
این کد رو به نام form.html ذخیره کنید:


<!doctype html>
<html dir="rtl">
<head>
<title>My Web Page</title>
<meta charset="utf-8"/>
</head>
<body>
<div align="center">
<form action="result.php" method="post">
<table>
<tr align="right"><th>نام</th><td><input type="text" name="name"/></td></tr>
<tr align="right"><th>نام خانوادگی</th><td><input type="text" name="fname"/></td></tr>
<tr align="right"><th>جنیست</th><td>
<label><input checked="checked" name="gender" type="radio" value="male"/>مرد</label><br/>
<label><input name="gender" type="radio" value="female"/>زن</label></td></tr>
<tr align="right"><th>تاریخ تولد</th><td>
<label>سال <select name="sal">
<option value="1374">1374</option>
<option value="1375">1375</option>
<option value="1376">1376</option>
<option value="1377">1377</option>
<option value="1378">1378</option>
<option value="1379">1379</option>
<option value="1380">1380</option>
<option value="1381">1381</option>
<option value="1382">1382</option>
<option value="1383">1383</option>
<option value="1384">1384</option>
<option value="1385">1385</option>
<option value="1386">1386</option>
<option value="1387">1387</option>
<option value="1388">1388</option>
<option value="1389">1389</option>
<option value="1390">1390</option>
<option checked="checked" value="1391">1391</option>
</select></label>
<label>ماه <select name="mah">
<option checked="checked" value="1">فروردین</option>
<option value="2">اردیبهشت</option>
<option value="3">خرداد</option>
<option value="4">تیر</option>
<option value="5">مرداد</option>
<option value="6">شهریور</option>
<option value="7">مهر</option>
<option value="8">آبان</option>
<option value="9">آذر</option>
<option value="10">دی</option>
<option value="11">بهمن</option>
<option value="12">اسفند</option>
</select></label>
<label>روز <select name="roz">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
<option value="4">4</option>
<option value="5">5</option>
<option value="6">6</option>
<option value="7">7</option>
<option value="8">8</option>
<option value="9">9</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
<option value="25">25</option>
<option value="26">26</option>
<option value="27">27</option>
<option value="28">28</option>
<option value="29">29</option>
<option value="30">30</option>
<option value="31">31</option>
</select></label></td></tr>
<tr align="right"><th>آدرس</th><td><textarea cols="45" name="address" rows="5"></textarea></td></tr>
<tr align="right">
<th>&nbsp;</th>
<td><input type="clear" value="انصراف"/><input type="submit" value="ارسال"/>
</tr>
</table>
</form>
</div>
</body>
</html>

این کد رو هم به اسم result.php ذخیره کنید:


<!doctype html>
<html dir="rtl">
<head>
<title>My Web Page</title>
<meta charset="utf-8"/>
</head>
<body>
<p><b>اطلاعات فرم:</b></p>
<b>نام:</b> <?php if(isset($_POST['name'])) { echo $_POST['name']; } ?><br/>
<b>نام خانوادگی:</b> <?php if(isset($_POST['fname'])) { echo $_POST['fname']; } ?><br/>
<b>جنسیت:</b> <?php if(isset($_POST['gender'])) { echo ($_POST['gender'] == 'male' ? 'مرد' : 'زن'); } ?><br/>
<b>تاریخ تولد:</b> <?php if(isset($_POST['sal'], $_POST['mah'], $_POST['roz'])) { echo "{$_POST['sal']}/{$_POST['mah']}/{$_POST['roz']}"; } ?><br/>
<b>آدرس:</b> <?php if(isset($_POST['address'])) { echo $_POST['address']; } ?><br/>
<a href="form.html">بازگشت به صفحه فرم</a>
</body>
</html>

حالا هر دو فایل رو کنار هم توی پوشه formdemo داخل مسیر C:\wamp\www ذخیره و با نوشتن localhost/formdemo/form.html توی مرورگر، تست کنید.
-----
پاورقی: حتماً مقاله آموزش HTML (بخصوص بخش دریافت ورودی از کاربر توسط فرمها) رو از تاپیک «آموزش مرحله به مرحله PHP از پایه با مثال» دانلود و مطالعه کنید چون اطلاعاتتون از فرمهای HTML دارای اشتباهات زیادی هست.
-----
موفق باشید.

mahdivita
جمعه 18 اسفند 1391, 09:52 صبح
متشکرم از شما
امید وارم در تمام مراحل زندگی موفق و پیروز باشید