그누보드 랜덤 아이디 생성 코드 (code by chatGPT4) > 인공지능

인공지능

그누보드 랜덤 아이디 생성 코드 (code by chatGPT4) 정보

그누보드 랜덤 아이디 생성 코드 (code by chatGPT4)

첨부파일

gen_member.zip (2.8K) 12회 다운로드 2023-07-02 19:47:43

본문

일단 1시간 가량 투자해서 만든 코드입니다.

프롬프트는 중간에 그누보드5에 대해서 설명하는 부분 때문인지, 후반에 가서는 다시 프롬프트를 입력했습니다.

 


<?php
include './_common.php';
include G5_LIB_PATH.'/register.lib.php';
ini_set('display_errors', '1');
$nicknames = [
    '천사', '꽃미남', '대박', '사랑', '행복', '반짝', '멋쟁이', '빛나', '상큼', '달콤',
    '불금', '희망', '초록', '눈부심', '데일리', '짱구', '미소', '서머', '윈터', '스프링',
    '리더', '독수리', '티거', '프렌즈', '나무', '구름', '별빛', '사과', '배', '감성',
    '월요병', '불타', '폭발', '아름', '오렌지', '라임', '딸기', '시원', '레인', '파도',
    '캔디', '스모크', '질주', '허니', '슈가', '파이', '웜', '닌자', '도적', '마스터',
    '킹', '퀸', '왕자', '공주', '용사', '마법사', '전사', '나비', '마녀', '요정',
    '픽셀', '트롤', '드래곤', '그리프', '스톰', '불꽃', '빙하', '리프', '땅', '하늘',
    '로봇', '강철', '블레이드', '레이저', '우주', '로켓', '별', '행성', '달빛', '태양',
    '커피', '카페', '크림', '도넛', '버블', '차', '스무디', '팝콘', '초코', '바닐라',
    '자몽', '패션', '매직', '드림', '퓨전', '모카', '로즈', '라벤더', '자스민', '민트'
];

$ids = [
    'john', 'james', 'michael', 'david', 'william', 'thomas', 'richard', 'robert', 'charles', 'joseph',
    'chris', 'daniel', 'matthew', 'mark', 'paul', 'steven', 'andrew', 'kevin', 'joshua', 'george',
    'ryan', 'timothy', 'brian', 'nick', 'ben', 'alex', 'adam', 'aaron', 'scott', 'eric',
    'jason', 'tyler', 'brandon', 'anthony', 'jeremy', 'kyle', 'jeffrey', 'gary', 'stephen', 'samuel',
    'lucas', 'luke', 'zachary', 'craig', 'greg', 'ian', 'philip', 'brad', 'shawn', 'kenneth',
    'edward', 'patrick', 'peter', 'henry', 'douglas', 'jacob', 'jesse', 'lawrence', 'sean', 'frank',
    'jerry', 'terry', 'joel', 'jonathan', 'leonard', 'martin', 'mike', 'randy', 'ronald', 'bobby',
    'billy', 'carl', 'ralph', 'jimmy', 'jack', 'tony', 'logan', 'dylan', 'max', 'bradley',
    'cody', 'derek', 'vince', 'danny', 'leo', 'jordan', 'corey', 'alan', 'jared', 'bruce',
    'andy', 'darren', 'gavin', 'jay', 'jamie', 'seth', 'blake', 'cameron', 'todd', 'nathan'
];
$output = '';
$insertedData = [];
if (isset($_POST["mb_id"])) {
    foreach ($_POST["mb_id"] as $index => $mb_id) {
        $mb_password = $_POST["mb_password"][$index];
        $mb_nick = $_POST["mb_nick"][$index];
        $mb_level = $_POST["mb_level"][$index];
        $sql = "INSERT INTO g5_member (mb_id, mb_password, mb_nick, mb_level) VALUES ('{$mb_id}', '1234', '{$mb_nick}', {$mb_level})";
        $result = sql_query($sql);
        $insertedData[] = [
            'mb_id' => $mb_id,
            'mb_password' => '1234',
            'mb_nick' => $mb_nick,
            'mb_level' => $mb_level,
            'status' => $result ? 'Success' : 'Failed'
        ];
    }
    $output = 'table';
}
?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/@popperjs/core@2.9.1/dist/umd/popper.min.js"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/js/bootstrap.min.js"></script>
    <title>회원 데이터 생성</title>
    <style>
        /* CSS 코드 */
    </style>
