[첫화면으로]UseModWiki소스수정/반영된사용자의견archive05

마지막으로 [b]

1. CSS 사용합시다.
2. 모질라에서 주소 인코딩 문제
3. 최근변경내역에서 항목 중복되는 문제
4. ISBN
5. html 주석 속의 ampersand
6. 업로드패치, 시스템로긴
7. ISBN 에서 책표지가 없을 때...
8. Anchor
9. 간단한 화일업로드 스크립트
10. DB연동

1. CSS 사용합시다.

스타일쉬트논의 로 옮깁니다.

완료됨.
-- Raymundo 2003-3-10 9:07 pm

2. 모질라에서 주소 인코딩 문제

지금 [이곳]에서 nomenu라는 액션을 추가하여 이것을 대문에 활용중입니다. 인덱스.html에서 meta태그로 페이지 리디렉션을 걸었는데(대부분 동일하게 사용하죠?) 이거이 페이지 주소가 모질라에서 제대로 나오질 않는군요, getparam함수를 수정하려고 하니 사용자 관련부분이 먹통이 되버리구요. 문제는 이게 제가 임의로 집어넣어서 쓰고 있는 nomenu라는 액션만의 문제가 아니라 edit, browse등등 action과 id를 받는 모든 부분에서 문제의 소지가 있다는게 진짜 문제 겠습니다..(문제문제-_-;;) 원인이 모질라의 인코딩쪽인지 아니면 위키 소스 쪽인지 갈피가 안잡힙니다. 어떻게 해야하나... T^T
-- Bab2 2002-12-28 1:28 am

종종 느끼는 건데, Bab2님은 해야 될 말을 다 안 하고 생략하시는 경향이... ^^; 자세히 적는다고 제가 해결할 능력이 있는것은 물론 아닙니다만... ;-) nomenu 는 뭐고 getparam 은 무슨 관계가 있는지 감이 안 오는데요. 인코딩이라 하시길래 URL 에 한글이 들어가 있는 경우의 문제를 말씀하시는 건 줄 알았는데 (이 문제에 한해서는, 저는 다른 건 다 양보해도 한글을 아스키문자로 인코딩해가면서까지 브라우저를 고려해주고 싶지는 않더군요) 그도 아닌 것 같고요? (아니면 그게 맞나? -_-a)
-- Raymundo 2002-12-28 2:27 am
에.. -ㅅ-a http://bab2.os2forum.com/home.htm 이걸 보시면 될 거 같습니다. 피닉스나 넷스, 모질라에서 한번 실행시켜 보세요.(링크를 누르지 마시고 주소창에서 직접 입력.) 즐거운 크리스마스 되셨나 모르겠군여.. ㅜㅡ
-- Bab2 2002-12-28 3:28 pm

모질라와 K브라우저로 해봤습니다. 결국 리다이렉션하고는 큰 상관없는 문제 아닌가요? 모질라는 주소창에 한글을 넣으면 제대로 안 되더군요. 리다이렉션 타겟 주소에 한글이 들어가 있어도 안 되고요. K브라우저는 주소창에 한글이 들어가 있어도 잘 처리하고, Bab2 님 홈페이지를 통해서 들어가도 역시 잘 리다이렉션 되네요. 아마 오페라도 제대로 안 될 겁니다. 어쨌거나 해결책은 NoSmokeWikiX 처럼 URL 에 포함된 한글을 인코딩하도록 하는 것이겠습니다만... 즐거운 연말 되세요~
-- Raymundo 2002-12-28 6:31 pm

귀찮아서 :-) 더 고민하고 싶지 않음. 완료
-- Raymundo 2003-3-10 9:07 pm

3. 최근변경내역에서 항목 중복되는 문제

