PDA

نسخه کامل مشاهده نسخه کامل : Help



ZahhhraGh
23-02-2012, 19:48
با سلام
من به تازگي شروع به برنامه نويسي كردم.
به اروري برخوردم كه نميدنم چطور رفعش كنم!
يه جايي بايد پسورد وارد شده رو با فيلدي از يك جدول ديتابيس مقايسه كنم كه ارور ميده
كد:

$q1 = "select password from user where username = '$user'";
$r1 = mysql_query($q1) or die(mysql_error());
$row1 = mysql_fetch_row($r1);
if($row1[2] == $pass)

خط آخر كد نوشته شده = line23 در كد كل برنامه
و ارور:
Notice: Undefined offset: 2 in C:\wamp\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Project\LogIn2.php on line 23

قبلا از راهنمايي هاي شما ممنونم

mohrd
23-02-2012, 22:19
با سلام
من به تازگي شروع به برنامه نويسي كردم.
به اروري برخوردم كه نميدنم چطور رفعش كنم!
يه جايي بايد پسورد وارد شده رو با فيلدي از يك جدول ديتابيس مقايسه كنم كه ارور ميده
كد:

$q1 = "select password from user where username = '$user'";
$r1 = mysql_query($q1) or die(mysql_error());
$row1 = mysql_fetch_row($r1);
if($row1[2] == $pass)

خط آخر كد نوشته شده = line23 در كد كل برنامه
و ارور:
Notice: Undefined offset: 2 in C:\wamp\[ برای مشاهده لینک ، لطفا با نام کاربری خود وارد شوید یا ثبت نام کنید ] Project\LogIn2.php on line 23

قبلا از راهنمايي هاي شما ممنونم
سلام.
شما تنها یک ستون (password) رو از دیتابیس میگیرید. و متعاقباً آرایه ای که mysql_fetch_row برمیگردونه (row1) هم فقط یک عضو داره. پس $row[2] بی معنی هست (و وجود نداره). باید از$row[0] استفاده کنید.

البته، برای کنترل یوزر نیم پسورد کاربر کمتر از روش شما استفاده می کنند. معمولا کوئری (query) زیر رو اجرا میکنند و در صورتی که تعداد رکورد های برگشت داده شده بیشتر از 0 بود (رکوردی با شرایط مشخص شده پیدا شده بود- با استفاده از mysql_num_rows)، کاربر وارد میشه.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته، کوئری بالا امنیتش بسیار پایینه و باید امنیت رو بالا ببرید (با استفاده از توابعی مثل mysql_real_escape_string)

موفق باشید ./.

ZahhhraGh
24-02-2012, 23:08
سلام.
شما تنها یک ستون (password) رو از دیتابیس میگیرید. و متعاقباً آرایه ای که mysql_fetch_row برمیگردونه (row1) هم فقط یک عضو داره. پس $row[2] بی معنی هست (و وجود نداره). باید از$row[0] استفاده کنید.

البته، برای کنترل یوزر نیم پسورد کاربر کمتر از روش شما استفاده می کنند. معمولا کوئری (query) زیر رو اجرا میکنند و در صورتی که تعداد رکورد های برگشت داده شده بیشتر از 0 بود (رکوردی با شرایط مشخص شده پیدا شده بود- با استفاده از mysql_num_rows)، کاربر وارد میشه.

برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
البته، کوئری بالا امنیتش بسیار پایینه و باید امنیت رو بالا ببرید (با استفاده از توابعی مثل mysql_real_escape_string)

موفق باشید ./.

سلام، خيلي خيلي ممنون
البته ديشب متوجه اشتباهم شدم.
و حالا يك سوال ذيگه! :20:
اگه ممكنه بكيد اگر بخوام سايتم رو فارسي كنم بايد چيكار كنم؟
هرجايي كه سرچ كردم نوشتن كه بايد encoding، utf8 باشه، اين كارو ميكنم ولي بازم كلمات فارسي رو نامفهوم نمايش ميده تو صفحات وب!

راستي اين ارورها بخاطر چيه؟
mysql_query() [function.mysql-query]: Access denied for user 'ODBC'@'localhost' (using password: NO) in C:\wamp......

...mysql_query() [function.mysql-query]: A link to the server could not be established in C:\wamp