영카트5 , 회원가입시 주민등록번호
본문
안녕하세요
영카트5로 처음 뭔가를 만들어 보고있습니다
회원 가입시 주민등록 번호를 받아 보고싶습니다
법으로 받는게 금지되어서 기능 자체가 사라진것 같아요
스터디용으로 해보고 싶은데요
영카트에 있었던 기능 같은데 이 기능을 다시 살릴 수 있는 방법은 없을까요?
없다면, 주민등록번호 유효성 검사 해서 넘기는 방법 공유 부탁드립니다 (__)
회원 가입시 주민번호 받고, 유효성 검사하고 중복 확인하는것까지 부탁드립니다
사실 주민번호는 중복 가입을 막기 위해서지만, 핸드폰,아이디 이름은 어떻게든 가능하고
본인인증 서비스는 유료일테니 안하려고 합니다
답변 미리 감사합니다
답변 1
아래의 코드를 참고 해보시겠어요..
<?php
// 회원가입 폼 페이지: register_form.php
// 데이터베이스 연결 및 설정 파일 포함
include_once('./_common.php');
// DB 스키마에 주민등록번호 필드 추가 (한 번만 실행 필요)
// $sql = "ALTER TABLE g5_member ADD COLUMN mb_jumin CHAR(13) NOT NULL";
// sql_query($sql);
function check_jumin($jumin) {
// 주민등록번호 유효성 검사
$jumin = preg_replace('/[^0-9]/', '', $jumin);
if(strlen($jumin) != 13) return false;
$weights = [2, 3, 4, 5, 6, 7, 8, 9, 2, 3, 4, 5];
$sum = 0;
for($i=0; $i<12; $i++) {
$sum += $jumin[$i] * $weights[$i];
}
$check_digit = (11 - ($sum % 11)) % 10;
return $check_digit == $jumin[12];
}
// 폼 데이터 전송 처리
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
$mb_jumin1 = trim($_POST['mb_jumin1']);
$mb_jumin2 = trim($_POST['mb_jumin2']);
$mb_jumin = $mb_jumin1 . $mb_jumin2;
// 유효성 검사
if (!check_jumin($mb_jumin)) {
alert('잘못된 주민등록번호입니다.');
}
// 중복 확인
$sql = "SELECT COUNT(*) AS cnt FROM {$g5['member_table']} WHERE mb_jumin = '$mb_jumin'";
$row = sql_fetch($sql);
if ($row['cnt'] > 0) {
alert('이미 등록된 주민등록번호입니다.');
}
// 회원 정보 저장
$sql = "INSERT INTO {$g5['member_table']}
SET mb_jumin = '{$mb_jumin}',
mb_id = '$_POST[mb_id]',
mb_password = '$_POST[mb_password]',
mb_name = '$_POST[mb_name]'";
sql_query($sql);
alert('회원가입이 완료되었습니다.', './login.php');
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
<meta charset="UTF-8">
<title>회원가입</title>
</head>
<body>
<form method="post" action="register_form.php">
<label for="mb_id">아이디</label>
<input type="text" name="mb_id" id="mb_id" required><br>
<label for="mb_password">비밀번호</label>
<input type="password" name="mb_password" id="mb_password" required><br>
<label for="mb_name">이름</label>
<input type="text" name="mb_name" id="mb_name" required><br>
<label for="mb_jumin">주민등록번호</label>
<input type="text" name="mb_jumin1" id="mb_jumin1" maxlength="6" required> -
<input type="text" name="mb_jumin2" id="mb_jumin2" maxlength="7" required><br>
<button type="submit">회원가입</button>
</form>
</body>
</html>