pary_daryayi 181 ارسال شده در مرداد 92 گزارش بازنشر ارسال شده در مرداد 92 سلام دوستان.اگه یک trxtfield رو خالی رها کنیم , آیا اینطور اعتبار سنجی نادرسته ؟$f=$_POST['tfname'];if(isset($f)=='')echo 'no set';elseecho 'set';من اینو تست کردم , با اینکه فیلد رو خالی گذاشتم اما set رو چاپ میکنه . یک var_dump گرفتم که خروجی یک string خالی رو نشون میده .echo var_dump($f);//string(0) ""این هم جواب نداد :$f=$_POST['tfname'];if(!(isset($f)))echo 'no set';elseecho 'set';کجای کد من اشتباهه ؟چرا isset یک رشته ی خالی رو برمیگردونه ؟برای اعتبار سنجی استفاده از isset نادرسته ؟البته empty جواب میده ولی میخوام بدونم چرا isset نتیجه نمیده ؟تشکر لینک به ارسال
AliRezaPro 260 ارسال شده در مرداد 92 گزارش بازنشر ارسال شده در مرداد 92 متد isset درواقع null رو هم حساب میکنه, برای اینکار از isset استفاده نمیشه ,چیزی که وجود داشته باشه اما میخواید اعتبار سنجی کنید از empty استفاده کنید .اما مثلا برای سابمیت یا سشن یا وجود نداره و یا داره که اونو با isset بررسی میکنید اما دراین مواقع از empty استفاده کنید<body><?phpif (isset($_POST['submit'])) {if (!empty($_POST['txtName'])) {echo "ok";} else {echo "no";}}?></body><form action="<?php echo $_SERVER["PHP_SELF"]; ?>" method="POST"><input type="text" name="txtName" /><input type="submit" name="submit" /></form> 3 لینک به ارسال
AliRezaPro 260 ارسال شده در مرداد 92 گزارش بازنشر ارسال شده در مرداد 92 این کد رو ببینید متوجه منظور بنده میشید<?php$var = '';// This will evaluate to TRUE so the text will be printed.if (isset($var)) { echo "This var is set so I will print.";} 3 لینک به ارسال
pary_daryayi 181 ارسال شده در مرداد 92 مالک گزارش بازنشر ارسال شده در مرداد 92 خیلی ممنونم .رشته ی تهی و null ( یعنی textfield هایی که پر نشدند ) یعنی موجودند و isset اونها true میشه .اما session و cookie و submit اگر مقدار دهی نشده باشند یا در مورد سابمیت کلیک اتفاق نیفتاده باشه حتی null هم نیست و isset اونها false میشه .این نتیجه گیری درسته ؟و در مورد checkbox و radio boton ؟...و تفاوت null با رشته ی تهی چیه ؟ null خودش یک نوع داده ای هست ؟ لینک به ارسال
AliRezaPro 260 ارسال شده در مرداد 92 گزارش بازنشر ارسال شده در مرداد 92 1 : بله درسته2 : کنترل ها , هیچ فرقی نمیکنه3 : ببینید شما وقتی یک متغیر درست میکنید و اونو مقدار دهی نمیکنید مثل این میمونه که یه سطل دارید اما توش آب نربختبد اما سطل وجود دارهوقتی صفحه ایی سابمیت نشه , سشنی درست نشه مثل این میمونه که اصلا وجود نداشتند , استدلال بسیار ساده ایی داره , ایشالله متوجه منظور شده باشید 3 لینک به ارسال
imanfakhar 26231 ارسال شده در مرداد 92 گزارش بازنشر ارسال شده در مرداد 92 d; یک توضیح در کنار توضیحات دوستمون :وقتی فرمی چه با متد get چه post سابمیت می شه در واقع هر فیلدی که نامی در اون فرم داره به اکشن فرم ارسال می شه در نتیجه تکست فیلدی که پر نشده با مقدار خالی بخاطر نامش ارسال می شه پس isset جواب true رو برمی گردونه ولی if (empty($var))در ادامه isset شرط مناسب برای اجرای اکشن در صورت پر بودنه (در این شکل در حالت else و با استفاده از ! هم در حالت true) 4 لینک به ارسال
pary_daryayi 181 ارسال شده در شهریور 92 مالک گزارش بازنشر ارسال شده در شهریور 92 (ویرایش شده) checkbox و radio رو چک کردم , اینا اگه انتخاب نشن isset شون برابر false هست .من به این نتیجه رسیدم :textfield,textarea , باید با empty چک بشن .checkbox , radi , submit میتونن با isset چک بشن .select : با هیچ کدوم جواب نداد . (نه isset و نه empty )if(isset($_POST['select'])!='' and !empty($_POST['select'])){ echo 'true';}elseecho 'empty';در هر صورت true چاپ میکنه. ویرایش شده شهریور 92 توسط pary_daryayi لینک به ارسال
pary_daryayi 181 ارسال شده در شهریور 92 مالک گزارش بازنشر ارسال شده در شهریور 92 اصلاح میکنم , در مورد select , تابع empty کار میکنه لینک به ارسال
imanfakhar 26231 ارسال شده در شهریور 92 گزارش بازنشر ارسال شده در شهریور 92 در چک باکس و رادیو باکس شمنا تا گزینه ای را سلکت نکنی ارسال نمی شه 1 لینک به ارسال
پست های پیشنهاد شده
لطفا برای ارسال دیدگاه وارد شوید
شما بعد از اینکه وارد حساب کاربری خود شدید می توانید دیدگاهی ارسال کنید
ورود به حساب کاربری