그누보드5 완전히 회원삭제 하는 소스

Progmming/PHP|2020. 7. 12. 16:04
반응형

/board( 설치경로)/lib/common.lib.php 에서 member_delete 를 찾아서 

 

 

혹시 기존에 삭제처리해서 Flag 처리된 회원을 삭제해야하는 경우 아래 내용 주석처리 필요.

// 이미 삭제된 회원은 제외
    if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo']))
        return;

 

함수내 가장 하단에 추가

sql_query(" delete from {$g5['member_table']} where mb_id = '$mb_id' ");

 

 

 

전체 함수 

// 회원 삭제
function member_delete($mb_id)
{
    global $config;
    global $g5;

    $sql = " select mb_name, mb_nick, mb_ip, mb_recommend, mb_memo, mb_level from {$g5['member_table']} where mb_id= '".$mb_id."' ";
    $mb = sql_fetch($sql);

	// 주석처리 
    // 이미 삭제된 회원은 제외
    //if(preg_match('#^[0-9]{8}.*삭제함#', $mb['mb_memo']))
    //    return;

    if ($mb['mb_recommend']) {
        $row = sql_fetch(" select count(*) as cnt from {$g5['member_table']} where mb_id = '".addslashes($mb['mb_recommend'])."' ");
        if ($row['cnt'])
            insert_point($mb['mb_recommend'], $config['cf_recommend_point'] * (-1), $mb_id.'님의 회원자료 삭제로 인한 추천인 포인트 반환', "@member", $mb['mb_recommend'], $mb_id.' 추천인 삭제');
    }

    // 회원자료는 정보만 없앤 후 아이디는 보관하여 다른 사람이 사용하지 못하도록 함 : 061025
    $sql = " update {$g5['member_table']} set mb_password = '', mb_level = 1, mb_email = '', mb_homepage = '', mb_tel = '', mb_hp = '', mb_zip1 = '', mb_zip2 = '', mb_addr1 = '', mb_addr2 = '', mb_birth = '', mb_sex = '', mb_signature = '', mb_memo = '".date('Ymd', G5_SERVER_TIME)." 삭제함\n{$mb['mb_memo']}' where mb_id = '{$mb_id}' ";
    sql_query($sql);

    // 포인트 테이블에서 삭제
    sql_query(" delete from {$g5['point_table']} where mb_id = '$mb_id' ");

    // 그룹접근가능 삭제
    sql_query(" delete from {$g5['group_member_table']} where mb_id = '$mb_id' ");

    // 쪽지 삭제
    sql_query(" delete from {$g5['memo_table']} where me_recv_mb_id = '$mb_id' or me_send_mb_id = '$mb_id' ");

    // 스크랩 삭제
    sql_query(" delete from {$g5['scrap_table']} where mb_id = '$mb_id' ");

    // 관리권한 삭제
    sql_query(" delete from {$g5['auth_table']} where mb_id = '$mb_id' ");

    // 그룹관리자인 경우 그룹관리자를 공백으로
    sql_query(" update {$g5['group_table']} set gr_admin = '' where gr_admin = '$mb_id' ");

    // 게시판관리자인 경우 게시판관리자를 공백으로
    sql_query(" update {$g5['board_table']} set bo_admin = '' where bo_admin = '$mb_id' ");

    //소셜로그인에서 삭제 또는 해제
    if(function_exists('social_member_link_delete')){
        social_member_link_delete($mb_id);
    }

    // 아이콘 삭제
    @unlink(G5_DATA_PATH.'/member/'.substr($mb_id,0,2).'/'.$mb_id.'.gif');

    // 프로필 이미지 삭제
    @unlink(G5_DATA_PATH.'/member_image/'.substr($mb_id,0,2).'/'.$mb_id.'.gif');

    // 추가한 소스. 완전삭제.
    sql_query(" delete from {$g5['member_table']} where mb_id = '$mb_id' ");
}

댓글()

IIS 확장자가 없는 파일 MIME 형식 등록

OS/Microsoft|2020. 4. 21. 16:18
반응형

확장자가 없는 파일의 경우 .* 로 등록하면 처리가 안됨..

그냥 . 만 입력해서 추가하면 됩니다.

 

원하는 mime 형식이 있다면 입력하면 되겠고 아래와 같이 text/plain 하면 텍스트 형태로 처리됨.

 

보통은 확장자가 있기마련이지만 SSL 인증 할때 파일 업로드해서 인증 받는 경우 필요했음.

 

 

 

 

댓글()

MSSQL 차등백업 방법 및 SQL

DataBase/MS-SQL|2020. 4. 13. 17:01
반응형

차등 백업은 전체 백업 마지막 시점을 기준으로 이후에 수정된 내용을 백업는 방법입니다.

기본적인 내용과 SQL문을 공유합니다.

 

-- 전체 백업

BACKUP DATABASE [test] TO  DISK = N'D:\Backup\test_full.bak' WITH NOFORMAT, NOINIT,  NAME = N'test-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO

 

 

-- 차등백업 1 

BACKUP DATABASE [test] TO  DISK = N'D:\Backup\test_1.bak' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'test-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO

 

 

-- 차등백업 2 

BACKUP DATABASE [test] TO  DISK = N'D:\Backup\test_2.bak' WITH  DIFFERENTIAL , NOFORMAT, NOINIT,  NAME = N'test-전체 데이터베이스 백업', SKIP, NOREWIND, NOUNLOAD,  STATS = 10

GO

 

 

 

-- 기본 전체 백업 + 차등 복구

문법

