/lib/common.lib.php 929번 라인 
    // 포인트 UPDATE 
    $sql = " update {$g5['member_table']} set mb_point = '$po_mb_point' where mb_id = '$mb_id' "; 
    sql_query($sql); 

아래에 추가 
  // 포인트에 따라 권한 자동 올리기 
    $mb_level = sql_fetch(" select mb_level from {$g5['member_table']} where mb_id = '$mb_id' "); 
    if($mb_level['mb_level'] < 10){ 
    if($po_mb_point <= 2000){ //2000 포인트 이하면 권한 2 
        $level_up = 2; 
    }elseif($po_mb_point <= 3000){ 
        $level_up = 3; 
    }elseif($po_mb_point <= 4000){ 
        $level_up = 4; 
    }elseif($po_mb_point <= 5000){ 
        $level_up = 5; 
    }elseif($po_mb_point <= 6000){ 
        $level_up = 6; 
    }elseif($po_mb_point <= 7000){ 
        $level_up = 7; 
    }elseif($po_mb_point <= 8000){ 
        $level_up = 8; 
    }elseif($po_mb_point <= 9000){ 
        $level_up = 9; 
    } 
    sql_query(" update {$g5['member_table']} set mb_level = '$level_up' where mb_id = '$mb_id' "); 
    } 

닉네임 변경시 필요한 걸 만들어 보았습니다, 관리자도 변경 가능해요.

/adm/admin.menu300.php 게시판그룹관리 아래에 추가 
    array('300201', '게시판닉네임바꾸기', ''.G5_ADMIN_URL.'/board_nick_update.php'), 


/adm 폴더에 board_nick_update.php 파일 만드시고 아래 소스 추가후에 
<? 
$sub_menu = "300201"; 
include_once("./_common.php"); 

auth_check($auth[$sub_menu], 'r'); 

$token = get_token(); 
$g5[title] = "게시판 닉네임 바꾸기"; 
include_once('./admin.head.php'); 

