PDA

View Full Version : عدم اجرای شرط ==



IqoopI
چهارشنبه 01 مهر 1394, 09:39 صبح
سلام
من یه شرط در کد هام دارم به این صورت

if(($arr['name']=="$n") && ($arr['pass']=="$p"))

مشکل من اینه که موق اجرا هیچ وقت = = رو قبول نمیکنه و میره تو else
ولی اگه اینو با =! اینجوری بنویسم



if(($arr['name']!="$n") && ($arr['pass']!="$p"))

میره تو شرط
نمیدونم چه مرگشه ، "کولیشن" mysql هم روی utf8-persian و حتی utf8_general هم گذاشتم ولی باز هم = = رو قبول نمیکنه
حتی کد زیر رو هم امتحان کردم



if(($arr['name']==$_POST['b']) && ($arr['pass']==$_POST['a']))
لطفا راهنمایی کنید

blue.web9
چهارشنبه 01 مهر 1394, 09:57 صبح
برای بررسی تساوی از === و عدم تساوی از ==! استفاده کنید مشکلتون حل میشه.

pejman_view
چهارشنبه 01 مهر 1394, 11:49 صبح
با سلام

به نظر من کدی که نوشتید یه جای دیگه اش می لنگه کاری به شرط نداره باید اطلاعات بیشتری همچون خروجی $arr و کوئری mysql یا قسمت بیشتری از کد خود را بگذارید

با تشکر

IqoopI
چهارشنبه 01 مهر 1394, 13:16 عصر
=== امتحان کردم نشد
از اخرین ورژن mysql - firefox - wamp در ویندوز 8.1 استفاده میکنم
همه قسمت های کدی که نوشتم اجرا میشه حتی خود این if هم وقتی =! میزاری اجرا میشه ولی == رو نمیگیره
اسم دیتابیس test4 - دو تا فیلد دارم تو دیتابیس name,pass - مقادیر تکست باکس توسط POST ریخته میشه تو n و p


mysqli_select_db($con,"test4");
$sql="SELECT name,pass FROM per";
$res=mysqli_query($con,"$sql");
$arr=mysqli_fetch_array($res);
if(($arr['name']=="$n") && ($arr['pass']=="$p"))
{
echo "KhoshAmadid";
echo '<p><a href="default.php">Back to Home</a></p>';
}


نمیدونم چشه؟

pejman_view
چهارشنبه 01 مهر 1394, 14:36 عصر
خوب مشکل داره دیگه، mysqli_fetch_array اولین row رو بر می گردونه همونطور که گفتم این کد اشکال داره.

IqoopI
چهارشنبه 01 مهر 1394, 14:43 عصر
خوب مشکل داره دیگه، mysqli_fetch_array اولین row رو بر می گردونه همونطور که گفتم این کد اشکال داره.

خوب کد رو چه جوری عوض کنم؟

pejman_view
چهارشنبه 01 مهر 1394, 14:54 عصر
$sql="SELECT name,pass FROM per WHERE name=$n AND pass=$p";

IqoopI
چهارشنبه 01 مهر 1394, 15:42 عصر
$sql="SELECT name,pass FROM per WHERE name=$n AND pass=$p";



خیلی ممنون از راهنمایی و سرعت پاسخگویتون
fetch_array رو خوب درک نکرده بودم
در نهایت با یه جفت "تک کوتیشن" برای متغیرها کدهام به صورت زیر تکمیل شد


mysqli_select_db($con,"test4");
$sql="SELECT name,pass FROM per WHERE name='$n' AND pass='$p'";
$res=mysqli_query($con,"$sql");
$arr=mysqli_fetch_array($res);
if(($arr['name']=="$n") && ($arr['pass']=="$p"))
{
echo "KhoshAmadid";
echo '<p><a href="default.php">Back to Home</a></p>';
}