2016-08-18 35 views
-2

申し訳ありませんが、私は非常に簡単なログインを設定してデータベースにサインアップしています。PHPデータベースユーザの選択

ただし、私が作成したページのうち、ユーザーがアカウント情報(ユーザー名とメールアドレス)を確認できる場所は、完全には機能していません。

ID、ユーザー名、電子メール、パスワードの4つの列を持つデータベースがあります。

私がやっているのは、データベース(ユーザは誰)からのユーザ情報を取得し、そのユーザ名と電子メールをページに表示することだけです。 (ログインしているユーザ):

<?php 
// SQL query 
$strSQL = "SELECT * FROM users"; 

// Execute the query (the recordset $rs contains the result) 
$rs = mysql_query($strSQL); 

// Loop the recordset $rs 
// Each row will be made into an array ($row) using mysql_fetch_array 
while($row = mysql_fetch_array($rs)) { 

    // Write the value of the column FirstName (which is now in the array $row) 
    echo $row['email'] . "<br />"; 
    echo $_SESSION['username']; 

    } 

// Close the database connection 
mysql_close(); 
?> 

私は」

の問題は、私はそれが一人のユーザを選択したい

コードコードは、データベース内のすべてのユーザーをログに記録されていることです私は助けてくれてありがとう!

+0

注:「mysql」ではなく「mysqli」を使用してください。これは推奨されなくなり、すぐに削除されるためです。 –

答えて

0

あなたのSQLクエリは次のようになります...

"SELECT * FROM users WHERE ID = '$user_id'" 

は、任意のSQLを修正することを忘れないでくださいあなたはおそらくあなたのログインセッションで$_SESSIONusername値を格納する必要が

$user_id = mysql_real_escape_string($user_id); 
+0

申し訳ありません、私はそれをテストします。 –

2

を脆弱性。

次にログインしているユーザを検索するために $_SESSIONに格納された値を使用して
if (!isset($_SESSION)) { 
    session_start(); 
    $_SESSION['id'] = the_id_of_your_logged_username; 
} 

session_start(); 
$id = $_SESSION['id']; 
$query = "SELECT * FROM users WHERE id='$id'"; 

これらの方法で、ログオンしたユーザーを取得することができます。ユーザーのログイン方法とプロファイルを直接取得する方法だけです。

+0

正当なものと思われる、私はテストします。 –

+0

'$ _SESSION'と他のグローバル変数についてもっと詳しく調べることができます。 –

+0

私はほとんどそれを持っていると思いますが、問題は私が$ _SESSION ['id'] = the_id_of_your_logged_usernameに入れるべきものがわからないことです。ライン。 idの値を2にすると、データベースの2番目の行が記録されますが、これは目的ではなく、コードを入力してログインしたユーザーがデータを表示するようにします。 –