본문 바로가기
WEB/Etc

[PHP] 로그인 페이지를 만들어보자 (DB사용)

by 얼빵이 2020. 10. 8.
반응형

 

 

IT관련 티스토리에는 누구나 다 있다는

로그인관련 페이지 제작글을 나도 올려볼까한다

디자인은 따로 하지 않겠다

부트스트랩이나 구글링으로 반응형 웹등 좋은 오픈소스가 많다

 

Login.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!doctype html>
<html>
<head>
    <meta charset="euc-kr">
    <title>얼빵이의 노트</title>
</head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<meta name="viewport" content="width=device-width, initial-scale=1">
<body>
 
<?php
#쿠키에서 로그인정보 불러오기#
if (isset($_COOKIE['userId'])){
    $userId = $_COOKIE['userId'];
    $idSaveCheck = "checked";
}
?>
<div>
    <form name="LoginForm" method="post" action="">
        <input type="text" name="userId" placeholder="ID" value="<?=$userId?>">
        <input type="password" name="userPw" placeholder="Password">
        <div><input type="checkbox" name="idSaveCheck" <?=$idSaveCheck?>><font color="gray">ID 저장하기</font></div>
        <input type="button" value="로그인" onclick="LoginCheck();">
    </form>
</div>

<!--로그인 폼 유효성 체크 부분-->
<script>
    function LoginCheck(){
        var F = document.LoginForm;
        if (F.userId.value==""){
            alert("ID를 입력해주세요");
            F.userId.focus();
            return false;
        }
        if (F.userPw.value==""){
            alert("PassWord를 입력해주세요");
            F.userPw.focus();
            return false;
        }
        F.action="LoginCheck.php";
        F.submit();
    }
</script>
</body>
</html>
 
cs

메인 로그인 페이지다

쿠키를 불러오는 부분과 로그인폼 유효성 검사부분만 보면 되겠다

isset($_COOKIE['userId'])

쿠키를 호출했을경우 해당 쿠키가 있으면 해당 값을 $userId 변수에 담고 $idSaveCheck 변수에 checked를 담아

저장된 ID정보를 자동으로 입력하고 ID저장하기 부분을 체크하게 된다

 

function LoginCheck()

로그인 폼 체크하는 부분이다

폼의 ID, PW가 공백일시 false를 반환하고 해당칸으로 포커스를 잡아준다

 

LoginCheck.php

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
<?php
session_start();
$userId = trim($_POST['userId']);
$userPw= trim($_POST['userPw']);
$idSaveCheck = trim($_POST['idSaveCheck']);
 
$mysqli = mysqli_connect("127.0.0.1","DB_ID","DB_PW","DB_SID","Port");
if ($mysqli->connect_errno) {
    die('Connect Error: '.$mysqli->connect_error);
}
 
if ($result = $mysqli->query("select * from LoginInfo where id='".$userId."' and password='".$userPw."'")){
    while ($row = $result->fetch_object()) {
                $Exist = "1";
    }
}
 
if ($Exist ==""){
    echo "<script>alert('로그인 정보가 다릅니다'); history.back();</script>";
    session_destroy();
    exit;
}
 
if ($idSaveCheck =="on"){
    setcookie('userId',$userId,time()+(86400*30),'/');
}else{
    setcookie('userId',$userId,time()-(86400*30),'/');
    unset($_COOKIE['userId']);
}
 
$_SESSION['userId'= $userId;
 
?>
<meta http-equiv='refresh' content='0;url=../LoginSuccess.php'>
 
cs

 

로그인 정보 체크하는 페이지이다

Mysql DB에서 정보를 가져와 체크하는 부분이다

mysqli_connect 부분에는 자신의 DB정보를 입력하고 쿼리를 수정해주면되고

DB를 사용하지 않는다면 $Exist를 결정하는 조건절을 다른 조건으로 변경해주면된다

넘겨받은 $idSaveCheck 체크박스의 값이 ON일경우 쿠키를 생성하는데 86400초 * 30일간 쿠키를 유지하게 된다

체크박스의 값이 ON이 아닐경우는 +가 -로 변경되어있는데 쿠키를 삭제하게된다

로그인에 성공하면 Session에 ID값을 넣어 세션을 유지하게되며

다음 페이지로 리다이렉트 되게된다

 

이로써 간단하게 로그인페이지 생성 방법에대해 알아보았다

궁금하신 부분은 댓글남겨주세요

 

 

 

반응형

'WEB > Etc' 카테고리의 다른 글

[vue.js] <li> v-for 에러  (0) 2021.11.01
[PHP] PHP7 mcrypt_encrypt, openssl_encrypt  (0) 2020.10.22
[PHP] CURL 홈페이지 파싱, 멀티  (0) 2020.09.29

댓글


TOP

TEL. 02.1234.5678 / 경기 성남시 분당구 판교역로