RadarURL

조회 수 10298 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
*************************************************************************
주의할점!   절대 첨부파일 정리 하지 마세요. 이동이나.. 기타 알려지지 않은 문제점이 있습니다.
삭제,쓰기,수정,읽기등만 테스트 된 상태이니 다른 기능들은 테스트 해보시고 하세요.
아래에 다른 분이 올려주신 코멘트 꼭 읽어 보시고요, 성공하시길~
*************************************************************************


이건 좀 수정하기 어려우실것 같습니다.

고쳐야 할 파일이 많거든요.

초급자 이신분은 그냥 넘어가시는게 좋을 듯.

굳이 하고 싶으시면(백업해 놓고 하세요)

그래도 필요하신 분이 있을것 같아 용기를 내어 올립니다.

여기서는 4개로 작업을 합니다. 더 많이 할수도 잇겠죠?

성공하신분 메모 부탁합니다. (몇분이나 성공할지 궁금해서~)

수정될 파일.
1. write_ok.php
2. delete_ok.php
3. write.php 수정(저장할때 변수할당)
4. view.php 수정 (내용보기에 필요한 변수할당)
     (여기까지는 제로보드 설치된 디렉토리에)

5.  include/list_check.php

6. 사용하는 스킨의 write.php와 view.php


7. DB에 필드 추가
          schema.sql  (제로보드 설치된 디렉토리에)




========================================================

1번 파일을 수정합니다. 1번이 수정할때가 젤 많거든요. 준비하시고......
         * 수정하면서 느낀것이지만 파일검사는 함수로 만드는게 더 좋겠더군요.(제작자님께)

내용을 '업로드'로 검색을 하시면


/*************************
업로드가 있을때
*************************/
를 찾을수 있습니다.

                    저는 188번줄인데요.(다른분은 틀릴수 있지요)


1번과 2번을 처리하는게 보입니다.
/***************************************************************************
* 업로드가 있을때
**************************************************************************/
        if($HTTP_POST_FILES[file1]) {
                $file1 = $HTTP_POST_FILES[file1][tmp_name];
                $file1_name = $HTTP_POST_FILES[file1][name];
                $file1_size = $HTTP_POST_FILES[file1][size];
                $file1_type = $HTTP_POST_FILES[file1][type];
        }
        if($HTTP_POST_FILES[file2]) {
                $file2 = $HTTP_POST_FILES[file2][tmp_name];
                $file2_name = $HTTP_POST_FILES[file2][name];
                $file2_size = $HTTP_POST_FILES[file2][size];
                $file2_type = $HTTP_POST_FILES[file2][type];
        }
  