음... 언제 이런 일이 생기는지까지는 정확히 파악하지 못했습니다. rclog를 보면 같은 시간에 두번 이상 수정된 걸로 기록되는 경우가 있는데(우째서 이런 일이!), 이 때 최근변경내역에서 그 항목이 겹쳐서 나오더군요. 예전에 재목님 홈페이지에서 이런 일이 생긴다는 것을 본 기억이 있어서 혹시나 하고 봤더니 Raymundo님이 올려두신 소스가 그 경우를 처리한 것이네요. 그런데 지금 사용하시는 방법에 문제가 있는게... $oldts를 비교하기 때문에 최근변경내역을 날짜순으로 출력하면 하나도 안나오게 됩니다. $newtop 값에 따라서 비교를 반대로 하거나, 아니면 다음과 같이 수정해줄 수 있겠지요.

        @outrc = reverse @outrc if ($newtop);
        foreach $rcline (@outrc) {
                ($ts, $pagename, $summary, $isEdit, $host, $kind, $extraTemp)
                        = split(/$FS3/, $rcline);
                # Later: need to change $all for new-RC?
                next  if ((!$all) && (($ts < $changetime{$pagename})||($changetime{$pagename}==-1)));
                next  if (($idOnly ne "") && ($idOnly ne $pagename));
                $changetime{$pagename} = -1;
                %extra = split(/$FS2/, $extraTemp, -1);
        # 이하 생략

제가 고치는 방법이 항상 그렇듯이 $changetime{$pagename}은 항상 양수라는 근거없는 믿음아래, 한번 출력했으면 그 값을 -1로 바꿔서, 다시는 출력하지 않게 하는 겁니다. 물론 이 방법에도 문제는 있는데, rclog에 다음과 같이 있으면 날짜순으로 출력할 때는 (1)이, 역순으로 출력할 때는 (2)가 출력된다는 점이죠. -_-;
 1040746335 웹게임
 1040811935 주절주절
 1040827205 주절주절 ... (1)
 1040827205 주절주절 ... (2)
근본적인 해결을 위해서는 저렇게 두 rc가 같은 시간이 되는 문제를 해결해야 할텐데... 어떻게 하면 좋을까요?
-- 조프 2002-12-26 12:43 pm

제 홈에서는 이런 문제를 본 적이 없어서 지나쳤었는데... 그 oldts 비교하는 문제는 말씀하신 것 (날짜순 출력시 죄다 next 해 버리는) 외에도 정말로 동일한 시각에 수정된 것들이 나란히 있으면 처음 만나는 것만 출력하고 나머지를 버리는 문제도 있더군요. 페이지 여러 개를 한꺼번에 삭제했는데 최근변경내역에는 하나만 나오는 것을 보고야 알았습니다. 좀 신경을 써야겠는데...

"중복"되는 경우란 게... 변경시각, 변경자ID 등등 모든 항목이 동일한 줄이 두 번 연속으로 기록되어 있다는 건가요? 그렇다면, 굳이 oldts 나 다른 복잡한 비교를 할 필요 없이 $rcline 을 $oldrcline 을 추가로 두어서 직전의 rcline 과 이번의 rcline 을 비교하면 되지 않으려나요?
-- Raymundo 2003-3-8 11:47 pm

해결했음. 완료
-- Raymundo 2003-3-10 9:07 pm

4. ISBN

온라인 서점으로 이동 ISBN:8988182650 온라인 서점으로 이동 ISBN:8980545037

이렇게 하면 두 태그가 붙어서 나옵니다. $ISBNPattern = "ISBN:?([0-9- xX]{10,})"; 에서 가운데 스페이스 하나가 걸리는군요. 빼면 되긴 하는데, 문제가 없을지...
-- 조프 2003-3-10 11:48 pm

글쎄요? 문제라고 해도.. 결국 ISBN 넘버를 기입할 때 숫자들 사이에 공백이 있으면 예전에는 인식이 되었지만 저걸 제거하면 안 된다.. 정도밖에 없지 않으려나요? 어쨌거나, 원래의 정규식은 ISBN 넘버 제일 뒤에 무한정 있는 공백을 죄다 먹어버리는 것이 문제이니, 이것은 어떨까요.

"ISBN:?([0-9- xX]{9,}[0-9-xX])" (공백을 포함한 것이 9번 이상, 그 뒤에 공백 아닌 것 하나"

원래의 것이든 이것이든, 번호가 11자리 이상일 경우 뒤의 번호도 죄다 먹어버리니 여전히 좀 애매하긴 하네요. 오리지널 코드에도 이렇게 되어 있었으니, 별 문제 아니라고 생각했던 걸까요?
-- Raymundo 2003-3-11 12:17 am

아, 지금 보니 숫자가 10 개가 아니면 처리하지 않도록 되어 있군요. 그러면 저 위에 적은 것 정도로 무난할 것 같습니다만.. (그런데 공백과 대쉬는 그렇다 쳐도, 저 "x" 와 "X" 는 또 뭐람...)
-- Raymundo 2003-3-11 12:20 am
아 ISBN 중에 X가 들어가는 경우가 있더군요.
-- 조프 2003-3-11 12:42 am
그냥 스페이스를 제거하는 게 훨씬 나은 것 같습니다. 바로 뒤에 숫자가 필요해서 공백 뒤에 숫자를 넣어도 통채로 치환되어 버리긴 마찬가지이니... 대신에 스페이스를 사용하여 표기한 페이지 소스를 퍼올때 주의해야겠군요.
-- Raymundo 2003-3-11 1:48 am

스페이스를 정규표현식에서 제거함.
-- Raymundo 2003-3-11 10:03 pm

5. html 주석 속의 ampersand

희한한 것을 발견했습니다. 위키 페이지 안에 <!-- 와 --> (html 주석문이죠) 사이에 & 기호를 넣고 저장을 하면, 다음번 수정할 때 & 가 &amp; 로 바뀌네요. 그래서 매번 변경, 저장 할 때마다 점점 길어집니다... /부등호표기 패치를 제거하면 이 문제가 발생하지 않습니다. 물론 저 패치를 제거하면 훨씬 더 골치아픈 상황이 발생하니까 절대로 제거할 수 없는 것입니다만.. 애초에 저 패치를 적용했던 이유가, 사용자 데이타가 "&amp;" 라고 적혀 있는 상태에서 페이지를 편집 모드로 들어갈 때 브라우저가 text area 에 기존 데이타를 뿌려주는 과정에서 저것을 덜렁 "&" 라고 바꿔버리는 것 때문이었는데... 이제 보니 저 html 주석 기호 속에 있을 때는 저 변환을 하지 않나 보네요. 그래서 /부등호표기의 코드가 불필요한 변환을 해 버리게 되는 셈이로군요... 해결하려면 매우 복잡해질듯하니.. 그냥 무시하고 살아야 할듯 합니다. -.-;
-- Raymundo 2003-3-15 11:23 pm

굳이 고치고자 한다면 주석문을 치환해서 &으로 되돌려주면 되긴 하겠습니다만.. 이제 위키본체에 한줄 더 추가하는 것도 무서운 터라..ㅜㅡa 그나저나 근영님 서버는 사양이 어떻게 되죠? 예전부터 느꼈던거지만 소스 내용은 거의 차이가 없는데 엄청 빠르게 뜨네요. 부럽..ㅜㅡa
-- Bab2 2003-3-15 11:34 pm

그렇긴 합니다만.. 주석문이란 것을 가려내는 것이 만만치 않을 것 같더라고요. {{{ }}} 태그 속에 있는 경우, 라던가 암튼 바꿔야 할 경우와 바꾸지 말아야 할 경우를 가려야 된다면 어떻게 가려낼 것인가 생각하니 끔찍해서요. ^^; 가릴 필요가 없을 것 같기도 한데, html 주석을 사용하는 경우와 엠퍼센드를 사용하는 경우가 동시에 일어나기도 쉽지 않을 거라고 애써 문제를 외면하는 거죠. :-)

그리고 서버 사양이 문제가 아니라, 이 서버는 정말 쓰는 사람이 없다는 게 아마 이유일 겁니다. 대학 동아리 출신들 17명 정도가 월 만원씩 공동으로 내기로 하고 1기가 프로세서에 SCSI 디스크 (정확한 사양은 지금 기억이 안 납니다) 를 장착한 서버를 통채로 빌렸거든요. 그런데 현재 그 17명 중에서 홈페이지가 있는 사람이 일단 반이 안 되는 걸로 압니다. 호스팅 업체에 공돈을 바치는 것 같아서 아깝습니다만...
-- Raymundo 2003-3-15 11:46 pm

방금 sub gettextarea함수에서 &을 amp로 바꾸는 루틴을 없애고 테스트 해봤는데요, 그렇게해도 pre안에 둘러싸이는 부분은 무조건 amp로 변환되는군요. 주석이랑 pre가 뭔가 관계가 있나보네요. 지금 봐서는 어느 ㅜ분 때문에 그런건지 잘 모르겠으니 그냥 html 잘못으로 해버리죠 ^^? 아.. 그리고, 존재와 의식에 적은 제 글은 지우셔도 됩니다. 괜히 위키분류아닌 페이지를 지저분하게 만든건 아닌지 모르겠네요..^^;;
-- Bab2 2003-3-16 12:36 am

지저분하다뇨, 천만의 말씀입니다. (그리고 '위키분류'인 페이지라도 '지저분하게' 만드시면 안 돼요~ ^^;) 다만 제 홈을 정치토론장 등으로 사용할 생각은 없으니, 나중에 페이지들 정리할 기회가 있으면 그 때쯤 그 부분만 다른 곳으로 옮기든지 하겠습니다. 좋은 주말 되세요..라고 말하려고 하면서 창밖을 보니 비가 오는군요. 이럴 수가.. ㅠ,.ㅠ
-- Raymundo 2003-3-16 11:47 am

주석문 속에 엠퍼샌드가 들어가지 않도록 조심하는 수밖에.. :-( 완료
-- Raymundo 2003-3-16 8:00 pm

6. 업로드패치, 시스템로긴

UseMod:UseModWithUploads 이건 잘 모르겠고 --a

UseMod:WikiPatches/UseSystemLogin 이건 전에 근영님께서 찾으시던거 같은데 답이 될 수도 있겠군요.

게시판에다 쓰려다가 그냥 여기에 써버렸습니다. :)

그리고 오리지날 유즈모드 페이지에 쓰셨던 UTF-8 관련글에서 UTF-8로의 변환은 C의 iconv함수나 iconv실행화일을 사용하면 되긴 하겠지만, 바꿔야될 부분이 너무 많군요.. 특히, 링크패턴 같은거..흐~
-- Bab2 2003-3-15 10:44 pm

업로드... 있긴 있어야 될 것 같죠? 조프님홈이나 폐인월드에서 쓰는 소스 좀 보고 그냥 넣든가 해야겠습니다. 그리고 두번째 것은 제가 찾던 게 맞는 것 같네요. 응용하면 시스템에 계정이 없으면 읽는 것 조차 불가능하게 할 수도 있겠습니다만... 연구실에서 위키를 돌려 본 바로는 지금도 귀찮은건지 어려운건지 사람들이 별 호응이 없는 터라 저것까지 당장에 고려할 필요가 없더군요. :'(
-- Raymundo 2003-3-15 11:03 pm

/화일업로드를 만들긴 했는데, 제대로 만든 건지 영 확신이 안 서네요.
-- Raymundo 2003-3-16 11:47 am

/화일업로드, /UploadedFiles매크로 를 만들었습니다. 완료
-- Raymundo 2003-3-16 8:00 pm

7. ISBN 에서 책표지가 없을 때...

알라딘이나 어제 추가한 일본서점 (이름이 외어지지가 않네요) 에 책표지 그림이 없을때는 그냥 x박스가 나와버리는데... "책표지가 없습니다" 라고 적혀 있는 적당한 크기의 그림 화일 하나를 대신 보여줄 수 있으면 좋을 것 같습니다. 그렇다면 책표지 이미지가 있느냐 없느냐를 판단할 수 있어야 하겠는데, 위키소스에서 먼저 표지 이미지를 원하는 요청을 보내어 404 Not found 등을 받으면 없는 걸로 하는.. 이런 식이라면 좋긴 하겠지만 방법도 모르겠고 너무 귀찮은 작업입니다. :-)

