▶ 식별과 인증이 동시에 이루어지는 경우
핵심은 SELECT 문에서 id와 pw를 같이 조회하고 해당 데이터가 없으면 로그인을 실패하게끔 만드는 것.
index1.php
<?php
include("dbconn.php");
$jj_id = trim($_POST['jj_id']);
$jj_password = trim($_POST['jj_password']);
if (!$jj_id || !$jj_password) {
echo "<script>alert('No blank or other chars');</script>";
echo "<script>location.replace('./index.php');</script>";
exit;
}
$sql = " SELECT * FROM member WHERE jj_id = '$jj_id' and jj_password = '$jj_password' ";
$result = mysqli_query($conn, $sql);
$jj = mysqli_fetch_array($result);
if (!$jj['jj_id'] || !$jj['jj_password']) {
echo "<script>alert('Unassigned ID or Wrong Password, please check again!');</script>";
echo "<script>location.replace('index1.php');</script>";
exit;
}
$_SESSION['ss_jj_id'] = $jj_id;
mysqli_close($conn);
if(isset($_SESSION['ss_jj_id'])){
echo "<script>alert('Login success!');</script>";
echo "<script>location.replace('after_login.php');</script>";
▶ 식별과 인증이 따로 이루어지는 경우
핵심은 id값을 받아와서 쿼리문으로 pw값을 불러오는 것
index2.php
<?php
include("dbconn.php");
$jj_id = trim($_POST['jj_id']);
$jj_password = trim($_POST['jj_password']);
if (!$jj_id || !$jj_password) {
echo "<script>alert('No blank or other chars');</script>";
echo "<script>location.replace('./index.php');</script>";
exit;
}
$sql = " SELECT jj_password FROM member WHERE jj_id = '$jj_id' ";
$result = mysqli_query($conn, $sql);
$jj_pw = mysqli_fetch_array($result);
if (!($jj_pw[0] === $jj_password)) {
echo "<script>alert('unassigned ID or wrong password, please check again!');</script>";
echo "<script>location.replace('index2.php');</script>";
exit;
}
$_SESSION['ss_jj_id'] = $jj_id;
mysqli_close($conn);
if(isset($_SESSION['ss_jj_id'])){
echo "<script>alert('Login success!');</script>";
echo "<script>location.replace('after_login.php');</script>";
}
▶ 식별과 인증이 동시에 이루어지는 경우(with Hash)
핵심은 비밀번호의 해쉬과정을 거치도록 하는 것.
index3.php
<?php
include("dbconn.php");
$jj_id = trim($_POST['jj_id']);
$jj_password = trim($_POST['jj_password']);
if (!$jj_id || !$jj_password) {
echo "<script>alert('No blank or other chars');</script>";
echo "<script>location.replace('./index.php');</script>";
exit;
}
$md5_password = md5($jj_password);
$sql = " SELECT * FROM md5member WHERE jj_id = '$jj_id' and jj_password = '$md5_password' ";
$result = mysqli_query($conn, $sql);
$jj = mysqli_fetch_array($result);
if (!$jj['jj_id'] || !$jj['jj_password']) {
echo "<script>alert('Unassigned ID or Wrong Password, please check again!');</script>";
echo "<script>location.replace('index3.php');</script>";
exit;
}
$_SESSION['ss_jj_id'] = $jj_id;
mysqli_close($conn);
if(isset($_SESSION['ss_jj_id'])){
echo "<script>alert('Login success!');</script>";
echo "<script>location.replace('after_login.php');</script>";
}
▶ 식별과 인증이 따로 이루어지는 경우(with Hash)
핵심은 식별 인증 과정을 따로하되, 비밀번호의 해쉬과정을 거치도록 하는 것.
index4.php
<?php
include("dbconn.php");
$jj_id = trim($_POST['jj_id']);
$jj_password = trim($_POST['jj_password']);
if (!$jj_id || !$jj_password) {
echo "<script>alert('No blank or other chars');</script>";
echo "<script>location.replace('./index.php');</script>";
exit;
}
$md5_password = md5($jj_password);
$sql = " SELECT jj_password FROM md5member WHERE jj_id = '$jj_id' ";
$result = mysqli_query($conn, $sql);
$jj_pw = mysqli_fetch_array($result);
if (!($jj_pw[0] === $md5_password)) {
echo "<script>alert('Wrong password, please check again!');</script>";
echo "<script>location.replace('index4.php');</script>";
exit;
}
$_SESSION['ss_jj_id'] = $jj_id;
mysqli_close($conn);
if(isset($_SESSION['ss_jj_id'])){
echo "<script>alert('Login success!');</script>";
echo "<script>location.replace('after_login.php');</script>";
}
▶ 식별과 인증이 동시에 이루어지는 경우(with 개행)
SELECT문을 지정하면서 enter로 줄바꿈을 해줘서 개행처리가 되게끔 하는 것이 포인트
index5.php
<?php
include("dbconn.php");
$jj_id = trim($_POST['jj_id']);
$jj_password = trim($_POST['jj_password']);
if (!$jj_id || !$jj_password) {
echo "<script>alert('No blank or other chars');</script>";
echo "<script>location.replace('./index.php');</script>";
exit;
}
$sql = " SELECT * FROM member WHERE jj_id = '$jj_id'
and jj_password = '$jj_password' ";
$result = mysqli_query($conn, $sql);
$jj = mysqli_fetch_array($result);
if (!$jj['jj_id'] || !$jj['jj_password']) {
echo "<script>alert('Unassigned ID or Wrong Password, please check again!');</script>";
echo "<script>location.replace('index5.php');</script>";
exit;
}
$_SESSION['ss_jj_id'] = $jj_id;
mysqli_close($conn);
if(isset($_SESSION['ss_jj_id'])){
echo "<script>alert('Login success!');</script>";
echo "<script>location.replace('after_login.php');</script>";
}
'Project > project 1 - JH community' 카테고리의 다른 글
[MySQL] 우체국 주소db 저장하기 (0) | 2022.11.02 |
---|---|
[php] 로그인 페이지 만들기 - 3 (0) | 2022.10.30 |
[php] 로그인 페이지 만들기 - 2 (0) | 2022.10.28 |
[php]로그인 페이지 만들기 - 1.5(피드백) (0) | 2022.10.19 |
[php] 로그인 페이지 만들기 - 1 (0) | 2022.10.18 |
댓글