이름이나 전화번호 중간 부분을 별표 *** 표시로 숨기기 - 게시판스킨강좌, 그누보드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']) {


관리자뿐만 아니라 글을 작성한 본인 글도 별표 처리에서 제외하고 싶으면 이렇게 수정.

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




 

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

 

대부분의 예제는 substr 을 사용해서 한글+영문,숫자 조합에 적용하면 출력이 깨질 수 있습니다.

그럴 경우엔 substr 대신에 mb_substr 로 변경해보세요.

$list[$i]['name'] = mb_substr($list[$i]['wr_name'], 0, -2).'**';

자리수는 0, -2 부분에서 적당히 조절하시면 됩니다.



​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
 

댓글목록 +8

댓글목록

profile_image

김철용님의 댓글

김철용 작성일

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

profile_image

뉴스웹님의 댓글

뉴스웹 작성일

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

profile_image

블리님의 댓글

블리 작성일

전체를 숨기려면 어떻게하나요?

profile_image

voneyo님의 댓글

voneyo 작성일

3-2. 중간 자리를 ****로 표시하는 방법
비회원에게도 번호가 모두 출력되더라구요. 확인 한번 해보시겠어요?

profile_image

관리자님의 댓글의 댓글

관리자 작성일

버전에 따라서 차이가 있어 보이네요.

profile_image

트블라님의 댓글

트블라 작성일

관리자와 작성한 본인 둘 다 별표제외 할려고 하면 어떻게 하면 될까요?
아무것도 모르니 붙여도보고,. 등등 넣어보고 해도 자꾸만 사이트가 깨지더라구요.
부탁드립니다.

profile_image

관리자님의 댓글의 댓글

관리자 작성일

본문 내용에 추가해놨습니다.
관리자뿐만 아니라 글을 작성한 본인 글도 별표 처리에서 제외하고 싶으면 이렇게 수정.
if (!$is_admin && $list[$i]['mb_id'] != 'admin' && $list[$i]['mb_id'] != $member['mb_id']) {

profile_image

트블라님의 댓글의 댓글

트블라 작성일

네..아주 잘 됩니다.
매번 많이 배우고 갑니다.
너무 고맙습니다.

로그인 후 댓글 작성 가능합니다.

로그인

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

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

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

Copyright gnustudy.com All rights reserved.