그래서 생각해 낸 것이 img 태그의 속성에 background-image 스타일 속성을 주는 겁니다. 이 경우 이미지가 없으면 x 박스 아래에 이 백그라운드 이미지가 보이는 것까지는 성공을 했는데.. 문제는 백그라운드 이미지 전체가 나오는 게 아니라, x 박스의 크기만큼만 (손톱만하죠) 나오더라는거죠. 그래서 width 속성을 주었더니만 x 박스는 원하는 크기로 나오는데.. 이번에는 멀쩡한 책표지도 거기에 맞춰서 확대 또는 축소되어 버리는군요. -_-;

제가 생각하기에 최선은 width 를 주어서 고정시켜버리는 겁니다. 책표지 그림의 크기가 웹사이트들마다 다르긴 하지만 그래도 크게 차이나지 않으니까, 대충 알라딘의 표지 사이즈 정도에 맞추도록 하면 조금쯤 축소/확대되어도 상관없지 않을까 합니다. 무엇보다도 wiki.pl 에는 별다른 작업이 필요 없다는 것이 제일 매력적이군요. (이미지 태그에 class="isbn" 정도만 해 주면 되지 않을까 합니다)

일단 이대로 작업을 하겠습니다만, 더 좋은 방안이 있으시면 알려주세요..

