私は最近、ユーザー名とパスワードをデータベースに正しく追加する方法を学びました。 私のデータベースはusersysであり、ユーザー情報を格納するテーブルはuserdbです。このテーブルには、username(プライマリ)、passwordの2つのカラムがあります。PHP/MySQLでユーザーを認証するにはどうすればよいですか?
登録フォームはうまく機能し、ユーザーの入力をデータベースに正しく入力し、ユーザーのユーザー名が既にデータベースに入っているかどうかを確認します。
これで、誰でもログインスクリプトの作成を手伝うことができるかどうかを尋ねています。これまでのところ、これは私が持っているものです:
$username = $_POST['username'];
$password = $_POST['password'];
$displayname = $_POST['username'];
$displayname = strtolower($displayname);
$displayname = ucfirst($displayname);
echo "Your username: " . $displayname . "<br />";
mysql_connect("localhost", "root", "******") or die(mysql_error());
echo "Connected to MySQL<br />";
mysql_select_db("usersys") or die(mysql_error());
echo "Connected to Database <br />";
$lcusername = strtolower($username);
$esclcusername = mysql_real_escape_string($lcusername);
$escpassword = mysql_real_escape_string($password);
$result = mysql_query("SELECT * FROM userdb WHERE username='$esclcusername' AND password='$escpassword'") or die(mysql_error());
$row = mysql_fetch_array($result);
$validateUser = $row['username'];
$validatePass = $row['password'];
POSTデータは以前のログインページからのものです。このスクリプトでテーブル(userdb)を確認し、前のフォームから入力したユーザー名の行を見つけて、入力されたパスワードがuserdbテーブルのその行に設定されているユーザー名のパスワードと一致することを確認します。
私はまた、入力されたユーザー名が存在するかどうかを確認するために、テーブルに見つからない場合、入力されたユーザー名が存在しないことをユーザーに知らせる方法も必要です。
を次のように、本当に、それは複雑だから、ユーザーを認証するための簡単な方法は、可能な限り既存の認証フレームワークを再使用する必要があります。たとえば、フレームワークにとらわれずデータベースに依存しないhttps://github.com/delight-im/PHP-Authを見てください。 – caw