bbs/write.php 화일에서 화일설명글 출력 > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

bbs/write.php 화일에서 화일설명글 출력 정보

bbs/write.php 화일에서 화일설명글 출력

본문

제가 write.skin.php화일에서 화일설명글 입력하는 부분을
input type=text 에서 <textarea></textarea>로 바꿨는데요
입력은 잘되는데..
수정에서 "종결되지 않는 문자열 입니다"인가? 하여튼 그렇게 나오네여
물론 bbs/write.php화일도 화일설명부분을 찾아서 <textarea>로 바꾸어 주었더든요..
텍스트가 적게 들어가면 상관없는데..
길게 들어가면 어김없이 에러가 나는데.. sql을 보아도 컬럼속성이 text로 되어있는데
디비나 입력에 문제는 아닌것 같고..
수정만 안되네여..-_-;;
왜 종결되지 않았다고 나올까요??
  • 복사

댓글 전체

자꾸 귀찮게 해드려서 너무 죄송합니다. 오늘 막막 연구하던중 이런걸 알아냈어요..
화일설명글에서 제가 엔터를 쳤는데.. 그게 add_file()라는 스크립트에서 오류가 생긴것 같아요..
그니깐 문장이 종료되지도 않았는데 내용에서 엔터가 되어버리니까
"종결되지 않은 문자열 상수입니다"라는 메세지가 나오더라고요..
화일설명글 내용에 엔터를 &nbsp;같은걸로 바꿔주는 먼가 없을까요??
참고로 str_replace(chr(13),'&nbsp;',$row[bf_content]);는 해봤는데 안되더라고요..-_-;;
쩝...ㅠㅠ
아스키...즉 alt 키를 누른 상태에서 13을 누르면 엔터값이 됩니다.
도스창에서 dir 하시고 alt+13 하시면...확인되실거고...
text 에서 enter가 안먹는다면
.
//sql을 보아도 컬럼속성이 text로 되어있는데 디비나 입력에 문제는 아닌것 같고..
???
약간 의문이 갑니다....

혹시 이런 현상은 아닌지...봐보세요...


만약 여분의 필드를 이용할때
이용할 필드가 wr_1 이라면
테이블을 생성할때 adm/sql_write.sql 에서
wr_1 varchar(255) NOT NULL default '',
이렇게 되어있는데
wr_1 text NOT NULL,
요렇게 바꾸어 주시고 게시판 생성을 하시던지

phpmyadmin 같은 DBMS utility 에서
해당 레코드의 type 을 text로 변경하시면 해결 될겁니다.

잊지마실것은
varchar(255) 은 영문기준 최대 255자 까짐만 입력됩니다.
$sub_length=strlen($제목); 해보시면 현재 입력된 제목의
길이가 표시될겁니다.

여기 그누의 보드를 이용해서 스킨을 만들때
부족한 레코드를 늘리려 할때 예를 들자면 wr_1 의 하나의
레코드를 explode 함수를 써서 입력합니다.
aaa | bbb | ccc 이렇게 저장되고
$제목_Exp=explode("|",$제목);
하면 $제목[2] 의 내용은 ccc 가 되는거죠.

어떤 문자가 분할코드가 되어 입력되고 분할하여 추출하는 방법입니다.
차선으로 그렇게 쓸뿐입니다.

제대로된 확장스킨을 만드려면
조금 고생스럽지만 다른 방법으로의 테이블생성과
그 테이블의 응용이 있어야만 됩니다.
외형만이 아닌 뭔가 쓸만한 스킨이 나오려면..ㅠㅠ
- 제가 관련 부분을 수정하시라고 말씀을 드렸습니다만..ㅡㅡ;

1. bbs/write.php 파일의 304 라인(원본기준)의 아래코드를 수정해 주십시오.
<!-- 수정 전 -->
$file_script .= "<br><input type='text' class=ed size=50 name='bf_content[$i]' value='{$row[bf_content]}' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";

