안녕하세요 2가지 질문이 있습니다 (익명작성자 암호화, 댓글 작성자란 암호화)

 

안녕하세요.

반갑습니다

1 .지금 보시면 댓글 입력란에 작성자 라고 있고 작성자 이름을 넣는 칸이 있는데 이것도 혹시 작성자가 댓글을 쓸때 작성자를 기입하지 않고 자동으로 암호화 되는 방법을 알고 싶네
   요 그러니까 작성자를 따로 적지 않아도 암호화된 문자로 비밀법호만 넣을수 있게 가능할까요?

 

 

2. 상위 이미지에서 보면 작성자 암호화를 했더니 (여기 게시판 찾아서 암호화를 했습니다) 너무 길어져서 밑으로 밀리는데 한 8자리 정도로 줄일수가 있을까요?

 

감사합니다 ^^

 

좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
좋은 정보와 인맥을 동시에, 워드프레스 사용자 단톡방 참여하기
  • 안녕하세요~^^

    KBoard 플러그인에서 게시글 및 댓글 작성자명을 수정하는 건

    어떤 링크를 참고하셨는지요?

    실제 추가하신 코드를 올려주시면 보다 정확한 답변을 받으실 수 있습니다.

    에디터의 코드 스니펫 삽입 기능으로 코드를 올려주시겠어요?

    고맙습니다.

  • 테마의 functions.php 를 아래의 코드로 변환했구요

    https://www.cosmosfarm.com/threads/document/27636 참고 하였습니다.

    게시판 아이디를 지정해주는 if문을 삭제 하니 전체 게시판에 적용되게 되었습니다.

    아래쪽은 댓글인거 같은데 ㅜㅜ 아직 기능이 안되고 있어요 ㅠㅠ

    // 익명 암호화
    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
    function my_kboard_document_insert($content_uid, $board_id, $content, $board){
        { // 실제 게시판 id로 적용해주세요.
            if(!is_user_logged_in()){
                $content->option->ip = kboard_user_ip();
            }
            
            $content->member_display = uniqid();
            $content->updateContent();
        }
    }

    add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
    function my_kboard_comments_insert($insert_id, $content_uid, $board){
        if($board->id == '1'){ // 실제 게시판 id로 적용해주세요.
            $content = new KBContent();
            $content->initWithUID($content_uid);
            
            $comment = new KBComment();
            $comment->initWithUID($insert_id);
            
            if(is_user_logged_in()){
                if($comment->user_uid == $content->member_uid){
                    $comment->user_display = $content->member_display . ' (작성자)';
                }
            }
            else if($content->option->ip == kboard_user_ip()){
                $comment->user_display = $content->member_display . ' (작성자)';
            }
            $comment->update();
        }
    }

  • 안녕하세요.

    비회원 댓글 작성 시 작성자명을 입력하지 않고

    랜덤 문자열로 표시하시려면 댓글 스킨 파일을 수정해주셔야 합니다.

    FTP로 접속해서 /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일에

    아래의 코드를 찾아서

    <?php if(is_user_logged_in()):?>
    <input type="hidden" name="member_display" value="<?php echo $member_display?>">
    <?php else:?>
    <div class="comments-field field-member-display">
    	<label class="comments-field-label" for="comment_member_display_<?php echo $content_uid?>"><?php echo __('Author', 'kboard-comments')?></label>
    	<input type="text" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="<?php echo $temporary->member_display?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
    </div>
    <div class="comments-field field-password">
    	<label class="comments-field-label" for="comment_password_<?php echo $content_uid?>"><?php echo __('Password', 'kboard-comments')?></label>
    	<input type="password" id="comment_password_<?php echo $content_uid?>" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
    </div>
    <?php endif?>

    아래의 코드로 교체해보시겠어요?

    <?php if(is_user_logged_in()):?>
    <input type="hidden" name="member_display" value="<?php echo $member_display?>">
    <?php else:?>
    	<?php if($board->id == '1'): // 실제 게시판 id로 적용해주세요.?>
    		<input type="hidden" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="익명">
    	<?php else:?>
    		<div class="comments-field field-member-display">
    			<label class="comments-field-label" for="comment_member_display_<?php echo $content_uid?>"><?php echo __('Author', 'kboard-comments')?></label>
    			<input type="text" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="<?php echo $temporary->member_display?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
    		</div>
    	<?php endif?>
    	<div class="comments-field field-password">
    		<label class="comments-field-label" for="comment_password_<?php echo $content_uid?>"><?php echo __('Password', 'kboard-comments')?></label>
    		<input type="password" id="comment_password_<?php echo $content_uid?>" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
    	</div>
    <?php endif?>
    

    위의 코드에서 $board->id == '1' 부분은 실제 게시판 id로 적용해주세요.

     

    댓글 쪽 코드는

    아래 링크를 참고해보시겠어요?

    https://www.cosmosfarm.com/threads/document/36455#document-answer-36587

    고맙습니다.

  • PHP uniqid 함수는 기본적으로 13자리로 표시됩니다.

    앞에서부터 8자리는 초단위, 뒤의 5자리는 마이크로초단위를 16진수로 바꾼 값으로 표시됩니다.

     

    문자열을 잘라서 표시하시려면 substr 함수를 사용하시면 될 듯합니다.

    초단위는 마이크로초단위보다 비교적 시간이 길기 때문에

    짧은 시간 동안 댓글이 달리면 앞부분이 고정되는 것처럼 보일 수 있습니다.

     

    뒷부분 6자리로 표시되게 하시려면

    uniqid() 부분을 substr(uniqid(), -6)로 모두 교체해보시겠어요?

    8자리로 표시하시려면 -6 부분을 -8로 적용해보세요.

    고맙습니다.

  • 정말 제가 무지한건지 ㅜㅡㅜ 이해가 잘안가네요 하기사 제가 프로그래머도 아니니까 말이죠

    일단 상위에 말씀 주신 코드로 FTP로 접속해서 /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php 파일을 수정했는데요

    댓글창이 아예 없어졌어영 ㅜㅜ

    그리고

    PHP uniqid 함수는 기본적으로 13자리로 표시됩니다.

    앞에서부터 8자리는 초단위, 뒤의 5자리는 마이크로초단위를 16진수로 바꾼 값으로 표시됩니다.

     

    문자열을 잘라서 표시하시려면 substr 함수를 사용하시면 될 듯합니다.

    초단위는 마이크로초단위보다 비교적 시간이 길기 때문에

    짧은 시간 동안 댓글이 달리면 앞부분이 고정되는 것처럼 보일 수 있습니다.

     

    뒷부분 6자리로 표시되게 하시려면

    uniqid() 부분을 substr(uniqid(), -6)로 모두 교체해보시겠어요?

    8자리로 표시하시려면 -6 부분을 -8로 적용해보세요.

    고맙습니다.

    요내용은 어떤 파일을 손을 봐야 하는지 모르겠습니다 ㅜㅜ 

  • 실제 편집하신 코드를 에디터의

    코드 스니펫 삽입 기능으로 올려주시겠어요?

    비회원으로도 확인 가능한 페이지 주소 알려주시면 살펴보겠습니다.

     

    uniqid() 부분은 테마 쪽에 추가하신 코드 중에서 교체해보시겠어요?

    kboard_document_insert 액션과 kboard_comments_insert 액션 쪽에서 수정해보세요.

    고맙습니다.

  • 1  .  /wp-content/plugins/kboard-comments/skin/사용중인스킨/list.php  파일입니다 

    <?php
    					// 댓글 입력 필드 시작
    					ob_start();
    					?>
    					<?php if(is_user_logged_in()):?>
                                                                <input type="hidden" name="member_display" value="<?php echo $member_display?>">
                                                                <?php else:?>
     <input type="hidden" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="익명">
    	<?php else:?>
    		<div class="comments-field field-member-display">
    			<label class="comments-field-label" for="comment_member_display_<?php echo $content_uid?>"><?php echo __('Author', 'kboard-comments')?></label>
    			<input type="text" id="comment_member_display_<?php echo $content_uid?>" name="member_display" value="<?php echo $temporary->member_display?>" placeholder="<?php echo __('Author', 'kboard-comments')?>..." required>
    		</div>
    	<?php endif?>
    	<div class="comments-field field-password">
    		<label class="comments-field-label" for="comment_password_<?php echo $content_uid?>"><?php echo __('Password', 'kboard-comments')?></label>
    		<input type="password" id="comment_password_<?php echo $content_uid?>" name="password" value="" placeholder="<?php echo __('Password', 'kboard-comments')?>..." required>
    	</div>
    <?php endif?>			

     

    2. themes/테마/functoins.php  입니다.

    // 익명 암호화
    add_action('kboard_document_insert', 'my_kboard_document_insert', 10, 4);
    function my_kboard_document_insert($content_uid, $board_id, $content, $board){
    	{ // 실제 게시판 id로 적용해주세요.
    		if(!is_user_logged_in()){
    			$content->option->ip = kboard_user_ip();
    		}
    		
    		$content->member_display = uniqid();
    		$content->updateContent();
    	}
    }
    
    add_action('kboard_comments_insert', 'my_kboard_comments_insert', 10, 3);
    function my_kboard_comments_insert($insert_id, $content_uid, $board){
    	if($board->id == '1')		$content = new KBContent();
    		$content->initWithUID($content_uid);
    		
    		$comment = new KBComment();
    		$comment->initWithUID($insert_id);
    		
    		if(is_user_logged_in()){
    			if($comment->user_uid == $content->member_uid){
    				$comment->user_display = $content->member_display . ' (작성자)';
    			}
    		}
    		else if($content->option->ip == kboard_user_ip()){
    			$comment->user_display = $content->member_display . ' (작성자)';
    		}
    		$comment->update();
    	}
    }

    입니다 잘부탁드립니다.

  • 코드를 잘못 수정하신 듯합니다.

    이전 댓글에 안내해드린 코드를 참고하셔서

    아래의 코드를 추가해보시겠어요?

    <?php if($board->id == '1'): // 실제 게시판 id로 적용해주세요.?>

    고맙습니다.

워드프레스 에러 기술지원 서비스 전문가에게 맡기세요