PDA

View Full Version : سوال: خطا در هنگام اجرای دستورات PHP



moseland
چهارشنبه 14 بهمن 1388, 19:12 عصر
سلام خدمت همه دوستام
کدی رو نوشتم که احراز هویت شخص رو تعیین می کنه وقتی اجرا می شه خطای زیر رو می ده. هر کجا که گشتم روش نوشتن کد به همین صورت بود؛ ولی این خطا رو میده.

mysql_num_rows(): supplied argument is not a valid MySQL result resource in C:\xampp\htdocs\login.php on line 24

moseland
چهارشنبه 14 بهمن 1388, 19:19 عصر
<?php
$connect = mysql_connect('localhost','root','');
mysql_select_db('dbshare',$connect);
if (!isset($_POST['user']))
exit();
$user = $_POST['user'];
$pass = $_POST['pass'];
$user = trim($user);
$sql="SELECT 'password'
FROM 'users'
WHERE 'username'= '$user'";

$result=mysql_query($sql);
if( mysql_num_rows($result)==1 && mysql_result($result,0)==$pass)
{
header("location:admin.php");
}
else
{
die("THE Username and/or password is incorrect !");
}
?>

rasoolgh1
چهارشنبه 14 بهمن 1388, 20:02 عصر
فکر کنم کوئری شما اشتباه باشه و خیلی چیرایه دیگه..

sama01
چهارشنبه 14 بهمن 1388, 20:37 عصر
شما result‌ را چاپ کنید ببینید چه ساختاری دارد.

امیـرحسین
چهارشنبه 14 بهمن 1388, 22:23 عصر
چقدر از کوتیشن توی کوئری استفاده می کنید؟ غیر از مورد آخری بقیه لازم نیستند.
نام جدول رو داخل کوتیشن نگذارید:

$sql="SELECT 'password'
FROM users
WHERE 'username'= '$user'";

moseland
پنج شنبه 15 بهمن 1388, 09:25 صبح
اگه توی قسمت شرط ، به جای متغیر از یک رشته که توی پایگاه داده هم هست استفاده کنم برنامه جواب می ده ولی برای متغیر جواب نمی ده.
لطفا راهنمایی کنید

$sql="SELECT 'password'
FROM users
WHERE 'username'= 'ali'";

امیـرحسین
پنج شنبه 15 بهمن 1388, 13:20 عصر
متغیر و رشته تفاوتی نداره.
یه نکته در ارتباط با کدهاتون. تابع isset وجود یک متغیر رو چک می کنه نه مقدارش رو. وقتی فرمی submit میشه، همه فیلدهای textاش توی مثلا POST_$ ساخته میشه ولی خالی هاش مقدار نداره. این یعنی اگر فیلد user توی فرم دارید. تابع isset در خط زیر هیچ وقت false نمیده:

if (!isset($_POST['user']))

afshin9032
پنج شنبه 15 بهمن 1388, 22:42 عصر
$sql="SELECT 'password'
FROM 'users'
WHERE 'username'= '$user'";

query بالا اشتباه است
در نام فيلد ها نبايد از كوتيشن استفاده كني
query صحيح


$sql="SELECT `password`
FROM `users`
WHERE `username`= '$user'";

moseland
دوشنبه 19 بهمن 1388, 20:00 عصر
query رو به این صورت تغییر دادم درست شد.


$sql = "SELECT 'password' FROM `users` WHERE `username` = '".$user."' AND `password` = '".$pass."' ";

puma2007
یک شنبه 09 اسفند 1388, 13:22 عصر
من وقتی از این کد یا هر کد دیگر که بهMySql نیاز دارد را می نویسم خطای زیر را می گیرد.
;(" ","mysql = mysql_connect("localhost", "root$

خطا:
Fatal error: Call to undefined function mysql_connect() in C:\inetpub\wwwroot\home\index.php on line 10

من از IIS و PHP5 و mysql5 استفاده می کنم و فکر می کنم PHP و MySQL یکدیگر را نمی شناسند و این خطا اتفاق می افتد. حالا شما می توانید مرا کمک کنید؟

امید امرایی
یک شنبه 09 اسفند 1388, 17:38 عصر
من وقتی از این کد یا هر کد دیگر که بهMySql نیاز دارد را می نویسم خطای زیر را می گیرد.
;(" ","mysql = mysql_connect("localhost", "root


لطفا سوالتون رو توی تاپیک دیگران نپرسید

اما بنده فکر کمی کنم علت اینه که شما دارید یک space رو به عنوان پسوورد ارسال می کنید
اون فاصله رو بردارید احتمالا درست می شه.