회원가입 입력 양식을 수정하려고 하는데요.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

회원가입 입력 양식을 수정하려고 하는데요.. 정보

회원가입 입력 양식을 수정하려고 하는데요..

본문

안녕하세요.
작은 학교의 커뮤니티를 만들어 운영중입니다.
일단 회원가입 양식에 학번과 학과를 입력해야 하는데... 제가 왕초보인지라 register_form.php를 살짝 수정하여 '전화번호'를 '학번'으로, '홈페이지'를 '학과'로 수정해서.. 일일이 명단을 대조해서 확인하고 있습니다. (이미지 첨부합니다)

그런데 이게 문제가 있더라구요. 바로 학번이 겹치면 확인을 할 수 없다는 겁니다.
이미 회원 수가 꽤 되어서 일일이 체크를 하기에는 많이 빡센 상황이 되었습니다ㅠㅠ
register_form.php를 살짝 손봐서, 주민등록번호가 겹치면 가입이 안되는 것처럼 겹치는 학번(전화번호)는 가입을 아예 못하게 하고 싶은데요. 이게 가능할런지 잘 모르겠습니다.

아래는 register_form.php입니다.

 <?
include_once("./_common.php");

// 불법접근을 막도록 토큰생성
$token = md5(uniqid(rand(), true));
set_session("ss_token", $token);

if ($w == "") {
    // 회원 로그인을 한 경우 회원가입 할 수 없다
    // 경고창이 뜨는것을 막기위해 아래의 코드로 대체
    // alert("이미 로그인중이므로 회원 가입 하실 수 없습니다.", "./");
    if ($member[mb_id])
        goto_url($g4[path]);

    // 리퍼러 체크
    referer_check();

    if (!$_POST[agree])
        alert("회원가입약관의 내용에 동의하셔야 회원가입 하실 수 있습니다.", "./register.php");

    if (!$_POST[agree2])
        alert("개인정보취급방침의 내용에 동의하셔야 회원가입 하실 수 있습니다.", "./register.php");

    // 주민등록번호를 사용한다면 중복검사를 합니다.
    if ($config[cf_use_jumin]) {
        $jumin = sql_password($mb_jumin);
        $row = sql_fetch(" select mb_name from $g4[member_table] where mb_jumin = '$jumin' ");
        if ($row[mb_name]) {
            if ($row[mb_name] == $mb_name)
                alert("이미 가입되어 있습니다.");
            else
                alert("다른 이름으로 같은 주민등록번호가 이미 가입되어 있습니다.\\n\\n관리자에게 문의해 주십시오.");
        }

        // 주민등록번호의 7번째 한자리 숫자
        $y = substr($mb_jumin, 6, 1);

        // 성별은 F, M 으로 나눈다.
        // 주민등록번호의 7번째 자리가 홀수이면 남자(Male), 짝수이면 여자(Female)
        $sex = $y % 2 == 0 ? "F" : "M";

        // 생일은 8자리로 만든다 (나중에 검색을 편하게 하기 위함)
        // 주민등록번호 앞자리를 그냥 생일로 사용함 ㅠㅠ
        // 주민등록번호 7번째 자리를 따져서...
        $birth = substr($mb_jumin, 0, 6);
        if ($y == 9 || $y == 0) // 1800년대생 (계시려나?)
            $birth = "18" . $birth;
        else if ($y == 1 || $y == 2) // 1900년대생
            $birth = "19" . $birth;
        else if ($y == 3 || $y == 4) // 2000년대생
            $birth = "20" . $birth;
        else // 오류
            $birth = "xx" . $birth;
    }

    $member[mb_birth] = $birth;
    $member[mb_sex] = $sex;
    $member[mb_name] = $mb_name;

    $g4[title] = "회원 가입";
}
else if ($w == "u")
{
    if ($is_admin)
        alert("관리자의 회원정보는 관리자 화면에서 수정해 주십시오.", $g4[path]);

    if (!$member[mb_id])
        alert("로그인 후 이용하여 주십시오.", $g4[path]);

    if ($member[mb_id] != $mb_id)
        alert("로그인된 회원과 넘어온 정보가 서로 다릅니다.");

    /*
    if (!($member[mb_password] == sql_password($_POST[mb_password]) && $_POST[mb_password]))
        alert("패스워드가 틀립니다.");

    // 수정 후 다시 이 폼으로 돌아오기 위해 임시로 저장해 놓음
    set_session("ss_tmp_password", $_POST[mb_password]);
    */

    if ($_POST['mb_password']) {
        // 수정된 정보를 업데이트후 되돌아 온것이라면 패스워드가 암호화 된채로 넘어온것임
        if ($_POST['is_update'])
            $tmp_password = $_POST['mb_password'];
        else
            $tmp_password = sql_password($_POST['mb_password']);

        if ($member['mb_password'] != $tmp_password)
            alert("패스워드가 틀립니다.");
    }

    $g4[title] = "회원 정보 수정";

    $member[mb_email]      = get_text($member[mb_email]);
    $member[mb_homepage]    = get_text($member[mb_homepage]);
    $member[mb_password_q]  = get_text($member[mb_password_q]);
    $member[mb_password_a]  = get_text($member[mb_password_a]);
    $member[mb_birth]      = get_text($member[mb_birth]);
    $member[mb_tel]        = get_text($member[mb_tel]);
    $member[mb_hp]          = get_text($member[mb_hp]);
    $member[mb_addr1]      = get_text($member[mb_addr1]);
    $member[mb_addr2]      = get_text($member[mb_addr2]);
    $member[mb_signature]  = get_text($member[mb_signature]);
    $member[mb_recommend]  = get_text($member[mb_recommend]);
    $member[mb_profile]    = get_text($member[mb_profile]);
    $member[mb_1]          = get_text($member[mb_1]);
    $member[mb_2]          = get_text($member[mb_2]);
    $member[mb_3]          = get_text($member[mb_3]);
    $member[mb_4]          = get_text($member[mb_4]);
    $member[mb_5]          = get_text($member[mb_5]);
    $member[mb_6]          = get_text($member[mb_6]);
    $member[mb_7]          = get_text($member[mb_7]);
    $member[mb_8]          = get_text($member[mb_8]);
    $member[mb_9]          = get_text($member[mb_9]);
    $member[mb_10]          = get_text($member[mb_10]);
} else
    alert("w 값이 제대로 넘어오지 않았습니다.");