if($w == 'u'){ 
$sql = " select bo_table from $g5[board_table] order by gr_id, bo_table "; 
$result = sql_query($sql); 

for ($i=0; $row=sql_fetch_array($result); $i++) { 
sql_query("update g5_write_$row[bo_table] set wr_name='$_POST[name_up]' where wr_name = '$_POST[name_ori]' "); 

alert("닉네임이 변경 되었습니다", $_SERVER['PHP_SELF']); 

?> 
* 모든 게시판에 적용됩니다. 잘못 입력시 당황하지 말고 변경된 닉네임을 다시 변경해 주시면 됩니다<BR><BR> 
<form method=post action="<?=$_SERVER['PHP_SELF'];?>?w=u"> 
기존 닉네임<INPUT type="text" name="name_ori" size="10"> &nbsp;바꿀 닉네임<INPUT type="text" name="name_up" size="10"> 
<INPUT type="submit" value="실행"> 
</form> 
<? 
include_once('./admin.tail.php'); 
?> 


메뉴 게시판 닉네임 바꾸기 클릭하시면 돼요.

코멘트를 남겨야 다운로드 가능하게 설정하는 것도 필요할 것 같아서 올려드립니다. 

G5/bbs/download.php 파일입니다. 


// 코멘트를 남겨야 다운로드 가능 
if (!$is_admin) { // 어드민 패스해 주시고 
    $sql = "select wr_id from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and (mb_id = '$member[mb_id]' or wr_ip = '$_SERVER[REMOTE_ADDR]')"; 
    $row = sql_fetch($sql); 
    if (!$row) { 
        alert("코멘트를 남겨야 다운로드가 가능합니다."); 
    } 



66번째 라인쯤에다가 패치해 주시면 되겠습니다. 

        // 다운로드 포인트가 음수이고 회원의 포인트가 0 이거나 작다면 
        if ($member['mb_point'] + $board['bo_download_point'] < 0) 
            alert('보유하신 포인트('.number_format($member['mb_point']).')가 없거나 모자라서 다운로드('.number_format($board['bo_download_point']).')가 불가합니다.\\n\\n포인트를 적립하신 후 다시 다운로드 해 주십시오.'); 

// 코멘트가 달려야만 다운로드 되도록 수정 
if (!$is_admin) { // 어드민 패스해 주시고 
    $sql = "select wr_id from $write_table where wr_parent = '$wr_id' and wr_is_comment = 1 and (mb_id = '$member[mb_id]' or wr_ip = '$_SERVER[REMOTE_ADDR]')"; 
    $row = sql_fetch($sql); 
    if (!$row) { 
        alert("코멘트를 남겨야 다운로드가 가능합니다."); 
    }





ps) 특정 게시판으로 사용시 download1.php 를 만들어서 download.php 대신 download1.php 로 다운받게 하면 가능할 것 같은데요. 

직접해 보지는 않았습니다. 한번 시도해 보셔도 좋을듯 싶어요.


메인 롤링 최신글을 이용하여  홈페이지 하단 자주가는 사이트나 참고사이트 링크 배너를 만드는 법입니다. 

 최신글 php의 아래 구문을 찾아 변경해주면 

게시판글로 링크되는 것이 원하는 해당사이트로 이동합니다. 

 <?=$list[$i]['href'];?>  =>  <?=$list[$i]['wr_link1'];?> 


1. extend / ip_clear.php  를 저장하면, 향후 신규작성되거나 수정된 글에서 IP(아이피) 자료는 저장되지 않습니다.  ... 내용 삭제 (2014-04-24) 
<?php  // 아래 내용을 사용할 경우 이미지 캡차가 엑박이 됨 
if (!defined("_GNUBOARD_")) exit; // 개별 페이지 접근 불가 
$_SERVER['REMOTE_ADDR'] = ''; 
?> 
ip_clear.php 를 extend에 삽입할 경우 captcha 엑박이 되므로 사용하지 아래와 같이 1-2 방법을 사용합니다. 



1-2. 그누보드5 / bbs / write_update.php 에서  wr_ip 를 검색내용중 아래를 변경합니다. 

wr_ip = '{$_SERVER['REMOTE_ADDR']}', 
를 아래와 같이 변경합니다. 
wr_ip = '', 



2. 기존에 저장된 게시글의 IP 삭제하기 
그누보드5 / _ip_clear.php  를 저장한후 실행하면 모두 삭제됩니다. 
웹브라우저 :  http://홈페이지/그누보드5/_ip_clear.php 

<?php 
include "_common.php"; 
include G5_DATA_PATH."/dbconfig.php"; 

echo "<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>"; 
$dbconn = mysql_connect(G5_MYSQL_HOST,G5_MYSQL_USER,G5_MYSQL_PASSWORD) or die("데이터베이스 연결에 실패하였습니다."); 
mysql_select_db(G5_MYSQL_DB, $dbconn); 

$sql = " select * from ". $g5['board_table'] ." "; 
$result = mysql_query($sql, $dbconn); 

while($data = mysql_fetch_array($result)) { 
  $query2 = " update g5_write_". $data[bo_table] ." set wr_ip = '' "; 
  $result2 = mysql_query($query2); 
  echo $data[bo_subject] ."(". $data[bo_table].") IP deleted complete!!<br>"; 


echo mysql_error(); 
mysql_close($dbconn);  // MySQL에 접속종료 
?>


'css/default.css'에서 


'dotum'으로 입력되어 있는 곳을 모두 찾아서(5곳) 
아래의 예시와 같이 'dotum' 앞에 
'malgun gothic', 
를 삽입해주면 됩니다. 

1body {margin:0;padding:0;font-size:0.75em;font-family:'malgun gothic''dotum'}



이렇게 하면... 
맑은고딕이 설치된 컴퓨터에서는 맑은고딕으로 보이고... 
설치되지 않은 컴퓨터에서는 돋움으로 보여지게 됩니다.

저 처럼 가상서버 호스팅을 사용한다면 웹 호스팅업체에서 백업은 알아서 하쇼! 라고 하는데... 
대신 서버를 내것처럼 이용할 수 있다는 장점이 있죠... 
그래서 저는 cron으로 자동백업스크립트를 만들어 자동으로 백업이 되도록 하였습니다. 
관련 내용을 찾아보던 중 가장 정리가 잘 된 스크립트 예제를 발견하였습니다. 


우선 root로 로그인한후 
vi backup.sh를 입력하여 sh파일을 생성해 봅니다. 

그리고 아래의 내용을 본인의 환경에 맞게 적당하게 편집한후 저장합니다. 
(이때 경로부분은 pwd 명령을 입력하여 절대경로로 입력해줍니다) 

--------------------------------------------------------------------------------------- 
#!/bin/bash 
DATE=`date +%Y%m%d` 
DB_BACKUP_DIR=/backup/db 
WEB_BACKUP_DIR=/backup/web 
WEB_DIR=/www_dir 

##### MySQL 특정 데이타베이스 백업 ##### 
mysqldump -uroot -p***** justin > $DB_BACKUP_DIR/justin_$DATE.sql 
mysqldump -uroot -p***** xnova > $DB_BACKUP_DIR/xnova_$DATE.sql 

##### MySQL 전체 데이타베이스 백업 ##### 
mysqldump -uroot -p***** -A > $DB_BACKUP_DIR/all_$DATE.sql 

##### 웹파일 백업 (web 디렉토리의 모든내용을 백업) ##### 
tar czfp $WEB_BACKUP_DIR/web_$DATE.tar.gz $WEB_DIR/web 

##### 오래된 백업 삭제 (일주일 전의 파일들만 삭제) ##### 
WEEKAGO=`date -d "7 days ago" +%Y%m%d` 
rm $DB_BACKUP_DIR/*$WEEKAGO.sql 
rm $WEB_BACKUP_DIR/*$WEEKAGO.tar.gz 

##### 권한 수정 ##### 
chmod -R 600 $WEB_BACKUP_DIR 
chmod -R 600 $DB_BACKUP_DIR 

##### 백업 후 FTP로 전송한다면 아래 사용 ##### 
#REMOTE='192.168.0.123'    ## FTP 리모트 변수 (서버IP) 
#ID='test'                ## FTP 아이디 
#PWD='1234'                ## FTP 패스워드 
#REMOTE_DIR='/home/test'  ## 리모트디렉토리 

#ftp -n -v $REMOTE << EOF  ## FTP 접속 
#user $ID $PWD            ## LOGIN 
#prompt 
#bi                        ## binary 모드 변경 

#put $DB_BACKUP_DIR/all_$DATE.sql $REMOTE_DIR/all_$DATE.sql 
#bye                      ## 접속종료 
#EOF 



-------------------------------------------------------------------------------------------- 

:wq를 입력하여 저장한후 

vi /etc/crontab 을 입력하면 cron설정을 수정할 수 있습니다. 

0  5  *  *  *  root  /your/shell/file/dir/backup.sh 

이렇게 입력하면 root 권한으로 메일 새벽 5시에 해당 쉘을 실행시키라는 의미입니다. 

cron 파일을 수정한 후 

# /etc/init.d/cron restart 

명령으로 크론을 재기동해줍니다. 

만든 쉘이 정상작동되는지 확인하려면 해당 경로에서 

./backup.sh 로 강제실행 시킬 수 있습니다. 

# crontab -e 를 누르신 뒤 
i를 누르면 insert 모드로 변환되기 때문에 글 작성이 가능해 집니다. 

*/20 * * * * wget -O - -q -t 1 http://www.domain.com/test.php 

20분에 한번씩 체크하게 설정을 주었습니다. 
여기서 esc를 누르면 글 작성 모드에서 나오시게 되는데요 
:를 누르신 뒤 wq! 엔터 ! 이게 설정이 다 된것입니다. 



출처:

http://bomool.net/bbs/board.php?bo_table=bo0101&wr_id=29 

+ Recent posts