아래에 추가합니다.  (저는 2개를 추가했는데 필요한 만큼 추가하세요.

        if($HTTP_POST_FILES[file3]) {
                $file3 = $HTTP_POST_FILES[file3][tmp_name];
                $file3_name = $HTTP_POST_FILES[file3][name];
                $file3_size = $HTTP_POST_FILES[file3][size];
                $file3_type = $HTTP_POST_FILES[file3][type];
        }
        if($HTTP_POST_FILES[file4]) {
                $file4 = $HTTP_POST_FILES[file4][tmp_name];
                $file4_name = $HTTP_POST_FILES[file4][name];
                $file4_size = $HTTP_POST_FILES[file4][size];
                $file4_type = $HTTP_POST_FILES[file4][type];
        }


바로 밑에 아래와 같은 내용이 있습니다.
(실제 파일을 올리는 기능입니다.)

        if($file1_size>0&&$setup[use_pds]&&$file1) {

                if(!is_uploaded_file($file1)) Error("정상적인 방법으로 업로드 해주세요");
                if($file1_name==$file2_name)Error("같은 파일은 등록할수 없습니다");
                $file1_size=filesize($file1);

                if($setup[max_upload_size]<$file1_size&&!$is_admin) error("첫번째 파일 업로드는 최고 ".GetFileSize($setup[ma
x_upload_size])." 까지 가능합니다");

                // 업로드 금지
                      if($file1_size>0) {
                        $s_file_name1=$file1_name;
                        if(eregi("\.inc",$s_file_name1)||eregi("\.phtm",$s_file_name1)||eregi("\.htm",$s_file_name1)||eregi(
"\.shtm",$s_file_name1)||eregi("\.ztx",$s_file_name1)||eregi("\.php",$s_file_name1)||eregi("\.dot",$s_file_name1)||eregi("\.
asp",$s_file_name1)||eregi("\.cgi",$s_file_name1)||eregi("\.pl",$s_file_name1)) Error("Html, PHP 관련파일은 업로드할수 없습?
求?);

                        //확장자 검사
                        if($setup[pds_ext1]) {
                                $temp=explode(".",$s_file_name1);
                                $s_point=count($temp)-1;
                                $upload_check=$temp[$s_point];
                                if(!eregi($upload_check,$setup[pds_ext1])||!$upload_check) Error("첫번째 업로드는 $setup[pds
_ext1] 확장자만 가능합니다");
                        }

                        $file1=eregi_replace("\\\\","\\",$file1);
                        $s_file_name1=str_replace(" ","_",$s_file_name1);
                        $s_file_name1=str_replace("-","_",$s_file_name1);

                        // 디렉토리를 검사함
                        if(!is_dir("data/".$id)) {
                                @mkdir("data/".$id,0777);
                                @chmod("data/".$id,0706);
                        }

                        // 중복파일이 있을때;;
                        if(file_exists("data/$id/".$s_file_name1)) {
                                @mkdir("data/$id/".$reg_date,0777);
                                if(!move_uploaded_file($file1,"data/$id/".$reg_date."/".$s_file_name1)) Error("파일업로드가
제대로 되지 않았습니다");
                                $file_name1="data/$id/".$reg_date."/".$s_file_name1;
                                @chmod($file_name1,0706);
                                @chmod("data/$id/".$reg_date,0707);
                        } else {
                                if(!move_uploaded_file($file1,"data/$id/".$s_file_name1)) Error("파일업로드가 제대로 되지 않
았습니다");
                                $file_name1="data/$id/".$s_file_name1;
                                @chmod($file_name1,0706);
                        }
          
여기까지가 1번 파일을 처리하는 것이고 바로 밑이 2번을 처리하는게 보입니다.
아래 2번이 시작하는게 보입니다.
----------------------------------------------------------------
       if($file2_size>0&&$setup[use_pds]&&$file2) {
                if(!is_uploaded_file($file2)) Error("정상적인 방법으로 업로드 해주세요");
                $file2_size=filesize($file2);
                if($setup[max_upload_size]<$file2_size&&!$is_admin) error("파일 업로드는 최고 ".GetFileSize($setup[max_uploa
d_size])." 까지 가능합니다");

----------------------------------------------------------------
1번을 복사해서 3, 4번을 만드는 것입니다.

실제 소스는 아래와같습니다. 복사해서 붙여넣기 하실때 줄이 분리되면 안됩니다.(주의!)

        if($file3_size>0&&$setup[use_pds]&&$file3) {
                if(!is_uploaded_file($file3)) Error("정상적인 방법으로 업로드 해주세요");
                $file3_size=filesize($file3);
                if($setup[max_upload_size]<$file3_size&&!$is_admin) error("파일 업로드는 최고 ".GetFileSize($setup[max_uploa
d_size])." 까지 가능합니다");
                if($file3_size>0) {
                        $s_file_name3=$file3_name;
                        if(eregi("\.inc",$s_file_name3)||eregi("\.pht",$s_file_name3)||eregi("\.htm",$s_file_name3)||eregi("
\.shtml",$s_file_name3)||eregi("\.ztx",$s_file_name3)||eregi("\.php",$s_file_name3)||eregi("\.dot",$s_file_name3)||eregi("\.
asp",$s_file_name3)||eregi("\.cgi",$s_file_name3)||eregi("\.pl",$s_file_name3)) Error("Html, PHP 관련파일은 업로드할수 없습?
求?);

                        //확장자 검사
                        if($setup[pds_ext2]) {
                                $temp=explode(".",$s_file_name3);
                                $s_point=count($temp)-1;
                                $upload_check=$temp[$s_point];
                                if(!eregi($upload_check,$setup[pds_ext2])||!$upload_check) Error("업로드는 $setup[pds_ext2]
확장자만 가능합니다");
                        }

                        $file3=eregi_replace("\\\\","\\",$file3);
                        $s_file_name3=str_replace(" ","_",$s_file_name3);
                        $s_file_name3=str_replace("-","_",$s_file_name3);

                        // 디렉토리를 검사함
                        if(!is_dir("data/".$id)) {
                                mkdir("data/".$id,0777);
                                @chmod("data/".$id,0706);
                        }

                        // 중복파일이 있을때;;
                        if(file_exists("data/$id/".$s_file_name3)) {
                                @mkdir("data/$id/".$reg_date,0777);
                                if(!move_uploaded_file($file3,"data/$id/".$reg_date."/".$s_file_name3)) Error("파일업로드가
제대로 되지 않았습니다");
                                $file_name3="data/$id/".$reg_date."/".$s_file_name3;
                                @chmod($file_name3,0706);
                                @chmod("data/$id/".$reg_date,0707);
                        } else {
                                if(!move_uploaded_file($file3,"data/$id/".$s_file_name3)) Error("파일업로드가 제대로 되지 않
았습니다");
                                $file_name3="data/$id/".$s_file_name3;
                                @chmod($file_name3,0706);
                        }
                }
        }

        if($file4_size>0&&$setup[use_pds]&&$file4) {
                if(!is_uploaded_file($file4)) Error("정상적인 방법으로 업로드 해주세요");
                $file4_size=filesize($file4);
                if($setup[max_upload_size]<$file4_size&&!$is_admin) error("파일 업로드는 최고 ".GetFileSize($setup[max_uploa
d_size])." 까지 가능합니다");
                if($file4_size>0) {
                        $s_file_name4=$file4_name;
                        if(eregi("\.inc",$s_file_name4)||eregi("\.pht",$s_file_name4)||eregi("\.htm",$s_file_name4)||eregi("
\.shtml",$s_file_name4)||eregi("\.ztx",$s_file_name4)||eregi("\.php",$s_file_name4)||eregi("\.dot",$s_file_name4)||eregi("\.
asp",$s_file_name4)||eregi("\.cgi",$s_file_name4)||eregi("\.pl",$s_file_name4)) Error("Html, PHP 관련파일은 업로드할수 없습?
求?);

                        //확장자 검사
                        if($setup[pds_ext2]) {
                                $temp=explode(".",$s_file_name4);
                                $s_point=count($temp)-1;
                                $upload_check=$temp[$s_point];
                                if(!eregi($upload_check,$setup[pds_ext2])||!$upload_check) Error("업로드는 $setup[pds_ext2]
확장자만 가능합니다");
                        }
                       $file4=eregi_replace("\\\\","\\",$file4);
                        $s_file_name4=str_replace(" ","_",$s_file_name4);
                        $s_file_name4=str_replace("-","_",$s_file_name4);

                        // 디렉토리를 검사함
                        if(!is_dir("data/".$id)) {
                                mkdir("data/".$id,0777);
                                @chmod("data/".$id,0706);
                        }

                        // 중복파일이 있을때;;
                        if(file_exists("data/$id/".$s_file_name4)) {
                                @mkdir("data/$id/".$reg_date,0777);
                                if(!move_uploaded_file($file4,"data/$id/".$reg_date."/".$s_file_name4)) Error("파일업로드가
제대로 되지 않았습니다");
                                $file_name4="data/$id/".$reg_date."/".$s_file_name4;
                                @chmod($file_name4,0706);
                                @chmod("data/$id/".$reg_date,0707);
                        } else {
                                if(!move_uploaded_file($file4,"data/$id/".$s_file_name4)) Error("파일업로드가 제대로 되지 않
았습니다");
                                $file_name4="data/$id/".$s_file_name4;
                                @chmod($file_name4,0706);
                        }
                }
        }

참고로만 하시고 본인의 1번이나 2번을 복사해서 붙여넣기 하신다음 고치시는게 더 좋습니다.

=============================================================

/***************************************************************************
* 수정글일때
**************************************************************************/
를 찾습니다. 바로 밑에
아래와 같은 내용이 있지요.
  
                // 파일삭제
                if($del_file1==1) {@z_unlink("./".$s_data[file_name1]);$del_que1=",file_name1='',s_file_name1=''";}
                if($del_file2==1) {@z_unlink("./".$s_data[file_name2]);$del_que2=",file_name2='',s_file_name2=''";}

                // 파일등록
                if($file_name1) {$del_que1=",file_name1='$file_name1',s_file_name1='$s_file_name1'";}
                if($file_name2) {$del_que2=",file_name2='$file_name2',s_file_name2='$s_file_name2'";}


이렇게 수정합니다. (붙여넣기가 편하겠죠?)


                // 파일삭제
                if($del_file1==1) {@z_unlink("./".$s_data[file_name1]);$del_que1=",file_name1='',s_file_name1=''";}
                if($del_file2==1) {@z_unlink("./".$s_data[file_name2]);$del_que2=",file_name2='',s_file_name2=''";}
                if($del_file3==1) {@z_unlink("./".$s_data[file_name3]);$del_que3=",file_name3='',s_file_name3=''";}
                if($del_file4==1) {@z_unlink("./".$s_data[file_name4]);$del_que4=",file_name4='',s_file_name4=''";}

                // 파일등록
                if($file_name1) {$del_que1=",file_name1='$file_name1',s_file_name1='$s_file_name1'";}
                if($file_name2) {$del_que2=",file_name2='$file_name2',s_file_name2='$s_file_name2'";}
                if($file_name3) {$del_que3=",file_name3='$file_name3',s_file_name3='$s_file_name3'";}
                if($file_name4) {$del_que4=",file_name4='$file_name4',s_file_name4='$s_file_name4'";}

다음, 아래쪽에
아래의 내용을 찾으세요.
약 60줄정도 내려가면 됩니다.

               // 공지 -> 일반글
                if(!$notice&&$s_data[headnum]<="-2000000000") {
                        $temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$id"));
                        $max_division=$temp[0];
                        $temp=mysql_fetch_array(mysql_query("select max(division) from $t_division"."_$id where num>0 and di
vision!='$max_division'"));
                        if(!$temp[0]) $second_division=0; else $second_division=$temp[0];

                        // 헤드넘+1 한값을 가짐;;
                        $max_headnum=mysql_fetch_array(mysql_query("select min(headnum) from $t_board"."_$id where (division
='$max_division' or division='$second_division') and headnum>-2000000000")); // 공지가 아닌 최소 headnum 구함
                        $headnum=$max_headnum[0]-1;

                        $next_data=mysql_fetch_array(mysql_query("select no,headnum,division from $t_board"."_$id where (div
ision='$max_division' or division='$second_division') and headnum='$max_headnum[0]' and arrangenum='0'")); // 다음글을 구함;
;
                        if(!$next_data[0]) $next_data[0]="0";
                        $next_no=$next_data[0];

                        if(!$next_data[division]) $division=1; else $division=$next_data[division];

                        $prev_data=mysql_fetch_array(mysql_query("select no from $t_board"."_$id where (division='$max_divis
ion' or division='$second_division') and headnum<'$headnum' and no!='$no' order by headnum desc limit 1")); // 이전글을 구함
;;
                        if($prev_data[0]) $prev_no=$prev_data[0]; else $prev_no=0;

                        $child="0";
                        $depth="0";
                        $arrangenum="0";
                        $father="0";
                        minus_division($s_data[division]);
                        @mysql_query("update $t_board"."_$id set ".$mat1."headnum='$headnum',prev_no='$prev_no',next_no='$ne
xt_no',child='$child',depth='$depth',arrangenum='$arrangenum',father='$father',name='$name',email='$email',homepage='$homepa
ge',subject='$subject',cost='$cost',memo='$memo',sitelink1='$sitelink1',sitelink2='$sitelink2',use_html='$use_html',reply_ma
il='$reply_mail',is_secret='$is_secret',category='$category' $del_que1 $del_que2 where no='$no'") or err
or(mysql_error());
                                                                                                ^--  이부분

여기에서 del_que1 $del_que2 옆에 del_que3 $del_que4 추가합니다. 사이에 한칸이상 빈칸이 있어야 합니다.

category='$category' $del_que1 $del_que2 $del_que3 $del_que4 where no='$no'")   이렇게 되겠죠.

아래쪽에 2개더 같은 방법으로 바꾸셔야 합니다.


// 일반글 -> 공지

           밑에 한개
@mysql_query("update $t_board"."_$id set   이렇게 시작합니다.

// 일반->일반, 공지->공지 일때    

          밑에 한개
@mysql_query("update $t_board"."_$id set    여기도 마찬가지.






=======================================================


내용을 '신규' 로 검색을 해보시면
***********************
신규 글쓰기일때
**********************
이 부분이 보입니다.  여기를 기준으로 조금 내려가 보면

                mysql_query("insert into $t_board"."_$id (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ism
ember,memo,ip,password,name,homepage,email,subject,use_html

을 찾을수 있지요.

그 줄에 보시면

file_name1,file_name2,s_file_name1,s_file_name2 와
'$file_name1','$file_name2','$s_file_name1','$s_file_name2'

이렇 내용을 보실수 있는데
아래의 내용을 추가하셔야 합니다.

file_name3,file_name4,s_file_name3,s_file_name4
'$file_name3','$file_name4','$s_file_name3','$s_file_name4'


제 소스를 보여드립니다만 좀 수정된게 많아 장담은 못하니 참고만 하시길 권장합니다.

             mysql_query("insert into $t_board"."_$id (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ism
ember,memo,ip,password,name,homepage,email,subject,use_html,reply_mail,category,is_secret,sitelink1,sitelink2,file_name1,fil
e_name2,file_name3,file_name4,s_file_name1,s_file_name2,s_file_name3,s_file_name4,x,y,reg_date,islevel) values
('$division','$headnum','$arrangenum','$depth','$prev_no','$next_no','$father','$child','$member[no]','$memo','$ip','$passw
ord','$name','$homepage','$email','$subject','$use_html','$reply_mail','$category','$is_secret','$sitelink1','$sitelink2','$
file_name1','$file_name2','$file_name3','$file_name4','$s_file_name1','$s_file_name2','$s_file_name3','$s_file_name4','$x','$y','$reg_date','$member[is_admin]')") or error(mysql_error());





========================================================

/***************************************************************************
* 답변글일때
**************************************************************************/
를 찾습니다.

아래에 보시면 위에서 찾은 내용과 같은 내용이 보입니다.

똑같은 방법으로 수정해 주시면 됩니다.

정말 복잡하죠?

이걸 왜 나두 쓰는지....

다음은 정말 쉽습니다.

여기까지 하신분은 99% 성공 가능.


======================================================================
그럼 2번 delete_ok.php

게시물을 삭제할때 함께 파일도 선택하기 위해서죠.

안해도 상관없습니다만, 필요없는 자료가 생기겠죠?

72번째 줄쯤에

  // 파일삭제
   @z_unlink("./".$s_data[file_name1]);
   @z_unlink("./".$s_data[file_name2]);

가 보이죠?

   @z_unlink("./".$s_data[file_name3]);
   @z_unlink("./".$s_data[file_name4]);

밑에 위 내용을 추가.

2번도 끝


=======================================================================
3. write.php 수정하기.
쓰기 스킨에서 사용할 변수를 할당해야 합니다.
$file_name3 과 4 말이죠.

약 80~90번쯤 줄에
   $sitelink1=$data[sitelink1]=stripslashes($data[sitelink1]);
                        $sitelink2=$data[sitelink2]=stripslashes($data[sitelink2]);

                        if($data[file_name1])$file_name1="<br><input type=checkbox name=del_file1 value=1><font color=#BD060
6><b>삭제</b></font>  ".$data[s_file_name1]."이 등록됨." ;
                        if($data[file_name2])$file_name2="<br><input type=checkbox name=del_file2 value=1><font color=#BD060
6><b>삭제</b></font>  ".$data[s_file_name2]."이 등록됨." ;

내용이 있습니다.
바로 아래에

                        if($data[file_name3])$file_name3="<br><input type=checkbox name=del_file3 value=1><font color=#BD060
6><b>삭제</b></font>  ".$data[s_file_name3]."이 등록됨." ;
                        if($data[file_name4])$file_name4="<br><input type=checkbox name=del_file4 value=1><font color=#BD060
6><b>삭제</b></font>  ".$data[s_file_name4]."이 등록됨." ;
을 추가합니다.


======================================================================  


4. view.php
보이게도 해야겠죠?

215번줄 쯤 됩니다.

// 파일링크
        if($file_name1) $a_download1="<a onfocus=blur() href='download.php?$href$sort&no=$no&file=1'>"; else $a_download1="<
Zeroboard ";  
        if($file_name2) $a_download2="<a onfocus=blur() href='download.php?$href$sort&no=$no&file=2'>"; else $a_download2="<
Zeroboard ";
        if($file_name3) $a_download3="<a onfocus=blur() href='download.php?$href$sort&no=$no&file=3'>"; else $a_download3="<
Zeroboard ";   //추가된 부분

        if($file_name4) $a_download4="<a onfocus=blur() href='download.php?$href$sort&no=$no&file=4'>"; else $a_download4="<
Zeroboard ";   //추가된 부분


// 추천버튼
        if(!eregi($setup[no]."_".$no,$HTTP_SESSION_VARS["zb_vote"])) $a_vote="<a onfocus=blur() href='vote.php?$href$sort&no
=$no'>";
        else $a_vote = "<Zeroboard ";

// 사이트 링크를 나타나게 하는 변수;;
        if(!$sitelink1) {$hide_sitelink1_start="<!--";$hide_sitelink1_end="-->";}
        if(!$sitelink2) {$hide_sitelink2_start="<!--";$hide_sitelink2_end="-->";}

// 파일 다운로드를 나타나게 하는 변수;;
        if(!$file_name1) {$hide_download1_start="<!--";$hide_download1_end="-->";}
        if(!$file_name2) {$hide_download2_start="<!--";$hide_download2_end="-->";}
        if(!$file_name3) {$hide_download3_start="<!--";$hide_download3_end="-->";}   //추가된 부분
        if(!$file_name4) {$hide_download4_start="<!--";$hide_download4_end="-->";}   //추가된 부분




======================================================================  


5. list_check.txt 를  다운받아

제로보드디렉토리/include/list_check.php로 바꿉니다.

다운받은 다음 이름을 list_check.php로 바꿔서 FTP로 올리면 되겠죠?

http://foodiya.com/bbs/data/zboard/list_check.txt

======================================================================  



6. 이제 실제 스킨에서 파일을 올리게 해 줘야 겠지요?

사용하는 스킨의 write.php파일을 엽니다.

예를 들어 snowboard 스킨을 사용한다면

skin/snowboard 디렉토리에 있겠죠.


파일을 저장하는 곳을 보면

<input type=file name=file1 <?=size(50)?> maxlength=255> <?=$file_name1?>
이런 내용이 있을겁니다.

<input type=file name=file2 <?=size(50)?> maxlength=255> <?=$file_name2?>
이렇게 2번도 있겠죠?


<input type=file name=file3 <?=size(50)?> maxlength=255> <?=$file_name3?>
<input type=file name=file3 <?=size(50)?> maxlength=255> <?=$file_name4?>

이렇게 추가하면 되겠죠?

제가 쓰는 예를 보여드리죠.
<tr>
  <td align=right> <img src=<?=$dir?>/w_upload2.gif border=0> </td>
  <td> <input type=file name=file3 <?=size(50)?> maxlength=255 class=input> <?=$file_name3?></td>
</tr>
<tr>
  <td align=right> <img src=<?=$dir?>/w_upload2.gif border=0> </td>
  <td> <input type=file name=file4 <?=size(50)?> maxlength=255 class=input> <?=$file_name4?></td>
</tr>


내용을 보이게 하는게 하는것도 중요하죠?
같은 디렉토리의  view.php파일을 수정합니다.
제가 사용하는 스킨에서 이렇게 사용합니다.

<?=$hide_download3_start?>
<tr>
<td align=right ><img src=<?=$dir?>/w_upload2.gif border=0>  </td>
<td ><?=$a_file_link3?><?=$file_name3?> (<?=$file_size3?>)</a>, Download : <?=$file_download3?></td>
</tr>

<tr><td height=1 colspan=6 background=<?=$dir?>/dot2.gif><img src=<?=$dir?>/dot2.gif border=0 height=1></td>
<?=$hide_download3_end?>


<?=$hide_download4_start?>
<tr>
<td align=right ><img src=<?=$dir?>/w_upload2.gif border=0>  </td>
<td ><?=$a_file_link4?><?=$file_name4?> (<?=$file_size4?>)</a>, Download : <?=$file_download4?></td>
</tr>

<?=$hide_download4_end?>



================================================================================
7. 마지막 디비를 수정해야 합니다.

기본 게시판에는 파일을 2개까지만 작성할수 있게 되어 있지요.

기존의 게시판을 가지고 계신분이 추가를 할려면, phpadmin 같은 툴로

file_name3, file_name4   s_file_name3, s_file_name4 를 추가해 주면 됩니다.
파일이 길이는 varchar[255] 로 잡으시면 되죠.

처음 설치하시는 분은 제로보드의 스크립트 파일을 수정해 놓는게 좋습니다.

그래야 일일이 게시판마다 필드를 추가할 필요가 없기때문이죠.

스크립트 파일은

제로보드 설치디렉토리의 schema.sql 입니다.

본체테이블을 찾으세요 '본체로 찾으시면 빠릅니다.'

    file_name1 char(255),
    file_name2 char(255),
    s_file_name1 char(255),
    s_file_name2 char(255),
    download1 int(11) default '0' not null,
    download2 int(11) default '0' not null,

위 내용을 찾을수 잇을텐데요.

    file_name1 char(255),
    file_name2 char(255),
    file_name3 char(255),
    file_name4 char(255),
    s_file_name1 char(255),
    s_file_name2 char(255),
    s_file_name3 char(255),
    s_file_name4 char(255),
    download1 int(11) default '0' not null,
    download2 int(11) default '0' not null,
    download3 int(11) default '0' not null,
    download4 int(11) default '0' not null,

이렇게 수정하시면 끝입니다.

여기까지 하실 수 있는 분이 몇분이나 되실련지....

* 참고로 확장자 검사는 두번째 첨부파일의 설정을 읽으므로
두번째 파일이 허용하는 확장자만 올릴수 있습니다.


질문하시기 전에 제 홈피에서 검색해 보시고 질문은 제 홈피에 해주세요


추가 변경해야 할 부분 --------------

- 허호님 코멘트
*** 추가 변경될 부분 ㅜ.ㅜ

1. write_ok.php
2. delete_ok.php
3. write.php 수정(저장할때 변수할당)
4. view.php 수정 (내용보기에 필요한 변수할당)
(여기까지는 제로보드 설치된 디렉토리에)

5. include/list_check.php

6. 사용하는 스킨의 write.php와 view.php
7. DB에 필드 추가
schema.sql (제로보드 설치된 디렉토리에)
============
8. 사용하는 스킨의 list_check.php

9. zboard.php

10. admin폴더의 arrangefile.php

11. admin폴더의 arrangefile2.php

**********
1~7 번까지 성공 하신분들은 8~11 번은 쉽게 하실수 있습니다

- Alsmini님 코멘트
위에 작업부분에서 빠져있는 부분 입니다.

위에 조기성님이 말씀 하신 부분중요..... 아주 중요한 점이 빠져 있습니다.

위대로만 작업을 한다면.... "첨부파일 정리" 에서..
"쓰레기 파일 검사"시..

파일 3, 4 에 올려진 파일은 모두 쓰레기 파일로 분류되어.. 삭제를 당하게 됩니다.

상황에 따라서.... 엄청난 버그(?) 일 수 있는 문제지요...
그걸 방지 하려면.. admin/arrangefile.php 와.. admin/arrangefile2.php 를 수정 하셔야 합니다.

저 같은 경우엔.. 파일 10개를 올릴 수 있게 고쳤는데..
일찍 발견 하지 못 했다면... 큰 남패를 볼 뻔 했네요....

http://alsmini.net 에 파일 10개에 해당하는 arrangefile/arrangefile2 내용 올려 뒀습니다.

- haze님 코멘트
게시물을 이동/복사할 때에도 신경써줘야겠지요..

>>>> list_all.php

/**************************************
* Delete_All 일때 (선택된 게시물 삭제)
****************************************

// 파일삭제
@z_unlink("./".$temp[file_name1]);
@z_unlink("./".$temp[file_name2]);
@z_unlink("./".$temp[file_name3]);
@z_unlink("./".$temp[file_name4]);



/************************************
* Copy All 일때 (선택된 게시물 이동)
************************************

// 업로드된 파일이 있을경우 처리 #2
if($data[s_file_name2]) {
$temp_ext=time();
@mkdir("./data/$board_name/".$temp_ext,0777);
@copy($data[file_name2] , "./data/$board_name/".$temp_ext."/".$data[s_file_name2]);
$data[file_name2]="data/$board_name/".$temp_ext."/".$data[s_file_name2];
@chmod("./".$data[file_name2],0706);
@chmod("./data/$board_name/".$temp_ext,0707);
}
// 업로드된 파일이 있을경우 처리 #3
if($data[s_file_name3]) {
$temp_ext=time();
@mkdir("./data/$board_name/".$temp_ext,0777);
@copy($data[file_name3] , "./data/$board_name/".$temp_ext."/".$data[s_file_name3]);
$data[file_name3]="data/$board_name/".$temp_ext."/".$data[s_file_name3];
@chmod("./".$data[file_name3],0706);
@chmod("./data/$board_name/".$temp_ext,0707);
}

// 업로드된 파일이 있을경우 처리 #4
if($data[s_file_name4]) {
$temp_ext=time();
@mkdir("./data/$board_name/".$temp_ext,0777);
@copy($data[file_name4] , "./data/$board_name/".$temp_ext."/".$data[s_file_name4]);
$data[file_name4]="data/$board_name/".$temp_ext."/".$data[s_file_name4];
@chmod("./".$data[file_name4],0706);
@chmod("./data/$board_name/".$temp_ext,0707);
}


// 게시물 삭제시 기록 남길 경우
mysql_query("insert into $t_board"."_$board_name (division,headnum,arrangenum,depth,prev_no,next_no,father,child,ismember,memo,ip,password,name,homepage,email,subject,use_html,reply_mail,category,is_secret,sitelink1,sitelink2,file_name1,file_name2,file_name3,file_name4,s_file_name1,s_file_name2,s_file_name3,s_file_name4,x,y,reg_date,islevel,hit,vote,download1,download2,download3,download4,total_comment) values ('$data[division]','$data[headnum]','$data[arrangenum]','$data[depth]','$data[prev_no]','$data[next_no]','$data[father]','$data[child]','$data[ismember]','$data[memo]','$data[ip]','$data[password]','$data[name]','$data[homepage]','$data[email]','$data[subject]','$data[use_html]','$data[reply_mail]','$data[category]','$data[is_secret]','$data[sitelink1]','$data[sitelink2]','$data[file_name1]','$data[file_name2]','$data[file_name3]','$data[file_name4]','$data[s_file_name1]','$data[s_file_name2]','$data[s_file_name3]','$data[s_file_name4]','$data[x]','$data[y]','$data[reg_date]','$data[islevel]','$data[hit]','$data[vote]','$data[download1]','$data[download2]','$data[download3]','$data[download4]','$data[total_comment]')") or error(mysql_error()); 2003-06-26
14:25:04

-처누 코멘트
게시판의 DB를 추가한 상태에서 기존의 게시판에서 글을 작성하면 Unknown column ...  in 'field list' 라는 에러가 생깁니다. 기존의 게시판에는 추가된 DB의 필드가 없기 때문입니다.

전 편법 비슷하게 이렇게 해결을 하였습니다.

bbs 폴더 밑의 write_ok.php 파일을 두개로 나눕니다.
write_ok.php 는 기존 게시판 (기존 게시판이 훨씬 많을 경우죠..
새로 만들 게시판이 많다면 기존의 write_ok.php를 다른 이름으로
변경하시는것이 좋을듯 합니다.) write_ok_4.php 는 수정된 게시판 이렇게 2개의 파일을 만듭니다.

bbs폴더의 _head.php의 19번째줄에 "write_ok2.php",를 추가합니다.
ex) $_zb_file_list = array "apply_vote.php",...,"write_ok.php","write_ok_4.php",..

변경한 게시판 스킨 폴더의 write.php에서
<form method=post name=write action=write_ok.php..> 부분을
<form method=post name=write action=write_ok_4.php..>
이렇게 변경합니다.

중간에 게시판을 바꾸신분은 편법이지만 이렇게라도 써야 할것 같습니다.

도움이 되셨기를..

고니님이 올려주신 글 (http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&sn1=&divpage=1&sn=off&ss=on&sc=on&keyword=Unknown%20column%20&select_arrange=headnum&desc=asc&no=4187)을 참조하였습니다.

올린이 : 정념, 정행
출   처 : http://www.nzeo.com/bbs/zboard.php?id=cgi_tip&page=1&page_num=15&select_arrange=headnum&desc=&sn=off&ss=on&sc=off&keyword=첨부&no=3783&category=
?

공부 게시판

공부에 도움되는 글을 올려주세요.

List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
공지 [공지] 공부 게시판 입니다. 처누 2003.08.18 927915
2446 웹 프로그래밍 최근 게시물 출력시 링크게시물에 스타일시트 적용하기 처누 2003.11.06 7927
2445 웹 프로그래밍 제로보드 첨부파일 동영상 재생 처누 2003.11.15 7537
2444 웹 프로그래밍 제로보드 멀티미디어 파일 URL만 써주면 알아서 출력 처누 2003.11.15 7080
2443 웹 프로그래밍 제로보드 1970년 이전 생일 제대로 표시하기 완벽 가이드 처누 2003.11.15 8695
2442 웹 프로그래밍 PHP에서 date 함수 설명 처누 2003.11.16 7010
2441 웹 프로그래밍 제로보드에서 회원생일 메일 보내기 처누 2003.11.16 7971
» 웹 프로그래밍 제로보드 첨부파일 더 늘리기 (2개에서 4개로) 처누 2003.12.10 10298
2439 윈도우즈 질문~ 인터넷 창의 무한 오픈.. -.- 2 진구 2004.01.25 8544
2438 윈도우즈 MSN 메신저에 저장되어 있는 passport 계정 정보를 없애는 팁 처누 2004.03.13 8981
2437 윈도우즈 IIS SMTP를 설치했으나 IIS 관리자에서 보이지 않는다. 처누 2004.03.13 7262
2436 윈도우즈 윈도우즈에서 돌아가는 default process들... 처누 2004.04.15 6089
2435 윈도우즈 svchost.exe에 대하여.. file 처누 2004.04.15 6999
2434 데이터베이스 mySQL에서 사용자와 권한 처누 2004.04.16 7932
2433 하드웨어 PC를 위한 전원공급장치(파워서플라이)의 선택요령 처누 2004.04.23 6175
2432 하드웨어 HDD를 많이 장착하고 싶을때 유용한 케이스 1 처누 2004.04.28 8034
2431 기타 생활에 유용한 잔지식들.. JaeSoo 2004.05.01 6078
2430 하드웨어 컴퓨터와 전기료 (한달 627원) 처누 2004.05.07 6548
2429 윈도우즈 마우스로 끄는 동안 창의 내용을 보이기 처누 2004.05.10 8206
2428 윈도우즈 싸써웜 같은 RPC Attack Filter 정책 적용하기 file 처누 2004.05.12 7274
2427 연애 연인을 감동시키는 말 한마디 처누 2004.05.12 8618
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 124 Next
/ 124


즐겨찾기 (가족)

JAESOO's HOMEPAGE


YOUNGAE's HOMEPAGE


장여은 홈페이지


장여희 홈페이지


장여원 홈페이지


즐겨찾기 (업무)

알리카페 홀릭

숭실대 컴퓨터 통신연구실 (서창진)

말레이시아 KL Sentral 한국인 GuestHouse


즐겨찾기 (취미)

어드민아이디

유에코 사랑회

아스가르드 좋은사람/나쁜사람

JServer.kr

제이서버 메타블로그

재수 티스토리


즐겨찾기 (강의, 커뮤니티)

재수 강의 홈페이지


한소리


VTMODE.COM


숭실대 인공지능학과


숭실대 통신연구실


베너