RESTORE DATABASE [디비명] FROM DISK = N'풀백업위치'

               WITH MOVE '논리적 DB명' TO 'mdf 복구위치'

                            ,MOVE '논리적 LOG명' TO 'ldf 복구위치',  NORECOVERY,  NOUNLOAD,  STATS = 5;

RESTORE DATABASE [tes디비명] FROM  DISK = N'차등백업위치' WITH  FILE = 1,  NOUNLOAD,  STATS = 5

 

 

RESTORE DATABASE [test3] FROM DISK = N'D:\Backup\test_full.bak'

               WITH MOVE 'test' TO 'C:\DATABASE\MSSQL15.MSSQLSERVER\MSSQL\DATA\test3.mdf'

                            ,MOVE 'test_log' TO 'C:\DATABASE\MSSQL15.MSSQLSERVER\MSSQL\DATA\test3.ldf',  NORECOVERY,  NOUNLOAD,  STATS = 5;

RESTORE DATABASE [test3] FROM  DISK = N'D:\Backup\test_2.bak' WITH  FILE = 1,  NOUNLOAD,  STATS = 5

 

 

 

백업 및 복구 시점별 데이터 체크 

test : 풀백업  ,  test1 : 풀백업+차등1st ,  test2 : 풀백업+차등2nd

 

 

개인적인 생각에서

 

장점은 백업 용량이 데이터 변화에 비례하기 때문에 수정이 적다면 용량도 적어집니다.

수정된 데이터와 용량은 비례하게 됩니다.

 

단점은 전체 백업이 소실되면 복구가 불가능함. 전체 백업본이 있어야 차등백업본이 의미가 있기 때문에

무슨일이 있어도 전체 백업은 잘 보관해야합니다.

 

적당주기별 전체 백업과 차등백업을 처리한다면...스토리지가 좋아합니다.

댓글()

GROUP_CONCAT 최대 결과 길이 변경하는 방법

DataBase/My-SQL|2020. 3. 3. 17:34
반응형

mysql 최대 결과 길이 변경하기

 

세팅 값에 따라 부하가 걸릴수도 있으니 고민 고민 후 변경.

 

#PHP
#해당 세션에만 적용됨.
SET SESSION group_concat_max_len = @@max_allowed_packet;

 

#my.ini
#/etc/mysql/my.cnf
# 변경하고자 하는 최대 값 // [mysqld] 하단에 추가 
# GROUP_CONCAT()함수 에 허용되는 최대 결과 길이 (바이트)/기본값은 1024
group_concat_max_len=4M 

적용 후 서비스 재시작 해야 적용 됨.

 

만약 적용 후 서비스 재시작에 문제가 있다면 아래 글 참고.

 

MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.

 

MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.

MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다. MYSQL 설정 파일인 my.ini 파일을 메모장으로 수정 후 서비..

dev.uhoon.co.kr

 

https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html#sysvar_group_concat_max_len

 

MySQL :: MySQL 5.7 Reference Manual :: 5.1.7 Server System Variables

 

dev.mysql.com

 

 

댓글()

MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.

DataBase/My-SQL|2020. 3. 3. 17:23
반응형

서비스 시작 시 에러 메시지

 

 

MySQL80 서비스가 로컬 컴퓨터에서 시작했다가 중지되었습니다. 일부 서비스는 다른 서비스 또는 프로그램에서 사용되지 않으면 자동으로 중지됩니다.

 

MYSQL 설정 파일인 my.ini 파일을 메모장으로 수정 후 서비스 재시작 시 발생한 에러입니다.

 

 

 

원인 : my.ini 파일 인코딩 문제 

 

my.ini 파일 초기 인코딩은 ANSI

확인해보시면 아마도 UTF-8로 변경되어있을텐데

다시 ANSI로 변경 저장 후 서비스 시작하시면 정상 작동 될 것입니다.

댓글()

Windows Server 2019 "암호가 암호 정책 요구 사항에 맞지 않습니다."

OS/Microsoft|2020. 2. 17. 16:49
반응형

윈도우 서버 관리 계정 암호 설정 시 에러 메시지

 

--------------------------- 
로컬 사용자 및 그룹 
--------------------------- 
Administrator 사용자에 대한 암호를 설정하는 동안 다음 오류가 발생했습니다: 

암호가 암호 정책 요구 사항에 맞지 않습니다. 최소 암호 길이, 암호 복잡도 및 암호 기록 요구 사항을 확인하십시오. 
--------------------------- 
확인    
--------------------------- 

 

 

윈도우 로컬 보안정책

 

계정설정  > 암호정책 > "암호는 복잡성을 만족해야 함"

 

 

 

사용안함

 

 

정책 변경 후에는 재부팅을 하거나 수동으로 정책을 업데이트 시켜줘야 합니다.

 

cmd :  gpupdate /force 

 

댓글()

설치된 닷넷프레임워크 버전 확인 방법

OS/Microsoft|2020. 2. 11. 16:53
반응형

윈도우 서버에서 .Net Framework 설치 확인하는 방법입니다.

 

Powershell 실행 후 

 

Install-Module -Name DotNetVersionLister -Scope CurrentUser #-Force

 

Get-STDotNetVersion

 

댓글()

특정 컬럼명에 대한 테이블 및 속성 검색하는 쿼리 SQL

DataBase/MS-SQL|2020. 2. 6. 17:05
반응형

특정 컬럼명에 대한 테이블 및 속성 검색하는 쿼리 SQL


select table_name ,column_name ,column_default, data_type
	, character_maximum_length ,character_octet_length 
From information_schema .columns 
where column_name='cityCd' 
order by character_maximum_length desc

댓글()