그리고, 좀 전에 더 당혹스러운 사실을 알았는데, 모질라는 그림이 없으면 x 박스 같은 것 마저도 출력을 안 하고 완전히 무시해버리더라는 겁니다... (width 속성이고 배경이미지고 죄다 무시하고 아예 없는 놈 취급하는..) 이런 경우 아예 이미지나 링크가 있다는 것조차 알 수 없어서... 평범하게 텍스트 링크를 거는 것보다도 못한 상황이 되는군요. -_-;

-- Raymundo 2003-3-11 10:36 pm

리턴값에서 404 not found 같은게 니오면 그냥 없는 책이오 라는 문장을 보내게 하면 될거 같은데요 -_-;
-- Bab2 2003-3-12 1:36 am

책은 있는데 표지는 없는 경우를 얘기하는 거죠. 그리고 소스 내에서 다른 URL 에 http 요청하고 리턴받는 방법을 모르거든요. 지금 거의 끝났습니다. 편법의 극치이긴 합니다만 :-)
-- Raymundo 2003-3-12 1:44 am

/ISBN링크 에 반영
-- Raymundo 2003-3-16 8:00 pm

8. Anchor

혹시나 현재 한글페이지 링크가 걸리는것인지 알 수 없어서 질문 드립니다. 원래의 K3에서 루크님이 Anchor패치를 추가하신거 같은데요. 지금 확인하기로는 한글페이지는 사용할 수 없었거든요.
-- Bab2 2003-3-10 12:57 am

