글쓰기 / 관리자
헤니l
헤니의 개발 공부
헤니l
전체 방문자
오늘
어제
  • 분류 전체보기 (100)
    • study (46)
      • JAVA (5)
      • PHP (24)
      • JS , jQuery (7)
      • 서버 (1)
      • 코딩테스트 (9)
    • 회사일기 (1)
    • 취준 (2)
    • 인천일보아카데미 교육과정 (51)
      • 인천일보아카데미 (51)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 비전공개발공부
  • 코딩공부
  • JS
  • CSS
  • 비전공자개발공부
  • 비전공개발자
  • 인천일보아카데미
  • 개발공부
  • php게시판
  • HTML공부
  • 비전공코딩공부
  • 코딩
  • HTML
  • 날씨어플만들기
  • 게시판구현
  • php회원가입
  • PHP
  • php게시판리스트
  • 자바스크립트
  • php계층형게시판

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
헤니l

헤니의 개발 공부

[PHP] 게시판 - 메인, 회원가입
study/PHP

[PHP] 게시판 - 메인, 회원가입

2022. 12. 28. 16:25

가장 기본인 회원가입 구현해보기 

 

 

회원가입 전에 session을 통해 로그인 여부를 확인먼저 해보자 

 

 

1. 메인

index.php

<?php

session_start();
 
    if(!isset($_SESSION['userid'])) {
        echo "<p>로그인이 필요합니다</p>";
        echo "<p><button onclick=\"window.location.href='login.php'\">로그인</button> </p>";
    } else {
        $userid = $_SESSION['userid'];
        echo "<p>WELCOME $userid";
        echo "<p><button onclick=\"window.location.href='logout.php'\">로그아웃</button></p>";
    } 
    
?>

index 파일에 입력하고 아이디가 필요한 페이지에 include 해주기

 

session_start();

세션 아이디가 존재하는지 확인하고 없으면 새로 만들어준다 

session이 필요한 곳에서는 상단에 꼭 넣어줘야한다 

session은 사용자가 브라우저를 닫아  연결을 끝내는 지점까지를 말한다

 

isset()

변수가 설정되어있는지 확인

 

 

 if(!isset($_SESSION['userid'])) { 

} else { 

 $userid = $_SESSION['userid'];

} 

 

session에 'userid'가 존재하지 않는다면 ~  {   

실행 코드 

   }   else {

   $userid 에 세션아이디 'userid' 저장  }

 

 

include한 파일에서 확인 가능!

 

 

2. 회원가입

아주 간단하게만 구현해봤다 

 

회원 db

create table member(
	 no int (10)  not null auto_increment primary key,		//회원번호
	 userid varchar(20)not null, 					//아이디
     userpw varchar(100) not null,					//비밀번호
     username varchar(20) not null, 					//이름
     date date not null							//가입날짜
);

auto_increment : 데이터를 추가할따마다 자동으로 1 증가 

 

 

 

join.php

 <?php
    include 'index.php';
    ?>
    <p>회원가입</p>
    <form method = "post" action ="join_ok.php">
        <table>
           <tr>
              <td>아이디</td>
              <td><input type="text" name=userid placeholder="아이디를 입력하세요" required></td>
           </tr>
           <tr>
              <td>비밀번호</td>
              <td><input type="text" name=userpw placeholder="비밀번호를 입력하세요" required></td>
           </tr>
           <tr>
              <td>이름</td>
              <td><input type="text" name=username placeholder="이름을 입력하세요" required></td>
           </tr>
        </table>

        <div class="btnset">
            <button type="submit" value="회원가입">회원가입</button>
        </div>

    </form>

- 상단에 index.php include해줘서 로그인 여부 확인해주고 

form에 담아서 데이터 전송, 

 

 

- form의 method는 post 

            action은 데이터를 전송할 주소, join_ok.php로 input에 입력된 값을 보내준다 

 

- required를 입력해주면 간단하게 필수 입력 설정

- button을 클릭하면 submit 됨 

 

 

 

 

 

join_ok.php

 

넘어온 데이터를 가지고 이 파일에서 db에 저장을 해준다 

 

 

<?php

include 'index.php';

$userid = $_POST[userid]; 
$userpw = $_POST[userpw];
$username = $_POST[username];
$date = date('Y-m-d');  


//비밀번호 암호화(비밀번호 값이 매번 달라짐)
$userpw_hash = password_hash($userpw, PASSWORD_DEFAULT);

//echo $userid;
//echo $userpw_hash;

$URL = 'login.php';

$query = "insert into member(userid,userpw,username,date)
            values('$userid','$userpw_hash','$username','$date')";            
$result = mysqli_query($connect,$query);

?>


<script>
    alert("<?php echo "회원가입이 완료되었습니다."?>");
    location.replace("<?php echo $URL?>");
</script>

 

 

$userid~~ 각각의 변수에 넘어온 값 저장하기 

 

$_POST['userid];

form으로 넘겨줬기때문에 POST,

form 안 input의 name값으로 전송된다 

 

 

 

password_hash()

password_hash는 비밀번호를 암호화 해주는 함수, 

db에서 확인할때마다 다른 비밀번호가 나온다 

 

(처음 member db 만들때 비밀번호를 varchar(10)으로 줘서 에러가 났었다

 비밀번호를 암호화 하게되면 특수문자가 포함된 긴 문자열이 비밀번호가 되기때문에 

충분한 범위를 지정해주어야 한다 )

 

$userpw_hash라는 변수에 비밀번호 암호화,

$userpw : 암호화할 문자열 ( 사용자가 입력해 POST로 받은 $userpw)

 

    'study/PHP' 카테고리의 다른 글
    • [PHP] 로그인, 로그아웃
    • [PHP] 회원가입(아이디 중복체크, 비밀번호 확인)
    • [PHP] mysql 연결, include
    • [PHP] 출력하는 법(echo/print), 변수 ($)
    헤니l
    헤니l

    티스토리툴바