私は最初の一歩を踏み出しましたphp
が、この解決できない問題に遭遇しました。MySQL
単純なデータベースを使用して、訪問者から提供された資格情報を識別する Web サイトを作成しようとしています。この時点では、ウェブサイトの全体的なセキュリティにはあまり関心がないことに注意してください。今問題に:
3つのファイルがあるとします。ファイルmain_login.php
には、ユーザーが Web サイトに入るために使用する必要があるフォームが保存されており、次のように呼び出していchecklogin.php
ます。
<form name="form1" method="post" action="checklogin.php">
checklogin.php
ユーザーからの入力 (名前とパスワード) がデータベースに含まれているかどうかを確認しています。それが正しい場合は、次の場所にリダイレクトしていますindex.php
。
// More unrelated php here....
$sql="SELECT * FROM $tbl_name WHERE username='$username' and password='$password'";
$result=mysql_query($sql);
// Mysql_num_row is counting table row
$count=mysql_num_rows($result);
// If result matched $username and $password, table row must be 1 row
if($count==1)
{
// Register $username, $password and redirect to file "index.php"
$_SESSION['username'] = $username;
$_SESSION['password'] = $password;
header("location:index.php");
}
else
{
echo "Wrong username or password";
}
最後にindex.php
、「$_SESSION[username]」が定義されているかどうかを確認しています。定義されていない場合は、ユーザーを main_login.php にリダイレクトします。
<?php
session_start();
if (!isset($_SESSION['username']))
{
header("location: main_login.php");
}
?>
// HTML code here...
今の問題: おそらく私はこれに多くの時間を費やしすぎて、明確に考えることができませんが、間違った資格情報を入力した場合とは異なり、正しいパスワードとユーザー名を入力するたびに、常に main_login.php にリダイレクトされます。これを解決する可能性が高い人はいますか?