### 변수선언 ###
....
use vars qw($TableOfContents @HeadingNumbers $NamedAnchors $AnchoredLinkPattern
### 추가 시작 / 책갈피 한글페이지도 가능하게..
        $AnchoredFreeLinkPattern);
### 추가 끝 / 책갈피 한글페이지도 가능하게..
....
sub InitLinkPatterns {
....
        $FreeLinkPattern = "($AnyLetter+)";
        if ($UseSubpage) {
                $FreeLinkPattern = "((?:(?:$AnyLetter+)?\\/)?$AnyLetter+)";
        }
        $FreeLinkPattern .= $QDelim;

### 추가 시작 / 책갈피 한글페이지도 가능하게..
        $AnchoredFreeLinkPattern = $FreeLinkPattern . '#(\\w+)' . $QDelim if $NamedAnchors;
### 추가 끝 / 책갈피 한글페이지도 가능하게..

        # Url-style links are delimited by one of:
        #   1.  Whitespace                           (kept in output)
        #   2.  Left or right angle-bracket (< or >) (kept in output)
....
}
sub CommonMarkup {
....
                if ($FreeLinks) {
                        # Consider: should local free-link descriptions be conditional?
                        # Also, consider that one could write [[Bad Page|Good Page]]?
                        s/\[\[$FreeLinkPattern\|([^\]]+)\]\]/&StorePageOrEditLink($1, $2)/geo;
                        s/\[\[$FreeLinkPattern\]\]/&StorePageOrEditLink($1, "")/geo;

                        ### 추가. 시작 / 한글페이지도 가능하게
                        s/\[\[$AnchoredFreeLinkPattern\|([^\]]+)\]\]/&StoreBracketAnchoredLink($1, $2, $3)/geos if $NamedAnchors;
                        s/\[\[$AnchoredFreeLinkPattern\]\]/&StoreRaw(&GetPageOrEditAnchoredLink($1, $2, ""))/geos if $NamedAnchors;
                        ### 추가. 끝 / 한글페이지도 가능하게
                }
                if ($BracketText) {  # Links like [URL text of link]
....

-- Bab2 2003-3-15 1:27 pm

해야지 해야지 하다가 잊고 있었군요. 바로 반영해 넣겠습니다~ :-)
-- Raymundo 2003-3-15 1:39 pm
반영하시는 김에 책갈피도 한글로 쓸 수 있도록 손좀 봐주심이 ^^;
-- Bab2 2003-3-15 1:41 pm
아.. 왜 "연습장#앵커" 로 하면 안 되나 했더니만 앵커 쪽이 한글이 지원되지 않았던 거군요. \w 란 게 "알파벳 아니면 숫자" 이니까, "(\\w+)" 부분을 (이 부분도.. 백슬래쉬가 하나여야 할 것 같은데 왜 두 개인건지 - 원래의 AnchoredLinkPattern 에서도 두 개를 사용했더군요 - 이해를 못하고 있습니다만) "([0-9A-Za-z\xa0-\xff]+)" 로 대신 사용하면 한글도 될 것 같습니다. 지금 테스트 해보니까 띄어쓰지만 않으면 한글도 잘 되네요. 앵커의 띄어쓰기는 중간에 공백이 언더라인으로 바뀌어서 링크가 걸리는 문제가 있으니까 그냥 포기하는 게 맘이 편할 것 같고요.
-- Raymundo 2003-3-15 2:07 pm