// 회원아이콘 경로
$mb_icon = "$g4[path]/data/member/".substr($member[mb_id],0,2)."/$member[mb_id].gif";
$member_skin_path = "$g4[path]/skin/member/$config[cf_member_skin]";

include_once("./_head.php");
include_once("./norobot.inc.php"); // 자동등록방지
include_once("$member_skin_path/register_form.skin.php");
include_once("./_tail.php");
?>



읽어주셔서 감사합니다!

댓글 전체

$sql = " select count(*) as cnt from $g4[member_table] where 학번 = '$학번'";
        $row = sql_fetch($sql);
        if ($row[cnt])
            alert("\'$학번\' 은(는) 이미 다른분이 사용중인 학번이므로 사용이 불가합니다.");

register_form_update.php 에 추가
감사합니다! 일단 73번째 줄 쯤에 복붙을 했습니다.
그런데.. 테스트로 회원 가입을 해봤는데 전혀 안걸러주더라구요..ㅠㅠ 이 전에 있던 학번을 그대로 입력해봐도 가입이 됩니다. 제가 뭔가 잘못한 걸까요?
혹시 주민등록번호 중복검사인
    if ($config[cf_use_jumin]) {
        $jumin = sql_password($mb_jumin);
        $row = sql_fetch(" select mb_name from $g4[member_table] where mb_jumin = '$jumin' ");
        if ($row[mb_name]) {
            if ($row[mb_name] == $mb_name)
                alert("이미 가입되어 있습니다.");
            else
                alert("다른 이름으로 같은 주민등록번호가 이미 가입되어 있습니다.\\n\\n관리자에게 문의해 주십시오.");


이걸 좀 수정하면 되지 않을까? 싶어서 수정해봤는데.. 안되네요
전체 66,554 |RSS
그누4 질문답변 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT