묻고답하기
page_full_width" class="col-xs-12" |cond="$__Context->page_full_width">
첨부파일에 for 문을 사용하려는데요... 에러가 납니다.
2004.01.19 10:34
안녕하세요.
제가 첨부파일을 10개 정도 사용하려고 소스에 다 추가를 했습니다.
일일이 복사해서 숫자만 바꿔서는 되는데요..
이걸 for문을 사용해서 돌리려니 안되네요...
에러도 나고... ㅡㅡ;
--------------------------------------------------------------------------------
for($i=1;$i<=10;$i++) {
if($file.$i_size>0&&$setup[use_pds]&&$file.$i) {
if(!is_uploaded_file($file.$i)) Error("정상적인 방법으로 업로드 해주세요");
$file.$i_size=filesize($file.$i);
if($setup[max_upload_size]<$file.$i_size&&!$is_admin) error("파일 업로드는 최고 ".GetFileSize($setup[max_upload_size])." 까지 가능합니다");
if($file.$i_size>0) {
$s_file_name.$i=$file.$i_name;
if(eregi(".inc",$s_file_name.$i)||eregi(".pht",$s_file_name.$i)||eregi(".htm",$s_file_name.$i)||eregi(".shtml",$s_file_name.$i)||eregi(".ztx",$s_file_name.$i)||eregi(".php",$s_file_name.$i)||eregi(".dot",$s_file_name.$i)||eregi(".asp",$s_file_name.$i)||eregi(".cgi",$s_file_name.$i)||eregi(".pl",$s_file_name.$i)) Error("Html, PHP 관련파일은 업로드할수 없습니다");
//확장자 검사
if($setup['pds_ext'.$i]) {
$temp=explode(".",$s_file_name.$i);
$s_point=count($temp)-1;
$upload_check=$temp[$s_point];
if(!eregi($upload_check,$setup['pds_ext'.$i])||!$upload_check) Error("업로드는 $setup['pds_ext'.$i] 확장자만 가능합니다"); =================> 에러나는 부분
}
$file.$i=eregi_replace("\\","\",$file.$i);
$s_file_name.$i=str_replace(" ","_",$s_file_name.$i);
$s_file_name.$i=str_replace("-","_",$s_file_name.$i);
// 디렉토리를 검사함
if(!is_dir("data/".$id)) {
mkdir("data/".$id,0777);
@chmod("data/".$id,0706);
}
// 중복파일이 있을때;;
if(file_exists("data/$id/".$s_file_name.$i)) {
@mkdir("data/$id/".$reg_date,0777);
if(!move_uploaded_file($file.$i,"data/$id/".$reg_date."/".$s_file_name.$i)) Error("파일업로드가 제대로 되지 않았습니다");
$file_name.$i="data/$id/".$reg_date."/".$s_file_name.$i;
@chmod($file_name.$i,0706);
@chmod("data/$id/".$reg_date,0707);
} else {
if(!move_uploaded_file($file.$i,"data/$id/".$s_file_name.$i)) Error("파일업로드가 제대로 되지 않았습니다");
$file_name.$i="data/$id/".$s_file_name.$i;
@chmod($file_name.$i,0706);
}
}
}
}
------------------------------------------------------------------------------------------
에러메세지
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:Inetpubwwwrootsite1bbswrite_ok.php on line 215
이고요...
저게 뭔가 문법이 안맞는다는것 같은데... 도저히 못찾겠더군요.
그래 그냥 주석 처리 해버리니 에러는 안나는데,
또 첨부파일이 안올라갑니다.
아예 data 에 폴더차체가 생성이 안됩니다.
PHP 할줄도 모르는놈이 해보겠다고 끙끙대고 있습니다.. ㅡㅡ;
가르침 부탁드립니다.
제가 첨부파일을 10개 정도 사용하려고 소스에 다 추가를 했습니다.
일일이 복사해서 숫자만 바꿔서는 되는데요..
이걸 for문을 사용해서 돌리려니 안되네요...
에러도 나고... ㅡㅡ;
--------------------------------------------------------------------------------
for($i=1;$i<=10;$i++) {
if($file.$i_size>0&&$setup[use_pds]&&$file.$i) {
if(!is_uploaded_file($file.$i)) Error("정상적인 방법으로 업로드 해주세요");
$file.$i_size=filesize($file.$i);
if($setup[max_upload_size]<$file.$i_size&&!$is_admin) error("파일 업로드는 최고 ".GetFileSize($setup[max_upload_size])." 까지 가능합니다");
if($file.$i_size>0) {
$s_file_name.$i=$file.$i_name;
if(eregi(".inc",$s_file_name.$i)||eregi(".pht",$s_file_name.$i)||eregi(".htm",$s_file_name.$i)||eregi(".shtml",$s_file_name.$i)||eregi(".ztx",$s_file_name.$i)||eregi(".php",$s_file_name.$i)||eregi(".dot",$s_file_name.$i)||eregi(".asp",$s_file_name.$i)||eregi(".cgi",$s_file_name.$i)||eregi(".pl",$s_file_name.$i)) Error("Html, PHP 관련파일은 업로드할수 없습니다");
//확장자 검사
if($setup['pds_ext'.$i]) {
$temp=explode(".",$s_file_name.$i);
$s_point=count($temp)-1;
$upload_check=$temp[$s_point];
if(!eregi($upload_check,$setup['pds_ext'.$i])||!$upload_check) Error("업로드는 $setup['pds_ext'.$i] 확장자만 가능합니다"); =================> 에러나는 부분
}
$file.$i=eregi_replace("\\","\",$file.$i);
$s_file_name.$i=str_replace(" ","_",$s_file_name.$i);
$s_file_name.$i=str_replace("-","_",$s_file_name.$i);
// 디렉토리를 검사함
if(!is_dir("data/".$id)) {
mkdir("data/".$id,0777);
@chmod("data/".$id,0706);
}
// 중복파일이 있을때;;
if(file_exists("data/$id/".$s_file_name.$i)) {
@mkdir("data/$id/".$reg_date,0777);
if(!move_uploaded_file($file.$i,"data/$id/".$reg_date."/".$s_file_name.$i)) Error("파일업로드가 제대로 되지 않았습니다");
$file_name.$i="data/$id/".$reg_date."/".$s_file_name.$i;
@chmod($file_name.$i,0706);
@chmod("data/$id/".$reg_date,0707);
} else {
if(!move_uploaded_file($file.$i,"data/$id/".$s_file_name.$i)) Error("파일업로드가 제대로 되지 않았습니다");
$file_name.$i="data/$id/".$s_file_name.$i;
@chmod($file_name.$i,0706);
}
}
}
}
------------------------------------------------------------------------------------------
에러메세지
Parse error: parse error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in C:Inetpubwwwrootsite1bbswrite_ok.php on line 215
이고요...
저게 뭔가 문법이 안맞는다는것 같은데... 도저히 못찾겠더군요.
그래 그냥 주석 처리 해버리니 에러는 안나는데,
또 첨부파일이 안올라갑니다.
아예 data 에 폴더차체가 생성이 안됩니다.
PHP 할줄도 모르는놈이 해보겠다고 끙끙대고 있습니다.. ㅡㅡ;
가르침 부탁드립니다.
댓글 2
-
특급잠수부
2004.01.19 11:29
-
아이조와
2004.01.19 12:02
답변 감사드립니다. ^^
215번 라인은 조~~기 본문 소스 중간에 표시를 추가 했습니다.
저위의 것이 제로보드의 첨부를 2개에서 10개로 늘이려는 것입니다.
헌데 이것을 그냥 기본적으로 제로보드에 있는 소스를 복사해서 사용하면 됩니다.
예) -------------------------------------------------------------------------
첨부파일 업로드 file1 = 어쩌구.. 저쩌구...
첨부파일 업로드 file2 = 어쩌구.. 저쩌구...
이렇게 두개의 첨부파일을 처리하게 기본적으로 있는것을
첨부파일 업로드 file1 = 어쩌구.. 저쩌구...
첨부파일 업로드 file2 = 어쩌구.. 저쩌구...
첨부파일 업로드 file3 = 어쩌구.. 저쩌구...
첨부파일 업로드 file4 = 어쩌구.. 저쩌구...
첨부파일 업로드 file5 = 어쩌구.. 저쩌구...
:
:
------------------------------------------------------------------
이렇게 (복사) 하면 제대로 실행이 됩니다.
폴더도 생성이 되고, 파일도 제대로 업로드 되고, 파일 이름 링크도 제대로 됩니다.
(물론 제로보드 내의 첨부물 관련 파일들을 전부 수정했습니다)
헌데 소스가 좀 지저분 해지는것 같아 나름대로 해보려고 for 문을 사용하게 된것입니다.
뭐 정 안되면 그냥 주~~욱 복사해서 사용할수 밖에 없겠지만,
제가 의문을 가졌던 것에 대한 해결책이 궁금해 질문을 드렸던 것입니다.
아무튼 답변 감사합니다 ^ㅇ^
헌데 잠수부님이 답해주신 배열을 사용하려면 제로보드 내의 모든 첨부관련 소스를 다 배열로 지정해야 겠죠? 흠냐... ㅡㅡ;
그게 깔끔하기는 할텐데... 언제 다 고치낭...
허접스레 첨부물 추가한다고 작업한것이 벌써 3일쨉니다~ ㅜ.ㅜ
<input type=file name=upload[]>로 배열로 지정을 해주시면
넘어올때도 배열로 받아옵니다.
그리고 C:\Inetpub\wwwroot\site1\bbs\write_ok.php on line 215
215번째라인부근이 어딘지를 알아야 쉽게 찾아줄수 있습니다.
C:\Inetpub\wwwroot\site1\bbs\write_ok.php
--> IIS 에서 php+mysql 을 사용하시는거면,
mkdir(), chmod() 는 리눅스 명령어라서 안될겁니다.
아파치를 설치하시기 바랍니다.