/Anchor링크에 반영. 완료
-- Raymundo 2003-3-16 8:05 pm

9. 간단한 화일업로드 스크립트

<-//위키페이지에 붙일 내용.//->
< html>
<form name="fileup" method="post" action="upload.pl" enctype="multipart/form-data">
<input type="file" name="file"> <input type="submit" name="submit" value="올려줘~">
</body></html>

#!/usr/bin/perl
### 화일 업하는 부분.
use CGI;
$q=CGI->new();
$fault = 0;
$file = $q->param("file");#업로드된 화일

if ($file =~ m/\// ) {
        # 유닉스 계열
        $file =~ m/(.*)\/(.*)/;
        $tempname = $2;
} else {
        # 윈도우 계열
        $file =~ m/(.*)\\(.*)/;
        $tempname = $2;
}
$dir = '../upload';
$tempname2 = $tempname;
$tempname2 =~ s/ /_/gi;
$filename = "$dir"."\/"."$tempname";   #업로드된 화일에서 화일이름 추출하기
$filename2 = "$dir"."\/"."$tempname2";  # 바뀔 이름.


opendir(DIR, "$dir");
@lists = readdir(DIR);
shift @lists;
shift @lists;

#$filename =~ s/(')//gi;

### 중복체크
foreach my $list (@lists) {
        $fault = 1 if ($tempname2 eq $list);
        last if ($tempname2 eq $list);
}
### 중복체크
if ($filename =~ m/(\.pyc|\.py|\.pl|\.html|\.htm|\.php|\.cgi)$/i) {
        $filename = "";
        $fault = 1;
}

if ((!$fault) || ($filename ne "")) {
        open SAVE, ">$filename";  #화일이름으로 저장한다.
        binmode SAVE;     #바이너리 모드로
        while (<$file>) { #화일로 출력한다
        print SAVE $_;
        }
        close SAVE;
        rename($filename, $filename2);
        chmod(0644, $filename2);
}

close (DIR);

### 화일 업하는 부분. 여기까지.

