2012-04-22 10 views
0

可能性の重複:与えられた引数がありません:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL resultPHPログインスクリプト結果リソース

エラーに

はmysql_num_rows()を取得したユーザ名とパスワードイムを入力有効なMySQLの結果リソース

私にはデータベースがありません選択済み...

このエラーが何を意味しているのでしょうか。それはデータベースへの接続に問題があるのか​​、それとも構文の問題なのでしょうか。ここにユーザー名とパスワードのコードがあります

$query = mysql_query("SELECT * FROM Users WHERE username = '$user'"); 
       $numrows = mysql_num_rows($query); 
       if($numrows == 1){ 
        $row = mysql_fetch_assoc($query); 
        $dbid = $row['id']; 
        $dbuser = $row['username']; 
        $dbpass = $row['password']; 
        $dbactive = $row['active']; 

        if($password == $dbpass){ 
         if($dbactive == 1){ 

          //set session info 
          $_SESSION['userid'] = $dbid; 
          $_SESSION['username'] = $dbuser; 

          echo "You have been logged in as <b>$dbuser</b> Click here to go to member page."; 

         }else 
          echo "You must activate your account to login."; 

        }else 
         echo "You did not enter the correct password."; 


       }else 
        echo "The username you entered was not found."; 
      } 


     }else 
      echo "You must enter your username."; 

    } 

問題は$ query行にあります。最初の行

+1

'のvar_dump( "ユーザ名= '$のユーザーのユーザーSELECT * FROM");' + 'mysql_error();' – zerkms

+0

あなたの質問は失敗しました。なぜ$ result = mysql_query(...)かdie(mysql_error()) 'を実行してください。 –

答えて

0

zerkmsと同様に、mysql_error()をスクリーンに表示してみてください。以下のような 何か:あなたはこのすべてを行う前に

$query = mysql_query("your_query here"); 
if(!$query){ 
    echo 'Error! : ' . mysql_error(); 
} 

は、データベースに接続されていることを確認してください。たとえば: http://php.net/manual/en/function.mysql-connect.php

$link = mysql_connect('localhost', 'database_user', 'database_password'); 
if(!$link){ 
    die('Could not connect: ' . mysql_error()); 
} 

//select your db 
mysql_select_db("YOUR_DB_NAME",$link); 


$result = mysql_query("SELECT * FROM Users WHERE username = '$user'"); 
if(!$result){ 
    echo 'Error! ' . mysql_error(); 
} 
+0

私はあなたが言ったことをしてエコーは、私はデータベースが選択されていないと言った。 –

+0

データベースに接続しましたか? http://www.php.net/manual/en/function.mysql-connect.php –

+0

他のスクリプトでは、このmysql_connect( "hostname"、 "username"、 "password")のように見えます。 mysql_select_db( "Users"); –

1

最も可能性の高い原因は、あなたが接続されていないか、正しいデータベースを選択していない、あなたがこれを追跡するmysql_error()を使用する必要があるということです。 しかし私はまた、いくつかの論理的な混乱を参照してください、ここではスーパーシンプルなログインの例ですが、データベースのクエリではなく、PHPではなく、データベースにパスワードを保存する必要はありません。あなた..ハッシュユーザーアカウントのパスワード&エスケープユーザの入力もすべきことが役に立てば幸い

<?php 
session_start(); 
$db = mysql_connect('host','uesr','pass') or die(mysql_error()); 
mysql_select_db('database') or die(mysql_error()); 

if($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['username']) && isset($_POST['password'])){ 

    $username = mysql_real_escape_string($_POST['username']); 
    $password = mysql_real_escape_string($_POST['password']); 

    $query = mysql_query("SELECT `username`,`active` 
          FROM Users 
          WHERE username ='$user' && password='$password' && active=1 
          LIMIT 1"); 

    if(mysql_num_rows($query) == 1){ 
     //Log in user found 
     $row = mysql_fetch_assoc($query); 

     $_SESSION['username'] = $row['username']; 
     $_SESSION['active'] = $row['active']; 
     $_SESSION['logged_in'] =true; 
     header('Location: ./members.php'); 
     die; 
    }else{ 
     //failed login 
     $_SESSION['logged_in']=false; 
     $_SESSION['log_in_error']='Fail!! Account not active or incorrect login information!'; 
     header('Location: ./login.php'); 
     die; 
    } 
} 
?> 
+0

あなたのコードを試しましたが、同じエラーが発生しました –

+0

あなたのデータベースの名前は何ですか?データベースの名前をテーブル以外のものに変更してください。あなたは混乱しません。 –

+0

mysql_select_db( 'database')またはdie(mysql_error())も使用しています。 '@Terry Seidlerの回答にはこれが含まれていません。 –