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 نقل قول لینک به ارسال
پست های پیشنهاد شده
به گفتگو بپیوندید
هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .