본문 바로가기
Programming

[PHP 강좌] 43.설치형 게시판 만들기 6 - 사용자 공통파일, 회원가입

by Mizix 2010. 2. 11.
반응형
오늘은 사용자페이지에서 사용하는 공통파일과 사용자들이 회원가입을 하는 페이지를 배워보도록 하겠습니다.

[사용자 페이지 공통파일]
<?
include "./inc/config.php";
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<title></title>
</head>
<table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
    <tr>
        <td align="center" valign="middle" colspan="3" style="font-zise:15px;font-weight:bold;">
        PHPer's Heaven 설치형게시판
        </td>
    </tr>
    <?
    // 1.로그인 여부에 따라 상단 메뉴가 다르게
    if($_SESSION[user_idx]){
    ?>
    <tr>
        <?
        // 로그인한 사람이 관리자면 관리자페이지 링크를, 아니면 홈 링크를
        if($_SESSION[user_level] == 9){
        ?>
        <td align="center" valign="middle" style="font-size:12px;"><a href="./admin_index.php">관리자페이지</a></td>
        <?}else{?>
        <td align="center" valign="middle" style="font-size:12px;"><a href="./index.php">홈</a></td>
        <?}?>

        <td align="center" valign="middle" style="font-size:12px;"><a href="./member_modify.php">정보수정</a></td>
        <td align="center" valign="middle" style="font-size:12px;"><a href="./logout.php">로그아웃</a></td>
    </tr>
    <?}else{?>
    <tr>
        <td align="center" valign="middle" style="font-size:12px;"><a href="./index.php">홈</a></td>
        <td align="center" valign="middle" style="font-size:12px;"><a href="./member_join.php">회원가입</a></td>
        <td align="center" valign="middle" style="font-size:12px;"><a href="./login.php">로그인</a></td>
    </tr>
    <?}?>
</table>
<br>
<table style="width:1000px;height:30px;border:5px #CCCCCC solid;">
    <tr>
<?
// 2. 생성된 게시판 목록 불러와 링크 만들기
    $sql = "select * from bd__board_config where 1 order by bc_idx desc";
    $data = sql_list($sql);
    for($i=0;$i<count($data);$i++){
        // 3. 게시판 목록을 보여주는 파일에 게시판 종류를 구분하는 bc_code 를 get 으로 연결
?>
        <td><a href="./board_list.php?bc_code=<?=$data[$i][bc_code]?>"><?=$data[$i][bc_name]?></a></td>
    <?
    }
    ?>
    </tr>
</table>
[head.php 소스]

특별한 부분은 2번부터 입니다.

어드민에서 생성한 게시판들의 목록을 가져다 모두 동일하게 글목록을 보여주는  파일인 board_list.php 에 get 값으로 어떤 게시판인지 구분하기 위한 bc_code  값을 같이 보내게 하는 링크를 만들어 줍니다.

만들어진 index.php 파일은 다음과 같습니다.
<?
// 1. 공통 인클루드 파일
include ("./head.php");
?>
[index.php 소스]

[실행화면]



다음은 회원가입입니다.

예전에 관계형 게시판의 회워가입과 동일합니다.

단 회원정보 저장시에 m_level 을 기록해 주는것이 차이가있습니다.

<?
// 1. 공통 인클루드 파일
include ("./head.php");

// 2. 로그인한 회원은 뒤로 보내기
if($_SESSION[user_id]){
    ?>
    <script>
        alert("로그인 하신 상태입니다.");
        history.back();
    </script>
    <?
}
// 3. 입력 HTML 출력
?>
<br/>
<table style="width:1000px;height:50px;border:5px #CCCCCC solid;">
    <tr>
        <td align="center" valign="middle" style="font-zise:15px;font-weight:bold;">회원가입</td>
    </tr>