<!-- 수정 후 -->
$file_script .= "<br><textarea' class=ed size=50 name='bf_content[$i]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>$row[bf_content]</textarea>";

2. 해당 게시판의 스킨디렉토리의 write.skin.php 파일의 138 라인(원본기준)을 아래코드를 수정해 주십시오.
<!-- 수정 전 -->
objCell.innerHTML += "<br><input type='text' class=ed size=50 name='bf_content[]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";

<!-- 수정 후 -->
objCell.innerHTML += "<br><textarea class=ed name='bf_content[]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'></textarea>";

* 이 외 다른 부분은 수정할 필요가 없습니다.
* 로컬서버에 테스트하고 참고글을 적는 것이나 오류는 없을걸로 판단됩니다.
본의 아니게 물의를 일으킨것 같아 죄송하구여 답변 너무 감사드립니다.
sjsjin님께서 말씀해주신 부분은 제가 질문하기전 이미 다 해본 상태였고..
제가 말씀드리고 싶었던건.. 움.. 제 질문이 잘못된것같아 대단히 죄송하네여..
화일설명글이 수정에 들어가면
add_file()라는 function을 호출하도록 되어있습니다.
근데 화일설명글에서 아래와 같이 입력한다면..
-------------------------
test
test
---------------------------
수정시 아래와 같이 호출합니다.

add_file("<textarea>test <-이 부분에서 엔터를 쳤기때문에 다음줄로 넘어가므로 에러메세지가 나오는 겁니다.
test</textarea>");

이게 문제였더라고요.. $row[bf_content]에 내용중 엔터가 들어가있으면 자바스크립이 어려운가 봅니다.
어쨌든 답변 너무 감사드리고요..
스스로 해결해 보겠습니다.
답변해주시느라 고생해주신 님들이 저땜에 심기가 불편해지는 일이 없었으면 합니다.
제 질문이 잘못된점 정말 죄송합니다. 다시한번 사과드립니다.
제 로컬서버에서 파일설명박스를 텍스트박스로(textarea) 바꾸고 위와같이 여러단어를 엔터를 이용하여 입력하여 테스트를 하고 위에 답변글을 적은 것입니다..
잘못하신게 없으니 사과하실건 없습니다.  제 말이 이상하게 들렸다면 제가 사과 드립니다.
모르면 묻는게 당연하구요..
아래 코드를 잘 보십시오.
아래코드를 수정해주면 글 수정시에 에러가 나지 않습니다.
해보고 이상이 있다면 다시 글 올려 보십시오.
제 서버에서 다시 테스트해보거나 테스트로 사이트에 올려서 직접 테스트 형식을 볼 수 있도록 해드리겠습니다..

1. bbs/write.php 파일의 304 라인(원본기준)의 아래코드를 수정해 주십시오.
<!-- 수정 전 -->
$file_script .= "<br><input type='text' class=ed size=50 name='bf_content[$i]' value='{$row[bf_content]}' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>";

<!-- 수정 후 -->
$file_script .= "<br><textarea' class=ed size=50 name='bf_content[$i]' title='업로드 이미지 파일에 해당 되는 내용을 입력하세요.'>$row[bf_content]</textarea>";
sjsjin님께 빠르게 답변해주신점 정말 감사드립니다.
님께선 되는데 왜 제 로컬에선 안되는지 모르겠으나
우회하는 방법으로 일단 해결은 했습니다.
아래와 같이~

$bf_con = ereg_replace(chr(13).chr(10), " ", $row[bf_content]);
$file_script .= "<br><textarea class='ed' size=50 rows='10' name='bf_content[$i]'>{$bf_con}</textarea>";

엔터키의 아스키코드를 공백으로 바꿔주니 나옵니다.
제 사과는 님들도 바쁘신데 답변해주시느라 수고하시는것 같아 드리는 말입니다. 오해는 아니고요..
어쨌든 답변 너무 감사드립니다.
그누보드 유저분들 너무 친절하십니다. 최고 ^^b
© SIRSOFT
현재 페이지 제일 처음으로