print "Content-type: text/html; Charset=euc-kr\n\n";
print "\n\n";
print "\<html\><head>";
print "\<title\>PiWD PDS Board\<\/title\>";
print "\<LINK REL\=\"stylesheet\" HREF\=\"\.\.\/wiki\.css\"\>";
print "\<meta charset=euc-kr\></head><body background=../img/back1.jpg>";
print "<br><br><h2>PiWD Uploaded Files list</h2>\n";
print "<br><h5><a href=http://www.piwd.net/cgi-bin/wiki.pl?자료실>자료실</a>로 돌아가기</h5>\n";

print "<br><li>화일크기 제한은 2메가입니다.\n";
## 개뻥. 사실은 제한 없음 -_-;;

print "<br><li>아래의 목록에서 화일의 경로를(Upload:filename)<br>복사하여 원하는 곳에 붙여넣기 하시면 됩니다.<br>\n";
if (($tempname2 ne "") && (!$fault)) {
        print "<hr>\n";
        print "업로드 완료.<br>\n";
        print "당신이 올린 화일은 <font color=red>Upload:$tempname2</font>입니다.<br>\n";
        print "이용해주셔서 감샤합미다.<br><br>\n";
} elsif ($fault) {
        print "<hr>\n";
        print "올릴수 없는 형식의 확장자이거나, 이미 같은 이름의 화일이 있습니다요.<br>\n";
        print "이름바꿔서 올려보셔~<br>\n";
        print "업로드 불가 형식(,확장자): htm, html, cgi, php, pl등등 각종 스크립트 실행화일. ~<br><br>\n";
}

print "<hr>\n";
print "<h3>화일 리스트</h3><br>\n";
foreach $list (@lists) {
        print "Upload:".$list."<br>\n";
}
print "<br><h5><a href=http://www.piwd.net/cgi-bin/wiki.pl?자료실>자료실</a>로 돌아가기</h5><br>\n";
print "ok.\n</body></html>\n";

본화일이 많이 무거워지기도 했고, 굳이 집어넣을 필요가 없을거 같아, 그냥 펄마니아에 있는 화일업로드 예제보고 대충 만들었습니다.(CTRL+C,V) 오에카키도 이거랑 비슷하게 붙여서 쓰고 있습니다.

테스트해보기로는 화일이름,디렉에 한글이 들어가면 제대로 안되는데, 어떻게 해줘야될지를 모르겠군요.

화일용량 제한이라든가 관리기능 전혀 없습니다. 오로지 저장이랑 같은 화일이름 체크해서 거부하는거 뿐입니다. -_-;

다른 분께서 보시고 제대로 만들어 주시리라 믿습니다. ^^;
-- Bab2 2003-1-28 1:11 am

다시 확인해봤는데 제 브라우저 설정이 주소를 무조건 utf-8로 보냄에 체크되어 있더군요. 체크를 끄니깐 한글 잘 되네요 -_-;;

누가 화일 쿼터제한가능하게 손좀 봐주세여 ㅡ,.ㅡ;;
-- Bab2 2003-2-1 1:19 pm

위 소스를 사용해서 천리안에 올리면 문제가 생기네요. 천리안의 실행권한이 있는 모드는 755, 없는 것은 644인데, upload디렉을 755로 수정을 하면 파일이 보이다가, 다시 하루가 지나면 모드가 644로 자동으로 바뀌네요. 뭐가 잘 못인지.. 디렉의 파일은 644,755가 섞여있구요. 뭐가 잘못된 것인가요? 제가 프로그램에 대해서는 거의 문외한이기 때문에.. 방법을 모르겠네요. -
-- Redica 2003-2-3 8:55 pm

위키 소스 얘기인 줄 알았는데 이 업로드 소스 말씀이셨군요. 이건 Bab2님이 답해 주셔야겠지만... "하루가 지나면 644로 바뀐다"는 것은 도저히 이해할 수 없는 증상이네요.. 화일을 업로드 한 직후에 바뀐다면 이 소스의 문제이겠고, 정말 하루의 특정한 시간에 바뀐다면 그것은 천리안 시스템에서 처리하는 문제일테니 천리안에 문의를 해야 하겠죠.
-- Raymundo 2003-2-3 9:32 pm
천리안에서는 자동으로 바뀌는 경우는 있을 수 없다고 합니다. 일단 wiki dir내에 있던 upload dir을 밖으로 빼놓고, 다시 모드를 755로 수정하고, 파일 up을 해봤는데, 일단 문제는 없는 듯 합니다. 다시 Test해보고 문제 있는지 올려두겠습니다.
-- Redica 2003-2-4 9:31 am

