-5
내 웹 사이트의 로그인 작업 중입니다. 로그인 할 때 사용자가 이미 데이터베이스에 있는지 확인하지 않습니다. 등록하지 않아도 누구나 로그인 할 수 있습니다.등록되지 않은 사용자는 누구나 로그인 할 수 있습니다. (PHP)
이것은 로그인 코드입니다. 사용자 계정이 데이터베이스에 존재하는 경우
<?php
//database details
$servername = "localhost";
$username = "myname";
$password = "******";
$dbname = "mydb";
// Create connection
$conn = mysqli_connect($servername, $username, $password, $dbname);
session_start();
if(isset($_POST['email']))
{
$email = $_POST ['email'];
$password =$_POST ['password'];
$query = "SELECT * FROM Users WHERE Email='$email' AND Password='$password'";
$result = mysqli_query($conn, $query);
if($result==1)
{
header('Location: profile.php');
exit();
}
else
{
header('Location: failedlogin.html');
exit();
}
}
?>
1. SQL 주입. 2. 평문 암호를 DB에 저장하지 마십시오! 3.'$ result'는 행의 수가 아니라'true/false'를 반환합니다. – panther
mysqli_query()는 성공하면 true를 리턴한다. 쿼리에 오류가 없음을 의미합니다. 또한이 코드가 라이브 서버에 없기를 바랍니다. SQL injection이 일어나기를 기다리고 있습니다 – Akintunde007
또한 비밀번호를 저장하지 마십시오. 당신은'password_hash'를 사용할 수 있습니다 – Eddie