닉네임을 미입력시 자동으로 닉네임을 부여하고 싶습니다
관련링크
http://www.k-big.co.kr
51회 연결
본문
이메일을 필수로 입력하게 하고 닉네임은 선택적으로 입력 받게 설정 했습니다
그러니 닉네임 입력 안하면 두번째 부터는 아래 처럼 이미 존재하는 닉네임이라고 나옵니다
ㄱ
닉네임 입력안한 사람에게는 자동으로 닉네임을 USER000001 이런식으로 부여 할 수 있나요?
답변 2
사용자가 닉네임을 입력하지 않은 경우 자동으로 "USER" + 일련번호 형식의 닉네임을 부여하는 형태를 구현 할 수 있을 것이라 생각합니다.
아래의 예제를 참고하셔서 구현하고자 하는 페이지에 적용하시면 될 것 같습니다
즉 회원가입 페이지 또는 프로필 수정페이지 등등
<?php
// 이메일 및 닉네임 유효성 검사 후 처리
if ($_SERVER["REQUEST_METHOD"] == "POST") {
$email = $_POST["email"];
$nickname = $_POST["nickname"];
// 이메일 유효성 검사 (여기서는 간단하게 필수 입력으로만 확인)
if (empty($email)) {
echo "이메일은 필수 입력 항목입니다.";
exit;
}
// 닉네임이 비어있는 경우 자동으로 생성
if (empty($nickname)) {
// 새로운 사용자 ID 또는 다른 로직으로 닉네임 생성
$newUserId = 1; // 새로운 사용자의 ID (예시로 1로 설정)
$nickname = "USER" . str_pad($newUserId, 6, "0", STR_PAD_LEFT);
}
// 이메일 및 닉네임 처리 로직 추가
// ...
// 확인 메시지 출력
echo "이메일: " . $email . "<br>";
echo "닉네임: " . $nickname;
}
?>
필요에 따라서 실제 데이터베이스 테이블과 연동하는 등의 추가 작업을 하시면 가능하지 않을까 합니다.
!-->대략적으로 정리를 한다면 아래와 같이 해 볼 수 있을것 같습니다.
register_fom.skin.php 파일 수정
<?php
// 닉네임이 비어있는 경우 자동으로 생성
if (empty($_POST['mb_nick'])) {
$newUserId = getNextUserId(); // 사용자 ID를 생성하는 로직 (예시로 함수로 처리)
$nickname = "USER" . str_pad($newUserId, 6, "0", STR_PAD_LEFT); // 새로운 닉네임 생성
$_POST['mb_nick'] = $nickname; // $_POST 배열에 닉네임 추가
}
?>
<!-- 그누보드의 기본 register_form.skin.php 코드 작성 -->
<div class="tbl_frm01 tbl_wrap">
<table>
<colgroup>
<!-- 필요한 필드들의 colgroup -->
</colgroup>
<tbody>
<!-- 필요한 필드들의 tbody -->
</tbody>
</table>
</div>
register_update.php 파일 수정
<?php
// 닉네임이 비어있는 경우 자동으로 생성
if (empty($_POST['mb_nick'])) {
$newUserId = getNextUserId(); // 사용자 ID를 생성하는 로직 (예시로 함수로 처리)
$nickname = "USER" . str_pad($newUserId, 6, "0", STR_PAD_LEFT); // 새로운 닉네임 생성
$_POST['mb_nick'] = $nickname; // $_POST 배열에 닉네임 추가
}
// 그누보드의 기본 register_update.php 코드 작성
?>
lib/common.lib.php 파일에 추가
function getNextUserId() {
global $g5; // 그누보드의 전역 변수 사용
$sql = "SELECT MAX(mb_id) AS max_id FROM {$g5['member_table']}"; // 회원 테이블의 ID 컬럼을 사용하여 최대값을 가져옴
$result = sql_fetch($sql);
$max_id = $result['max_id'];
$next_id = $max_id + 1; // 최대값에 1을 더하여 새로운 ID 생성
return $next_id;
}
!-->!-->!-->
답변을 작성하시기 전에 로그인 해주세요.