[PHP 7] 게시판 글 수정 및 삭제에 대해 비밀번호 설정하기 (1)

김와앙·2023년 10월 15일

PHP 7

목록 보기
9/20

수정

  1. DB에 pwd 칼럼 생성하기

VARCHAR - 200자로 하나 만들어준다.
(sing_board)

  1. 글쓰기 페이지에 비밀번호 영역 추가

  • type="password" 로 하면 글자가 가려서 나온다.
  1. 데이터 넘어간 페이지에 pwd 받는 부분 추가
.
.
.
$pwd = $_POST['pwd'];

.
.
 $pwd = mysqli_real_escape_string($connect, $pwd);
 .
 .
 .
  $query = "insert into sing_board(name, memo, subject, regedate, ip, pwd) 
    values('$name','$memo','$subject','$regedate','$ip,'$pwd')";
  • password() 함수
    password('$pwd') 이렇게 감싸주면 아래와 같이 비밀번호가 암호화됨.
    해킹 방지용으로 종종 사용함.

ip 옆이 pwd인데 위에는 password() 함수 미사용, 아래는 사용이다.
암호화 되어서 db 에 저장된다.

  1. pwd 비교
 if($idx){ 

        $query = "select * from sing_board where idx ='$idx' 
        and pwd=password('$pwd') ";📌
        $result = mysqli_query($connect, $query);
        $data = mysqli_fetch_array($result); 

        if(!$data['idx']){
           
            echo"

            <script>
                alert ('비밀번호가 달라 수정이 불가능합니다.');
                history.back(1); 
            </script>";

            exit; 

        }
  • pw 가 다르게 입력될 경우에는 자바스크립트로 경고창이 뜨도록 설정.
  • history.back(1); 은 바로 전 페이지로 가게 해주는 함수다.
    (경고창에 확인을 누르면 원래 수정 페이지로 돌아간다.)
  • 쿼리문으로 가져올 때, 비밀번호가 다르다면 아예 db를 가져오지 못하게 설정을 해놓고, 인덱스값이 없다면 그것은 비밀번호가 다르다는 말과 같다는걸 활용한다.
profile
greedy college ssu.tudent 👩‍🎓

0개의 댓글