답변 2개
</p>
<p><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 파일에서 아래와 같이 변경 하면 됩니다.
</p>
<p><input type="text" name="wr_name" value="<?php echo ($name) ? $name: '익명'. rand(1001, 9000);?>" id="wr_name" required class="form-control required" maxlength="20"></p>
<p>
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
글쓴이를 자동으로 ~, 사용자가 별도의 이름을 입력하지 않은 경우
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 "로그인 상태이므로 자동 입력이 필요하지 않습니다.";
}
?>
답변에 대한 댓글 4개
이거를 랜덤으로 넣고싶은것이어서요
글쓰기누르면 이름에 익명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 } ?>
매번 너무 감사합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인