비회원 글쓰기시에 글쓴이를 자동입력

비회원 글쓰기시에 글쓴이를 자동입력

QA

비회원 글쓰기시에 글쓴이를 자동입력

본문

글쓴이를 자동으로 입력되게 하고싶어요

코멘트도 자동입력하게 하고싶고요

 

익명1001~익명9000

이거를 랜덤으로

비회원이 글쓰기시에 작성자명에 자동 입력되게끔하고싶어서요

이 질문에 댓글 쓰기 :

답변 2


<input type="text" name="wr_name" value="익명<?php echo rand(1001, 9000);?>" id="wr_name" required="" class="frm_input required" size="25" placeholder="이름">


해당 스킨 폴더의 댓글 스킨 파일 view_comment.skin.php 에서 위의 내용을 위와 같이 변경하면 될 것입니다.
글쓰기에서 변경하고 싶다면 write.skin.php 파일에서 아래와 같이 변경 하면 됩니다.


<input type="text" name="wr_name" value="<?php echo ($name) ? $name: '익명'. rand(1001, 9000);?>" id="wr_name" required class="form-control required" maxlength="20">

글쓴이를 자동으로 ~, 사용자가 별도의 이름을 입력하지 않은 경우

PHP의 rand() 함수를 이용해 1001부터 9000까지의 난수를 생성하고

이를 "익명"이라는 접두어와 결합시켜 글쓴이 및 코멘트 필드에 자동으로 입력하면~

이 방법은 생성된 이름의 범위 내에서 무작위적이며,

다비에 삽입 전 중복 여부나 예외 상황을 체크하는 로직을 포함하여 실제 구현을 하시면~

 

<?php
function generateAnonymousName() {
    return "익명" . rand(1001, 9000);
}
session_start();
if (!isset($_SESSION['user_id'])) { // 비회원인 경우
    $authorName = generateAnonymousName();
    
    $comment = "비회원 " . $authorName . "님의 글.";
    
    try {
        $dsn = "mysql:host=localhost;dbname=your_database;charset=utf8mb4";
        $db = new PDO($dsn, 'username', 'password');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
        
        $content = "여기에 글 내용이 들어갑니다.";
        
        $stmt = $db->prepare("INSERT INTO posts (author, comment, content) VALUES (?, ?, ?)");
        $stmt->execute([$authorName, $comment, $content]);
        
        echo "글 작성이 완료되었습니다. 글쓴이: " . htmlspecialchars($authorName, ENT_QUOTES, 'UTF-8');
    } catch (PDOException $e) {
        echo "데이터베이스 오류: " . $e->getMessage();
    }
} else {
    // 로그인한 회원에 대한 처리
    echo "로그인 상태이므로 자동 입력이 필요하지 않습니다.";
}
?>

감사합니다. 글쓸때 코멘트 쓸때 작성자이름만 익명1001~익명9000
이거를 랜덤으로 넣고싶은것이어서요
글쓰기누르면 이름에 익명1001 이것이 자동으로 넣어지게 요런식으로요
글쓸때 비밀번호만 넣고 내용쓰고 간편하게 등록하게 할 목적입니다.

전송된 데이터 중 작성자 이름이 비어있을 경우
자동으로 함수를 통해 "익명" + 난수(1001~9000)를 생성하며,
비번과 내용은 필수로 입력받아 간편하게 글을 등록하는 방안은~
<?php
function generateAnonymousName() {
    return "익명" . rand(1001, 9000);
}

if ($_SERVER['REQUEST_METHOD'] == 'POST') {
    $authorName = (isset($_POST['author']) && trim($_POST['author']) !== '')
                  ? trim($_POST['author'])
                  : generateAnonymousName();

    $password = isset($_POST['password']) ? trim($_POST['password']) : '';
    $content = isset($_POST['content']) ? trim($_POST['content']) : '';
   
    $comment = "비회원 " . $authorName . "님의 글.";
   
    if ($password === '' || $content === '') {
        echo "비밀번호와 내용을 모두 입력해주세요.";
        exit;
    }
   
    try {
        $dsn = "mysql:host=localhost;dbname=your_database;charset=utf8mb4";
        $db = new PDO($dsn, 'username', 'password');
        $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
       
        $stmt = $db->prepare("INSERT INTO posts (author, password, comment, content) VALUES (?, ?, ?, ?)");
        $stmt->execute([$authorName, $password, $comment, $content]);
       
        echo "글 작성이 완료되었습니다. 글쓴이: " . htmlspecialchars($authorName, ENT_QUOTES, 'UTF-8');
    } catch (PDOException $e) {
        echo "데이터베이스 오류: " . $e->getMessage();
    }
} else { ?>
<!DOCTYPE html>
<html lang="ko">
<head>
    <meta charset="UTF-8">
    <title>글쓰기</title>
</head>
<body>
    <form method="post" action="">
        <label>비밀번호: <input type="password" name="password" required></label><br>
        <label>작성자 (선택): <input type="text" name="author" placeholder="자동 입력"></label><br>
        <label>내용: <textarea name="content" required></textarea></label><br>
        <input type="submit" value="글쓰기">
    </form>
</body>
</html>
<?php } ?>

답변을 작성하시기 전에 로그인 해주세요.
전체 42
QA 내용 검색

회원로그인

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