</table>
<br/>
<form name="registForm" method="post" action="./member_join_save.php" style="margin:0px;">
<table style="width:1000px;height:50px;border:0px;">
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">아이디</td& gt;
        <td align="left" valign="middle" style="width:800px;height:50px;"><input type="text" name="m_id" style="width:380px;"></td>
    </tr>
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">이름</td& gt;
        <td align="left" valign="middle" style="width:800px;height:50px;"><input type="text" name="m_name" style="width:380px;"></td>
    </tr>
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">비밀번호< /td>
        <td align="left" valign="middle" style="width:800px;height:50px;"><input type="password" name="m_pass" style="width:380px;"></td>
    </tr>
    <tr>
        <td align="center" valign="middle" style="width:200px;height:50px;background-color:#CCCCCC;">비밀번호 확인</td>
        <td align="left" valign="middle" style="width:800px;height:50px;"><input type="password" name="m_pass2" style="width:380px;"></td>
    </tr>
    <!-- 4. 회원가입 버튼 클릭시 입력필드 검사 함수 member_save 실행 -->
    <tr>
        <td align="center" valign="middle" colspan="2"><input type="button" value=" 회원가입 " onClick="member_save();"></td>
    </tr>
</table>
</form>
<script>
// 5.입력필드 검사함수
function member_save()
{
    // 6.form 을 f 에 지정
    var f = document.registForm;

    // 7.입력폼 검사
    if(f.m_id.value == ""){
        // 8.값이 없으면 경고창으로 메세지 출력 후 함수 종료
        alert("아이디를 입력해 주세요.");
        return false;
    }

    if(f.m_name.value == ""){
        alert("이름을 입력해 주세요.");
        return false;
    }

    if(f.m_pass.value == ""){
        alert("비밀번호를 입력해 주세요.");
        return false;
    }

    if(f.m_pass.value != f.m_pass2.value){
        // 9.비밀번호와 확인이 서로 다르면 경고창으로 메세지 출력 후 함수 종료
        alert("비밀번호를 확인해 주세요.");
        return false;
    }

    // 10.검사가 성공이면 form 을 submit 한다
    f.submit();

}
</script>
[member_join.php 소스]

<?
// 1. 공통 인클루드 파일
include ("./head.php");

// 2. 로그인한 회원은 뒤로 보내기
if($_SESSION[user_id]){
    ?>
    <script>
        alert("로그인 하신 상태입니다.");
        history.back();
    </script>
    <?
}

// 3. 넘어온 변수 검사
if(trim($_POST[m_id]) == ""){
    ?>
    <script>
        alert("아이디를 입력해 주세요.");
        history.back();
    </script>
    <?
    exit;
}

if(trim($_POST[m_name]) == ""){
    ?>
    <script>
        alert("이름을 입력해 주세요.");
        history.back();
    </script>
    <?
    exit;
}

if($_POST[m_pass] == ""){
    ?>
    <script>
        alert("비밀번호를 입력해 주세요.");
        history.back();
    </script>
    <?
    exit;
}

if($_POST[m_pass] != $_POST[m_pass2]){
    ?>
    <script>
        alert("비밀번호를 확인해 주세요.");
        history.back();
    </script>
    <?
    exit;
}

// 4. 같은 아이디가 있는지 검사
$chk_sql = "select * from bd__member where m_id = '".trim($_POST[m_id])."'";
$chk_result = sql_query($chk_sql);
$chk_data = mysql_fetch_array($chk_result);

// 5. 가입된 아이디가 있으면 되돌리기
if($chk_data[m_idx]){
    ?>
    <script>
        alert("이미 가입된 아이디 입니다.");
        history.back();
    </script>
    <?
    exit;
}

// 6. 회원정보 적기
$sql = "insert into bd__member (m_id, m_name, m_pass, m_level) values ('".trim($_POST[m_id])."', '".trim($_POST[m_name])."', '".$_POST[m_pass]."', 1)";
sql_query($sql);

// 7. 로그인 페이지로 보내기
?>
<script>
alert("회 원가입이 완료 되었습니다.");
location.replace("./index.php");
</script>
[member_join_save.php 소스]

그럼 다음시간에는 사용자 로그인과 정보수정을 배우겠습니다.
반응형