기본 로그인 샘플에 약간 문제가 있습니다. 사용자 이름과 암호 조합이 올바르지 않으면 else 문에 오류 메시지가 표시되지 않습니다. 루프 때문에 while
일까요? 도와 줘, 제발.코드는 else 문에 오류 메시지를 표시하지 않습니다.
<?php
$db = new PDO('mysql:host=127.0.0.1;dbname=project', 'root', '');
if(isset($_POST['username'], $_POST['password'])) {
$username = $_POST['username'];
$password = $_POST['password'];
$result = $db->query("SELECT * FROM users WHERE username='$username' AND password='$password'");
if(empty($username) || empty($password)) {
echo 'Empty';
}
while($row = $result->fetch(PDO::FETCH_OBJ)) {
if($username == $row->username && $password == $row->password) {
echo 'Logged in';
} else {
echo 'Incorrect username and password combination';
}
}
}
이 질문에 대한 답을 찾았다면 [SQL-Injection] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection)을 읽어 보시기 바랍니다. -in-php) – Naruto
_ "표시되지 않음"_ 아무 것도 화면에 표시되지 않거나 대신 "로그인 됨"에코가 표시됩니까? – Epodax
@Epodax 올바른 조합 일 경우 "로그인 함"이 표시됩니다. 그렇지 않은 경우 아무 것도 표시하지 않습니다. (null) – JTrixx16