테스트 사이트 - 개발 중인 베타 버전입니다

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

· 13년 전 · 1638 · 6
dd.jpg
안녕하세요.
작은 학교의 커뮤니티를 만들어 운영중입니다.
일단 회원가입 양식에 학번과 학과를 입력해야 하는데... 제가 왕초보인지라 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");
?>



읽어주셔서 감사합니다!

댓글 작성

댓글을 작성하시려면 로그인이 필요합니다.

로그인하기

댓글 6개

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

register_form_update.php 에 추가
13년 전
감사합니다! 일단 73번째 줄 쯤에 복붙을 했습니다.
그런데.. 테스트로 회원 가입을 해봤는데 전혀 안걸러주더라구요..ㅠㅠ 이 전에 있던 학번을 그대로 입력해봐도 가입이 됩니다. 제가 뭔가 잘못한 걸까요?
13년 전
혹시 주민등록번호 중복검사인
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관리자에게 문의해 주십시오.");


이걸 좀 수정하면 되지 않을까? 싶어서 수정해봤는데.. 안되네요
trim($학번) 해보세요.
13년 전
해결했습니다!
register_form_update.php 을 수정하니까 되네요ㅠㅠ 감사합니다!
그렇군요... 저도 많이 도움 되었습니다

게시글 목록

번호 제목
284348
284336
284333
284332
284320
284318
284316
284313
284307
284306
284303
284298
284296
284290
284286
284280
284277
284272
284261
284259