</head>
<body>
<div class="container">
    <h1>회원 데이터 생성기</h1>
    <p>이 도구는 랜덤한 회원 데이터를 생성하여 데이터베이스에 삽입하는 데 사용됩니다.</p>
    <?php if (!isset($_POST["mb_id"])): ?>
        <div>
            <label for="countInput">생성할 회원 수:</label>
            <input type="number" id="countInput" name="count" min="1" value="1">
            <button id="generateButton">생성</button>
        </div>
        <form action="gen_member.php" method="post" id="membersForm">
            <div id="generatedMembers"></div>
            <input type="submit" id="submitButton" value="DB 입력" style="display:none;">
        </form>
    <?php else: ?>
        <h2>입력 결과</h2>
        <table class="table">
            <thead>
            <tr>
                <th>아이디</th>
                <th>비밀번호</th>
                <th>닉네임</th>
                <th>레벨</th>
                <th>입력 결과</th>
            </tr>
            </thead>
            <tbody>
            <?php foreach ($insertedData as $data): ?>
                <tr>
                    <td><?php echo $data['mb_id']; ?></td>
                    <td><?php echo $data['mb_password']; ?></td>
                    <td><?php echo $data['mb_nick']; ?></td>
                    <td><?php echo $data['mb_level']; ?></td>
                    <td><?php echo $data['status']; ?></td>
                </tr>
            <?php endforeach; ?>
            </tbody>
        </table>
        <button onclick="location.href='gen_member.php'">처음으로</button>
    <?php endif; ?>
</div>

<script>
    $(document).ready(function () {
        const ids = <?php echo json_encode($ids); ?>;
        const nicknames = <?php echo json_encode($nicknames); ?>;
        const levels = [3];
        $("#generateButton").click(function () {
            const count = $("#countInput").val();
            let membersHtml = '<table class="table"><thead><tr><th>아이디</th><th>비밀번호</th><th>닉네임</th><th>레벨</th></tr></thead><tbody>';
            for (let i = 0; i < count; i++) {
                const randomId = ids[Math.floor(Math.random() * ids.length)] + (Math.floor(Math.random() * 900) + 100);
                const randomNickname = nicknames[Math.floor(Math.random() * nicknames.length)] + (Math.floor(Math.random() * 900) + 100);
                const randomLevel = levels[Math.floor(Math.random() * levels.length)];
                membersHtml += '<tr>';
                membersHtml += '<td><input type="text" name="mb_id[]" value="' + randomId + '" readonly></td>';
                membersHtml += '<td><input type="text" name="mb_password[]" value="1234" readonly></td>';
                membersHtml += '<td><input type="text" name="mb_nick[]" value="' + randomNickname + '" readonly></td>';
                membersHtml += '<td><input type="text" name="mb_level[]" value="' + randomLevel + '" readonly></td>';
                membersHtml += '</tr>';
            }
            membersHtml += '</tbody></table>';
            $("#generatedMembers").html(membersHtml);
            $("#submitButton").show();
        });
    });
</script>
</body>
</html>

 

2040862296_1688295096.9153.png

2040862296_1688295110.4104.png

2040862296_1688295120.7328.png

추천
2
  • 복사

댓글 5개

대략 1시간 정도 걸렸습니다.
chatgpt로 여러가지 그누보드 기능을 만들고 있는데, 가장 먼저 필요한 작업이 회원 데이타입니다.
그래서 이것부터 만들어보았습니다.

기능을 확장할때는, 이 코드를 그대로 chatgtp4에 프롬프트로 입력후에 추가하면 됩니다.
프롬프트

---- 1th
회원 데이타를 랜덤으로 입력하는 30개정도 insert 쿼리를 생성해줘.
mb_level 은 3 으로 하고, 비밀번호는 1234로 해줘.
mb_nick은 한국인 정서에 맞게 랜덤으로 만들고, 회원 id도 랜덤으로 입력하게 작성해줘.

--- 2th
이제 페이지를 좀더 사용자 친화적인 화면으로 만들겠습니다.
자동으로 생성되는것보다 사용자의 입력을 추가로 받아서 생성하도록 만들겠습니다.
 
먼저 랜덤으로 생성할 아이디 개수를 입력받는 화면을 구성합니다.
생성 버튼을 누르면, 입력받을 개수만큼 input으로 생성합니다.

이때 랜덤으로 생성하는 코드 부분은 javascript, jquery  로 만듭니다.
화면을 간결하게 표시하기 위해 css도 같이 사용합니다.
필요하다면 추가적은 jquery 라이브러리를 사용하셔도 됩니다.

랜덤으로 채워진 input 값들이 표시된후에, 하면 하단에 DB 입력 버튼을 추가합니다.
DB 입력버튼이 클릭되면, 동일한 gen_member.php 파일로 submit 을 합니다.
gen_member.php 는 post 전송이 있는 경우, 입력값을 db에 insert 하고,  insert 된 데이타와 결과를 화면에 table로 표시합니다. 이때 중복된 데이타인경우 입력결과 컬럼에 성공/중복/오류 등을 표시합니다.
마지막으로 가장 하단에 처음으로 버튼을 클릭하면, 처음 생성할 아이디 개수를 입력받는 화면이 표시되면 됩니다.

---- 3th
javascript의 ids, nicknames 는 php에서 값을 할당하고,  json_encode로 const 로 생성합니다.

--

그외 화면이 맞지 않거나, 잘리는 경우에 적절히 해당 부분만 다시 표시해달라고 한뒤에 화면을 완성하였습니다.
© SIRSOFT
현재 페이지 제일 처음으로