2012-03-06 4 views
1

私はプログラミングフィールドの初心者です。データベーステーブルの値をPHPコードを使用して配列に取得する方法は?

私のコンセプトは、ユーザーIDとパスワードのチェックを行った後、ログインページからホームページに移動することです。私はフィールド 'user_id' & 'パスワード'を持つデータベーステーブルを持っています。だから私はテーブルから配列へのデータを取得し、それをユーザーが入力した値と比較したいと思っています...どうすれば最も簡単な方法が可能ですか?

+1

を試してみてください。 –

+0

'if statements'の使い方を学び、MySQLからデータを取得する方法を学びました。あなたはすでに'リダイレクト 'を学んだ後、それらをまとめました。 – MrCode

+0

$ sql = "user_id、user_detailsからパスワードを選択"; $ result = mysql_query($ sql、$ con); if(!$ result) { die( 'Error:'。mysql_error()); } $行= mysql_fetch_array($結果、MYSQL_BOTH); 私のコードはこのようなものです。次に、 '行'の内容を入力したテキストフィールドと比較したいのですが、どのようにしてforループを使って比較するのですか? – arunrc

答えて

0

私はいつも、私はあなたが連想配列を取得するので、あなたは、フィールド名で作業することができてそれがより良い動作するはずだと思う

$query = "..."; 
$sql = mysql_query($query); 
while($row = mysql_fetch_assoc($sql)) { 
    $user_id = $row['user_id']; 
    // ... 
} 

を使用しています。 SUM(*)を選択する場合は、$row['SUM(*)']を入力するか、SQLで名前を付ける必要があります。

+0

返信ありがとうございました... – arunrc

+0

またはwhile(list($ username、$ password、$ otherfield)= mysql_fetch_array($ sql))を実行すると、行[0]行[1] ){'、あなたのループで変数' $ username'、 '$ password'などを扱うことができるので、これはもっと簡単です – giorgio

0

あなたはほとんどリサーチを行っていませんが、あなたの質問はかなり広いですが、私はあなたにいくつかの手がかりを与えるかもしれない例を示します。

$username = mysql_real_escape_string($_POST['username']); //escaping the string, will use it in a query 
$password = $_POST['password']; 

$result = mysql_query("SELECT password FROM users WHERE username = '$username'"); 

if (mysql_num_rows($result) == 1) { // Expecting one result 
    $userdata = mysql_fetch_array($result); 
    if ($password == $userdata['password']) { 
     // USER IS AUTHORISED 
    } else { 
     // USER IS NOT AUTHORISED 
    } 
} 

これは簡単な例です。

の考慮事項:

  1. 私は、上記の例では、物事を単純化することでしたが、データベースに平文として、パスワードを保存しない - その代わりMD5ハッシュを格納します。 md5("string to hash")を使用してハッシュを生成できます。あなたが助けを必要とする場合は、別の質問を開始してください。
  2. ユーザーを承認した後、PHPセッションを使用してそのことを「覚えている」ことができます。もう一度、助けが必要な場合は別の質問をしてください。
+0

ありがとうございました....... – arunrc

-1

あなたがmysql_fech_arrayを()を使用していることを行うことができ、この

// HTML

<form method="post"> 
<input type="text" name="username" /> 
<input type="password" name="password" /> 
<input type="submit" name="login" value="login"/> 
</form> 

// PHP

if(isset($_POST['login'])) 
{ 
    $username=$_POST['username']; 
    $password=$_POST['password']; 

    $username=mysql_real_escape_string($username); 
    $password=mysql_real_escape_string($password); 
    $query = "select username,password from tableName 
      where username='$username' and password='$password'"; 
$sql = mysql_query($query); 

if(mysql_num_rows($sql) == 1) 
{ 
    // Login success save username in session redirect to homepage 
    header("location:homepage.php"); 
    exit(); 
} 
else 
{ 
    // Display error message 
} 
} 
+0

あなたのコードにはいくつかの間違いがあります。 HTMLでは、値に引用符がありません。あなたのPHPでは '$ _POST ['submit']'が設定されていません。mysql_real_escape_strings()はmysql_real_escape_string()でなければなりません。あなたの変数は 'username = '$のように一重引用符で囲む必要がありますユーザー名 'です。行数をチェックしているだけの場合は、(メモリを節約するために)ユーザー名とパスワードの両方を選択する必要はありません。 – MMM

+0

ありがとうございました.... – arunrc

0
$username="username"; 
    $password="password"; 
    //Specify MySQL database to connect to 
    $database="database"; 
    //Create connection and select the appropriate database 
    mysql_connect("localhost",$username,$password); 
    @mysql_select_db($database) or die("Unable to select database"); 

    //Get the username and password from posted form 
    $username = mysql_real_escape_string($_POST['username']); 
    $password = mysql_real_escape_string($_POST['password']); 

    //Build the query to look for users that exist with that username/password combination 
    //Here I'm using the users table within my database 
    $query = "SELECT * FROM users where username=\"$username\" and password = \"$password\" "; 
    //Retrieve the results of the query, and also aquire the number of records returned 
    $result = mysql_query($query); 
    $num = mysql_numrows($result); 

    //Check to see how many records are returned 
    if ($num>0) 
    { 
     //User login was successful 

     echo 'success login'; 
    } else { 
     //Login was unsuccessful 
     echo 'user name not found'; 
    } 
+0

SQL注入口都市 – MrCode

+0

ありがとうございました...このメソッドが好き... – arunrc

+0

@arunrc:このコードにはSQLインジェクションの礼儀性があるので、このコードを使用してください – MMM

関連する問題