이름이나 전화번호 중간 부분을 별표 *** 표시로 숨기기 - 게시판스킨강좌, 그누보드5강좌

본문 바로가기
전체검색

게시판스킨강좌

그누보드, 영카트 초보 제작자분들을 위한 다양한 스킨 제작 활용 팁을 공유합니다.

이름이나 전화번호 중간 부분을 별표 *** 표시로 숨기기

관리자 15-11-22 22:33

신청서나 예약 게시판을 사용할 때 개인 정보 노출 방지용으로 이름이나 연락처 일부를 숨기는 방법입니다.

여러 방법을 무작위로 나열했습니다. 원하는 방식으로 아무거나 사용하면 됩니다.

관리자 아이디가 admin이 아닐 때는 admin 부분을 바꿔주세요.

admin 대신에 $config['cf_admin'] 이렇게 넣어도 됩니다.

if (!$is_admin && $list[$i]['mb_id'] != $config['cf_admin']) {

이렇게 해 놓으면 나중에 관리자가 바뀌어도 별도로 수정할 필요가 없습니다.

 

$list[$i]['mb_id'] != admin;

이 부분이 의미하는 건 관리자가 작성한 글은 별표 처리에서 제외한다는 내용입니다.

관리자가 작성한 게시물까지 전부 별표 처리하고 싶으면 아래 내용에서 빨간색 부분을 삭제하면 됩니다.

if (!$is_admin && $list[$i]['mb_id'] != 'admin') {


일반 회원들의 본인이 작성한 글은 별표 처리에서 제외하고 싶으면 이렇게 수정.

if (!$is_admin && $list[$i]['mb_id'] != $member['mb_id']) {



 

1. 한글 이름 맨 뒷자리 한자리나 두자리를 *로 표시하는 방법

 

​1-1. 이름 뒷자리 한글자를 * 로 표시하는 방법

list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.

 

if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = substr($list[$i]['wr_name'],0,-3)."*";
}
 

view.skin.php 파일에서는 <?php echo $view['name'] ?> 부분을 이렇게 수정.

<?php echo substr($view['wr_name'],0,-3)."*"; ?>

 

관리자로 로그인했을 때는 풀 네임으로 보이게 하려면

위 내용 대신에 view.skin.php 파일 상단에 이렇게 넣어주면 됩니다.

if (!$is_admin && $view['mb_id'] != 'admin') {
    $view['name'] = substr($view['wr_name'],0,-3)."*";
}
 

view.skin.php 파일은 아래에 있는 다른 모든 팁들도 마찬가지 방식으로 하면 됩니다.

$list[$i]부분을 $view로 변경하면 됩니다.

 

 

관리자로 로그인하면 모두 보이지만 작성자가 관리자일 때를 제외하고 이름 마지막 글자가 '*​'로 표시됩니다.

 

c4e45ab20f47f6764446d9c84f127823_1448198771_373.gif
 

1-2. 이름 뒷자리 두글자를 ** 로 표시하는 방법

 

list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.

 

if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = substr($list[$i]['wr_name'], 0, -6).'**';
}
 

1-3. 첫 글자만 보이고 나머지 글자는 모두 별표 처리


list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.


if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = preg_replace('/(?<=.{1})./u','*',$list[$i]['wr_name']);
}
 


 

2. 한글 이름 중간 한자리를 '○'으로 숨기는 방법

 

이 방법을 사용하면 중간 원하는 자리를 골라서 해줄 수 있고 전체 글자 수도 원하는 대로 할 수 있습니다. 

list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다. 

 

if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $name_x ='○';
    $name_a = mb_substr($list[$i]['wr_name'],0,1,"UTF-8");
    $name_b = mb_substr($list[$i]['wr_name'],2,10,"UTF-8");
    $list[$i]['name'] = $name_a.$name_x.$name_b;
}
 

관리자로 로그인하면 모두 보이지만 작성자가 관리자일 때를 제외하고 이름 중간이 '​'으로 표시됩니다.

 

간단하게 이런 방법도 있네요. (http://sir.co.kr/g4_tiptech/31475)

<?php echo preg_replace("/(^.)./u", "$1○", $list[$i]['wr_name']); ?>

 

위 내용을 for 문 안에 넣는다면 이렇게..

 

if (!$is_admin && $list[$i]['mb_id'] != 'admin') {
    $list[$i]['name'] = preg_replace("/(^.)./u", "$1○", $list[$i]['wr_name']);
}
 

응용해서 이름이 3자 이상일 경우 3자로 끊어서 표시할 땐

<?php echo mb_substr(preg_replace("/(^.)./u", "$1○", $list[$i]['wr_name']),0,3,"UTF-8"); ?>

 

c4e45ab20f47f6764446d9c84f127823_1448199602_8691.gif
 

 

 

3. 여분 필드 wr_1 에 전화번호를 010-1234-5678 형식으로 입력받았을 때


3-1. 맨 뒤 4자리를 ****로 표시하는 방법

 

list.skin.php 파일에서 for ($i=0; $i<count($list); $i++) { 바로 아랫줄에 이렇게 추가합니다.

 

if (!$is_admin && $list[$i]['wr_1']) {
    $list[$i]['wr_1'] = substr($list[$i]['wr_1'],0,-4)."****";
}
 

3-2. 중간 자리를 ****로 표시하는 방법

 

if (!$is_admin && $list[$i]['wr_1']) {
    $list[$i]['wr_1'] = preg_replace('/-(\d+)-/e',"'-'.str_repeat('*',strlen('\\1')).'-'",$list[$i]['wr_1']);
}
 

관리자로 로그인하면 모두 보이지만 그 이외의 상태일 때는 연락처 중간이나 뒷자리가 ****로 표시됩니다.

 

c4e45ab20f47f6764446d9c84f127823_1448198218_3132.gif
 

댓글목록 +2

댓글목록

profile_image

김철용님의 댓글

김철용 작성일

내용이 알차네요. 찬찬히 보고 적용해봐야 겠어요.^^

profile_image

뉴스웹님의 댓글

뉴스웹 작성일

정말 필요한 정보가 딱 있네요~

로그인 후 댓글 작성 가능합니다.
그누스킨닷컴

그누스터디는 그누보드, 영카트를 이용하시는 초보 사용자를 위한 정보를 공유합니다.

E-MAIL : gnustudy@naver.com / 카카오톡 : gnustudy / 텔레그램 : gnustudy
제작 문의를 제외한 일반 문의는 QA 게시판을 이용해주세요.

Copyright © GNUSTUDY. All rights reserved.