에.. 소스 보시면 아시겠지만, 화일 업로드 끝나고나서 해당화일의 퍼미션이 644가 되게끔 해놨습니다. 0644부분만 0755로 바꿔주시면 되겠습니다. 그런데 644 정도면 CGI스크립트가 아니고서야 모두 잘 뜰건데 이상하군요.. '_'a
-- Bab2 2003-2-4 9:54 am
흐흐 지금 다시 보니, upload dir의 퍼미션이 다시 644로 바뀌어 있습니다. 소스의 문제인 듯합니다. Bab2님, 어찌하오리까???
-- Redica 2003-2-4 2:02 pm
디렉토리 777 chmod(0644.. 이것도 0777로 잡고 한번 테스트 해보세요 '_'a
-- Bab2 2003-2-4 3:06 pm
수정했습니다. upload dir을 wiki dir 외부로 빼고, upload dir의 퍼미션을 755(천리안의 실행모드)로 바꾸고, chmod(0644, $filename2);를 0755로 바꾸고, intermap에서 upload의 기능을 정지시켰더니.. upload:filename에는 링크가 걸리고, 링크 풀내임을 적으면 그림도 바로 보이네요.
-- Redica 2003-2-5 1:41 pm

/화일업로드 에 반영. 완료
-- Raymundo 2003-3-16 8:05 pm

10. DB연동

요구되는게 "DB를 사용하는 것과, 일반 화일과 DB의 상호변환기능", 이렇게 두가지입니다.

현재 사용하는 계정이 SQL가능이라서 한번 연동을 시켜볼까 생각을 해봤는데 전혀 아는 것이 없어서 어디부터 손을 대야할지 모르겠군요. 저에게 빛과 소금을 주실 분 어디 없나여 ㅜㅡ?
-- Bab2 2003-1-9 1:16 am

UseModWiki 의 데이타관리를 DB 를 사용해서 하시겠다는 건가요? :-O 오오... 성공하시면 얻어쓰겠습니다. :-) 하지만 개인적으로는 그 노력을 차라리 WikiX 등을 설치하고 설정하는 데 들이는 게 더 빠르지 않을까 하는 생각이... ^^;
-- Raymundo 2003-1-9 12:38 pm
지금까지 한 게 아까워서라도 절대로 그렇게는 못하죠 :)
-- Bab2 2003-1-9 2:15 pm

단시일 안에 금방 끝날거 같지가 않아서 일단 링크 남겨 두겠습니다. ==;; [이곳]에 내역이 적혀있고, [이곳]에서 테스트중입니다.
-- Bab2 2003-1-17 9:09 pm

오오... 훌륭하십니다. 짝짝짝... 저는 SQL 등에는 완전 꽝이라서... (DB수업은 들었음에도.. ㅠ,.ㅠ) DB 구조의 장점을 잘 살릴 수 있도록 처음 설계를 잘 해야 할 것 같네요. 건투를 빕니다!
-- Raymundo 2003-1-17 9:38 pm

일단 준비는 다 됐습니다. 전체적으로 읽고 쓰고 하는 부분은 모두 손을 봤는데요, 테이블 구조를 어떻게 잡는게 좋을까요? 현재는 그냥 페이지 디렉에 있는 "*.db"또는 "*.kp" 화일들을 두개의 필드에 한개는 화일이름, 한개는 화일의 내용을 그냥 집어넣었는데, 내용에 있는 해쉬들을 모두 각각의 필드로 잡아주는게 좋을까요? 데이타베이스 이론 관련서적을 한번 읽어보라는 그런 말씀은 마세요.. 머리에 쥐난답니다.. ^^ 수고하세요.
-- Bab2 2003-1-23 3:46 pm


위키위키분류

마지막 편집일: 2007-1-8 12:19 pm (변경사항 [d])
843 hits | Permalink | 변경내역 보기 [h] | 페이지 소스 보기