MySQL DB를 연동하여 HTML 및 PHP 세션을 이용하여 로그인/로그아웃/회원가입 페이지 구현
main.php
|
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
session_start();
if(!isset($_SESSION['userid'])) //세션이 존재하지 않을 때
{
header ('Location: ./login.html');
}
echo "홈(로그인 성공)";
echo "<a href=logout.php>로그아웃</a>";
?>
|
cs |
세션 변수의 값이 없다면(=로그인 상태가 아니라면) 로그인 페이지로 이동한다.
세션 변수가 존재한다면 로그인 성공 메시지 출력과 로그아웃 링크 생성
login.html
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
<html>
<head>
<title>login page</title>
<meta charset="utf-8">
</head>
<body>
<form method="post" action="/login_check.php">
<div>
<label for="id">ID </label>
<input type="text" name="id"/>
</div>
<div>
<label for="pw">PW </label>
<input type="text" name="pw"/>
</div>
<div class="button">
<button type="submit"> login </button>
</div>
</form>
<button onclick="location.href='signUp.html'"> sign up </button>
</body>
</html>
|
cs |
회원 정보가 이미 등록되어 있다면 ID, PW를 입력한 후 login 버튼 클릭 후 login_check
회원 정보가 등록되어 있지 않다면 sign up 버튼 클릭 후 회원가입 페이지로 이동
singUp.html
|
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
|
<html>
<head>
<title> Sign Up </title>
<meta charset="utf-8">
</head>
<body>
<form action = "./signUp.php" method="post">
<div>
<label for="id"> ID </label>
<input type="text" name="id"/>
</div>
<div>
<label for="pw"> PW </label>
<input type="text" name="pw"/>
</div>
<div>
<label for="pwc"> pwc </label>
<input type="text" name="pwc"/>
</div>
<div>
<label for="name"> Name </label>
<input type="text" name="name"/>
</div>
<div>
<label for="email"> E-mail </label>
<input type="text" name="email"/>
</div>
<div class="button">
<input type="submit" value="submit">
</div>
</form>
</body>
</html>
|
cs |
회원 정보 입력 후 버튼 클릭 시 signUp.php로 이동
signUp.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
|
<?php
$id=$_POST['id'];
$pw=$_POST['pw'];
$pwc=$_POST['pwc'];
$name=$_POST['name'];
$email=$_POST['email'];
if($pw!=$pwc) //비밀번호와 비밀번호 확인 문자열이 맞지 않을 경우
{
echo "비밀번호와 비밀번호 확인이 서로 다릅니다.";
echo "<a href=signUp.html>back page</a>";
exit();
}
if($id==NULL || $pw==NULL || $name==NULL || $email==NULL) //
{
echo "빈 칸을 모두 채워주세요";
echo "<a href=signUp.html>back page</a>";
exit();
}
$mysqli=mysqli_connect("localhost","root","quf235689","test2");
$check="SELECT *from user_info WHERE userid='$id'";
$result=$mysqli->query($check);
if($result->num_rows==1)
{
echo "중복된 id입니다.";
echo "<a href=signUp.html>back page</a>";
exit();
}
$signup=mysqli_query($mysqli,"INSERT INTO user_info (userid,userpw,name,email)
VALUES ('$id','$pw','$name','$email')");
if($signup){
echo "sign up success";
}
?>
|
cs |
회원가입 시 필터
1. 비밀번호 재확인
2. 회원정보 빈 칸(공백 입력)
3. 아이디 중복
회원가입 후 login.html에서 로그인 성공 시 login_check.php로 이동
login_check.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
|
<?php
session_start();
$id=$_POST['id'];
$pw=$_POST['pw'];
$mysqli=mysqli_connect("localhost","root","비밀번호","test2");
$check="SELECT * FROM user_info WHERE userid='$id'";
$result=$mysqli->query($check);
if($result->num_rows==1){
$row=$result->fetch_array(MYSQLI_ASSOC); //하나의 열을 배열로 가져오기
if($row['userpw']==$pw){ //MYSQLI_ASSOC 필드명으로 첨자 가능
$_SESSION['userid']=$id; //로그인 성공 시 세션 변수 만들기
if(isset($_SESSION['userid'])) //세션 변수가 참일 때
{
header('Location: ./main.php'); //로그인 성공 시 페이지 이동
}
else{
echo "세션 저장 실패";
}
}
else{
echo "wrong id or pw";
}
}
else{
echo "wrong id or pw";
}
?>
|
cs |
로그인 성공 시 세션 변수 생성 후 main.php 이동
main.php에서 로그인을 성공했을 때 로그아웃 링크가 생성된다.
logout.php
|
1
2
3
4
5
6
7
|
<?php
session_start();
$res=session_destroy(); //모든 세션 변수 지우기
if($res){
header('Location: ./main.php'); // 로그아웃 성공 시 로그인 페이지로 이동
}
?>
|
cs |
댓글 0
| 번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
|---|---|---|---|---|
| 51 | [아두이노] 장애물 감지 자율주행 자동차 | proin | 2018.05.14 | 1 |
| 50 | [아두이노] DC 모터의 제어(모터드라이버 L298N) 1편 | proin | 2018.05.14 | 3 |
| 49 | 아두이노 탱크 연결 사진 | proin | 2018.05.14 | 2 |
| 48 | 오픈소스 + 알고리즘 | proin | 2018.05.14 | 1 |
| 47 | OpenCV #7-2 Example (허프 변환으로 영상 내 선 감지) | proin | 2018.05.14 | 0 |
| 46 | 롤 모델 | proin | 2018.05.14 | 2 |
| 45 | 사진에서 엣지 따오는 소스 | proin | 2018.05.14 | 1 |
| 44 | 카메라 여는 소스 | proin | 2018.05.14 | 1 |
| 43 | Visual Studio 2017에서 OpenCV 3.4를 사용하는 방법 | proin | 2018.05.14 | 0 |
| 42 | 모터 돌리는 소스 | proin | 2018.05.14 | 2 |
| 41 | project | proin | 2018.05.14 | 1 |
| 40 | [25호]DIY 프로젝트 공모전- 차선 인식을 통한 차량의 능동적 안전시스템 개발 | proin | 2018.05.14 | 1 |
| » | [Web] PHP 로그인/로그아웃/회원가입 {원본} | proin | 2018.05.14 | 1 |
| 38 | html 출력 {원본} | proin | 2018.05.14 | 1 |
| 37 | 세션을 사용한 PHP 로그인/로그아웃 소스 {원본} | proin | 2018.05.14 | 1 |
| 36 | 세션을 사용한 PHP 로그인/로그아웃 소스 | proin | 2018.05.03 | 2 |
| 35 | html 출력 | proin | 2018.05.02 | 1 |
| 34 | 옥션 로그인 부분 소스 | proin | 2018.05.02 | 0 |
| 33 | XML과 DB | project2018 | 2018.05.02 | 3 |
| 32 | 컨버터 | proin | 2018.05.02 | 0 |