본문 바로가기

카테고리 없음

PHP) 문의 게시판 만들기

비회원이 문의할 수 있도록 문의게시판을 만들어보았다.

해야할 것은 다음과 같다.

 

1. 비회원이 문의게시판에 접속할 수 있도록 할 것.

2. 비회원이 문의를 작성할 수 있을것.

3. 비회원의 문의를 타인이 볼 수 없도록 할 것

4. 해당 정보를 저장할 DB 구성

 

위 사항들을 숙지하며 문의 게시판을 제작해야한다.

우선 DB를 생성해줘야하는데 이는 이전에 작성한 DB에 대한 포스트를 참고하기를 바란다.

 

우선 비회원이 문의를 하기 위해서는 로그인 페이지에서 문의할 수 있도록 제작해야한다.

기본 로그인 코드에 페이지 링크와 버튼을 추가하면 쉽게 구성할 수 있다.

다음과 같은 페이지를 구성해준다. 이 때 상단의 문의하기를 클릭하면 문의 작성 페이지로 이동한다.

<?php
    $sql = "SELECT * FROM qna_post ORDER BY id";
    $connect_statment = $connect->prepare($sql);
    $connect_statment->execute();
    
    while($row = $connect_statment->fetch(PDO::FETCH_ASSOC))
		{	
		    echo '<tr>';
		    echo '<td>'.$row['id'].'</td>';
		    echo '<td><a href="qna_view.php?id='.$row['id'].'" >'.$row['title'].'</td>';
		    echo '</tr>';	
		    
		}
?>
<div class="row">
<button type="button" class="btn btn-dark" onclick="location.href='qna.php'">문의하기</button>
</div>
</body>

간략하게 코드를 구성하면 위와 같이 구성할 수 있다.

문의를 작성하려면 제목과 문의 내용 그리고 비밀번호를 입력해줘야한다.

작성이 완료되면 사전에 구성해놓았던 DB에 저장된다.

이전 페이지로 돌아가서 제출한 문의를 확인해보자.

테스트 문의1 을 클릭해보면 다음과 같이 비밀번호를 입력하도록 구성했다.

이때 자바스크립트의 prompt같은 함수를 이용해서 값을 받아올 수 있지만

값을 받아올때 이상이 생겨 페이지로 구성했다.

문의에 정상적으로 접속하면 다음과 같이 문의 내용이 출력된다.

<form action=" <?=$_SERVER[ "REQUEST_URI" ]?>" method='post'>
<input type="password" name="password">
<button type="submit" class="btn btn-dark">submit</button>
</form>

<?php 
    if(empty($_POST)) $password = "";
    else $password = $_POST['password'];
    
    if(empty($_GET['id']) === false && !empty($_POST))
    {   
    	    $id = $_GET['id'];
	    $sql = "SELECT * FROM qna_post where id = $id";
	   
	    $connect_statment = $connect->prepare($sql);
	    $connect_statment->execute();
	    $row = $connect_statment->fetch(PDO::FETCH_ASSOC);
	   
	   if($row['password'] == $password) 
	   {
	    	echo '<h3> 제목: '.$row['title']."<h3><hr>";
	    	echo '<h6> 본문 </h6>'.$row['content'].'<hr>';
	   }
	   else
	   {
	    	echo "<script>alert('비밀번호가 일치하지 않습니다.')</script>";
	    	echo "<script>location.replace('login.php')</script>";
        }
	    
    }
?>


<?php include 'footer.php' ?>

위 코드를 구성하며 비밀번호가 틀릴 경우 로그인 페이지로 자동으로 이동하게 된다.