PDA

View Full Version : مشکل با if



kitten
پنج شنبه 30 آبان 1387, 12:08 عصر
سلام دوستان من یه شرط نوشتم که اگر سه تا فیلد از فیلد های page قبلی پر باشه دستورات اجرا بشه اما الان بهم کار نمی ده چه طوری درستش کنم ؟ کجای کار ایراد داره؟

if(isset($_POST["address"]) and isset($_POST["uname"]) and isset($_POST["password"]))

I,Nobody
پنج شنبه 30 آبان 1387, 12:15 عصر
if($_POST["address"] and $_POST["uname"] and $_POST["password"])

امید امرایی
پنج شنبه 30 آبان 1387, 15:46 عصر
خوب این دو روش که با هم فرقی نداشتن چون در صورتی که مقدار اونها '' باشه باز هم شرط صحیح می شه
در ابتدا بهترین روش اینه که این جور تعیین اعتبار ها رو با جاوااسکریپت انجام بدید و در ثانی مطمئن تر اینه که این کار ور بکنید :


if(trim($_POST["address"]) != '' and trim($_POST["uname"]) != '' and trim($_POST["password"]) != '')

I,Nobody
پنج شنبه 30 آبان 1387, 16:29 عصر
خوب این دو روش که با هم فرقی نداشتن چون در صورتی که مقدار اونها '' باشه باز هم شرط صحیح می شه
در ابتدا بهترین روش اینه که این جور تعیین اعتبار ها رو با جاوااسکریپت انجام بدید و در ثانی مطمئن تر اینه که این کار ور بکنید :


if(trim($_POST["address"]) != '' and trim($_POST["uname"]) != '' and trim($_POST["password"]) != '')

اتفاقاً فرقشون توی همین موردیه که شما گفتی.
توی موردی که قبلاً نوشته شده بود، اگر مقداری ارسال نشه، باز هم متغیرها ست شدن. ولی توی موردی که من گفتم، مقدار ارسال نشده، شرط رو منفی میکنه.
البته مثال شما وقتی خوبه که طرف بخواد space تنها هم ارسال نشده باشه. بهتره kitten به این نکته فکر کنه و در صورت لزوم از مثال شما استفاده کنه

امید امرایی
جمعه 01 آذر 1387, 13:36 عصر
بله و دقیقا مسئله اینجاست که در فرمایش شما فاصله (Space) هم صحیح منظور می شه.
در حالی که هیچ برنامه این این فاصله رو معتبر نمی دونه چرا که اصلا معنایی نداره و باید عینا مثل null باهاش برخورد بشه

موفق باشید