0

私は2つのテーブルを持つデータベースを持っています。テーブル1にはID、ユーザー名、パスワードのみが保存され、テーブル2にはID、ユーザー名、日付、およびその他の情報が保存されます。私の質問は、ユーザーAがログインするたびに「プロフィールを表示」をクリックするようにコードを設定するにはどうすればよいかということです. 同じことがユーザー B、ユーザー C、ユーザー D などにも当てはまります。

ログの私のコードは次のとおりです。

session_start();

$username = $_POST['username'];
$password = $_POST['password'];

if ($username&&$password)

{
$connect = mysql_connect("localhost","root","") or die("cannot connect!");
mysql_select_db("uloaku") or die("cannot find data base!");
$query = mysql_query ("SELECT * FROM keyaku WHERE    username='".mysql_real_escape_string($username)."' AND   password='".mysql_real_escape_string($password)."'");
$numrows = mysql_num_rows($query);

if ($numrows!=0)
{
    while ($row = mysql_fetch_assoc($query))
    {
    $dbusername = $row['username'];
    $dbpassword = $row['password'];
}
    if ($username==$dbusername&&$password=$dbpassword)
{
    echo "Welcome $username";
}
else
    echo "Invalid Password";
}
else
die("Invalid User");

}

else
 die("Please Enter a UserName and Password.");

?> 

プロファイルを表示する私のコードは次のとおりです。

<?php
session_start();
$con = mysql_connect("localhost","root","");
mysql_select_db("uloaku", $con);
$count = 1;

$y = mysql_query("SELECT * FROM transaction WHERE id=24");
if(mysql_num_rows($y) != 0){

echo "<table border=\"1\" width=\"800\" >";
echo "<tr id=\"bold\">
<td>No</td>
<td align=\"center\" width=\"120\">Account Owner</td>
<td align=\"center\" width=\"120\">Deposit Date</td>
<td align=\"center\" id=\"bold\" width=\"120\">Current Balance</td>
<td align=\"center\" id=\"bold\" width=\"90\">Intrest</td>
<td align=\"center\" width=\"150\">Available Balance</td>
<td align=\"center\">Account Status</td>
</tr>";

while ($z = mysql_fetch_array($y, MYSQL_BOTH)){
        echo "<tr>
        <td>".$count++."</td>
        <td id=\"color\" align=\"center\">".$z[1]."</td>
        <td id=\"color\" align=\"center\">".$z[2]."</td>
        <td id=\"color\" align=\"center\">".$z[3]."</td>
        <td id=\"color\" align=\"center\">".$z[4]."</td>
        <td id=\"color\" align=\"center\">".$z[5]."</td>
        <td id=\"color3\" align=\"left\">".$z[6]."</td>
        </tr>";
    }
    echo "</table>";
    }
?>

誰かが私を助けてくれることを願っています。例や修正などの完全なコードが提供されれば、同様の問題を抱えている他の人が参照して修正できるようになります。ありがとう

4

2 に答える 2

2

これにはセッションを使用できます。情報が必要なすべてのスクリプトを で開始しsession_start()ます。その後、スーパーグローバル$_SESSIONを配列として使用できます (非常によく似てい$_POSTます)。-arrayの内容は、$_SESSIONリクエスト間で保存されます。

だからあなたができることは次のとおりです。

  • session_start()すべてのスクリプトの先頭に置く
  • ユーザーがログインすると、ID が$_SESSION配列に保存されます (; など$_SESSION['logged_in'] = $row['userid'])。
  • 後続のページ$_SESSION['logged_in']では、ログイン スクリプトを呼び出したユーザーの ID を取得するために使用できます。
于 2012-09-14T07:53:18.623 に答える
-1

おそらく次の行を調整する必要があります。

if ($username==$dbusername&&$password=$dbpassword)

if ($username==$dbusername&&$password==$dbpassword)

しかし、そのテストは不要です。

リクエストを mysql に送信することにより、行が返された場合に一致した場合は、行または値を使用していないため、行または値をフェッチする必要はありません。あなたが見つけたとき、あなたは有効なログインを得ました

if ($numrows!=0) 
于 2012-09-14T07:51:59.660 に答える