이름이나 전화번호 중간 부분을 별표 *** 표시로 숨기기
신청서나 예약 게시판을 사용할 때 개인 정보 노출 방지용으로 이름이나 연락처 일부를 숨기는 방법입니다.
여러 방법을 무작위로 나열했습니다. 원하는 방식으로 아무거나 사용하면 됩니다.
관리자 아이디가 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로 변경하면 됩니다.
관리자로 로그인하면 모두 보이지만 작성자가 관리자일 때를 제외하고 이름 마지막 글자가 '*'로 표시됩니다.
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"); ?>
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']);
}
관리자로 로그인하면 모두 보이지만 그 이외의 상태일 때는 연락처 중간이나 뒷자리가 ****로 표시됩니다.
댓글목록 +8
댓글목록
김철용님의 댓글
김철용 작성일내용이 알차네요. 찬찬히 보고 적용해봐야 겠어요.^^
뉴스웹님의 댓글
뉴스웹 작성일정말 필요한 정보가 딱 있네요~
블리님의 댓글
블리 작성일전체를 숨기려면 어떻게하나요?
voneyo님의 댓글
voneyo 작성일
3-2. 중간 자리를 ****로 표시하는 방법
비회원에게도 번호가 모두 출력되더라구요. 확인 한번 해보시겠어요?
관리자님의 댓글의 댓글
관리자 작성일버전에 따라서 차이가 있어 보이네요.
트블라님의 댓글
트블라 작성일
관리자와 작성한 본인 둘 다 별표제외 할려고 하면 어떻게 하면 될까요?
아무것도 모르니 붙여도보고,. 등등 넣어보고 해도 자꾸만 사이트가 깨지더라구요.
부탁드립니다.
관리자님의 댓글의 댓글
관리자 작성일
본문 내용에 추가해놨습니다.
관리자뿐만 아니라 글을 작성한 본인 글도 별표 처리에서 제외하고 싶으면 이렇게 수정.
if (!$is_admin && $list[$i]['mb_id'] != 'admin' && $list[$i]['mb_id'] != $member['mb_id']) {
트블라님의 댓글의 댓글
트블라 작성일
네..아주 잘 됩니다.
매번 많이 배우고 갑니다.
너무 고맙습니다.