비회원 글쓰기시에 글쓴이를 자동입력
본문
글쓴이를 자동으로 입력되게 하고싶어요
코멘트도 자동입력하게 하고싶고요
익명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 "로그인 상태이므로 자동 입력이 필요하지 않습니다.";
}
?>