以前のログイン フォームに入力して送信した次の変数があります。
$login = $_POST['login'];
$password = $_POST['password'];
次のように PDO を使用して MySQL データベースに接続します。
require_once('agent-config.php');
try {
$conn = new PDO(A_DB_HOST, A_DB_USER, A_DB_PASSWORD);
$conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
次に、変数 $login と $password を使用して、一致するユーザー名とパスワードを選択します。
//Create SELECT query
$qry = $conn->prepare("SELECT * FROM members WHERE login=? AND passwd=?");
$qry->bindParam(1, $login);
$qry->bindParam(2, $password);
最後に、次を使用して、クエリが成功したかどうかを確認します。
//Check whether the query was successful or not
if($qry->execute())
$count = $qry->rowCount();
echo $count;
print_r($qry);
if($count >0) {
//Login Successful
session_regenerate_id();
$member = $qry->fetch(POD::FETCH_ASSOC);
$_SESSION['SESS_AGENT_ID'] = $member['member_id'];
$_SESSION['SESS_login'] = $member['login'];
session_write_close();
header("location: agent-member-index.php");
exit();
}else {
//Login failed
header("location: login-failed.php");
exit();
}
ただし、ログインとパスワードが正しく渡されておらず、$count の結果が 0 です。問題の 1 つは、データベースに保存されているパスワードが .md5 で暗号化されたパスワードであることです$password
。
$password = '.md5($_POST['password']).';
しかし、エラー T-STRING エラーを受け取りました。どんな助けでも大歓迎です!