묻고답하기

Warning: tempnam(): open_basedir restriction in effect. File(/home/gogokorea/lib/board/files/) is not within the allowed path(s): (/home/kankokuryoko:/var/tmp:/tmp:/usr/local) in /home/kankokuryoko/lib/board/save.php on line 130
List

이렇게 뜹니다. 왜그런걸까요?
/home/gogokorea/lib/board/files/ 경로 권한은 777로 설정되있습니다.

save.php파일 소스는

<?php
//모든 저장은 여기서.. -_-a

/*

edit 에서 넘어온 자료와 write 에서 넘어온 자료를 구분해서 처리해야한다.

동작목표
1.자료가 넘어온다
2.자료를 가공한다.
3.넣을 번호를 확인한다.
4.번호에 맞게 자료를 넣는다.
5.해당글이 달려있는 리스트 부른다.

이 파일은 get 변수와 post 변수를 동시에 사용한다.
get 변수는 form 상에 저장되어 있어야한다.
form 은 post 로 자료를 넘겨줘야 한다.

필요 변수
$_GET['']
해당 보드이름

$_POST['']
제목,내용,메타

$_SESSION['']
아이디,이름

제목 내용 이외의 자료는 넘오는 자료가 아니므로 addshase의 필요성을 모르겠음

//번호 알아 오기
select num from $tables order by num desc limit 1
//기본 테이블에 넣기
insert into $tables
(number,num,dep,idx,perm,del,title,id,name,hit,meta,time)
values
()
//내용에 넣기
insert into $tables_content
(num,time,ver,content,ip,)
values
()
//뎃글 달기
insert into $tables_comment
(num,time,content,ip)
values
()

--20050202--
$_GET['bbs']
$_GET['mdoe'] = write or edit
$_GET['action'] = save

$_POST['name']
$_POST['password']
$_POST['email']
$_POST['title']
$_POST['content']

mode 가 save 일 경우 num 를 확인 후 저장

*/

//password 는 여백을 제거하지 않음
//content 는 뒷 여뱍을 제거함
$_POST['name'] =  trim($_POST['name']);
$_POST['password'] = trim($_POST['password']);
$_POST['email'] = trim($_POST['email']);
$_POST['title'] = trim($_POST['title']);
$_POST['content'] = rtrim($_POST['content']);

if(!get_magic_quotes_gpc())
{
        $name  =        addslashes($_POST['name']);
        $password =        addslashes($_POST['password']);
        $email =        addslashes($_POST['email']);
        $title =        addslashes($_POST['title']);
        $content =        addslashes($_POST['content']);
}else{
        $name  =        $_POST['name'];
        $password =        $_POST['password'];
        $email =        $_POST['email'];
        $title =        $_POST['title'];
        $content =        $_POST['content'];
}


//members 관련 폼
//$name = $_SESSION['member_name'];
$name = $_SESSION['member_name'];
$password = $_SESSION['member_no'];

if($_SESSION['login'] and $_SESSION['member_no'] and  $title and $content)
{
        switch($board_mode)
        {
                case 'write': $result = save_new_article($board_bbs,$name,$password,$email,$title,$content,$now_time,$ip);
                                            break;
                case 'edit'        : $result = save_edit_article($board_bbs,$email,$title,$content,$now_time,$ip,$board_no);
                                          break;
                case 'repy'        : if($_SESSION['member_perm'] == 255)
                                          {
                                                  
                                            $result = save_repy_article($board_bbs,$name,$password,$email,$title,$content,$now_time,$ip,$board_no);
                                            }
                                            break;

        }
}


if($result == FALSE)
{
        board_error('Sorry Article Save Error',0,0);
}else{
        //echo "<meta http-equiv="refresh" content="5; url=$board_list_url">";
}


function save_new_article($bbs,$name,$password,$email,$title,$content,$time,$ip)
{
        //정렬 변호 가져오기
        
        $sql = "select `num` from $bbs order by `num` desc limit 0,1";
        $result = sql_query($sql);
        $result = sql_fetch($result);
        $num = $result['num'] + 100;


        $path = tempnam('/home/gogokorea/lib/board/files/','board'); //경로면 까지 돌려줌 -_-

        copy($_FILES['file']['tmp_name'],$path);
        
        $file_name = $_FILES[file][name];
        $file_path = $path;        

        //보드 삽입
        $sql = "insert into $bbs
                (`no`,`num`,`dep`,`title`,`name`,`password`,`email`,`hit`,`time`)
                values
                (NULL,$num,0,'$title','$name','$password','+ '+ '$email',0,'$time')";
        $result = sql_query($sql);
        if($result == FALSE )
        {
                return FALSE;
        }

        //auto_increment 로 생성된 고유값을 가져온다.
        $no = sql_insert_id();

        //내용 삽입
        $sql = "insert into {$bbs}_content
                (`no`,`content`,`ip`,`file_name`,`file_path`)
                values
                ($no,'$content','$ip','$file_name','$file_path')";
        $result = sql_query($sql);
        if($result == FALSE )
        {
                return FALSE;
        }

        return TRUE;
}

function save_edit_article($bbs,$email,$title,$content,$time,$ip,$no)
{
        
                
                echo "0";

        $query =        "update {$bbs}
                         set `email` = '{$email}' , `title` = '{$title}' , `time` = '+ '{$time}'
                        where `no` = {$no}";
        $result = sql_query($query);

        if($result == FALSE )
        {
                echo "1";
                return FALSE;
        }

        $query =        "update {$bbs}_content
                         set `content` = '+ '{$content}' , `ip` = '{$ip}'
                        where `no` = {$no}";
        $result = sql_query($query);

                if($result == FALSE )
        {
                echo "2";
                return FALSE;
        }
        
        return TRUE;
}

function save_repy_article($bbs,$name,$password,$email,$title,$content,$time,$ip,$no)
{
        //해당 문서의 깊이(dep)와 정렬순서 (num) 을 알아 와야한다.
        $query =        "select `num`,`dep` from {$bbs} where `no` = {$no} ";
        $result = sql_query($query);
        $result = sql_fetch($result);
        $num = $result['num'];
        $dep = $result['dep'];
        $num_next =  (intval($num / 100)) * 100  - 99 ;

        //해당문서의 깊이 보다 같거나 작은 문서를 -1 씩 해준다.

        $query =        "update $bbs
                         set `num` = `num` - 1
                         where `num` < $num  and `num` > $num_next  ";
        sql_query($query);

        //그리고 해당문서 자리에 새 문서를 넣는다.

        $sql = "insert into $bbs
                (`no`,`num`,`dep`,`title`,`name`,`password`,`email`,`hit`,`time`)
                values
                (NULL,$num - 1,$dep + 1,'$title','$name','$password','$email',0,'$time')";
        $result = sql_query($sql);
        if($result == FALSE )
        {
                return FALSE;
        }
        
        //auto_increment 로 생성된 고유값을 가져온다.
        $no = sql_insert_id();

        //내용 삽입
        $sql = "insert into {$bbs}_content
                (`no`,`content`,`ip`)
                values
                ($no,'$content','$ip')";
        $result = sql_query($sql);
        if($result == FALSE )
        {
                return FALSE;
        }

        return TRUE;

}

echo "<meta http-equiv="refresh" content="0 ; url = $board_list_url ">";
echo "<a href="$board_list_url ">List</a>";
?>

이상입니다. 도와주세요~~~
글쓴이 제목 최종 글
XE 공지 글 쓰기,삭제 운영방식 변경 공지 [16] 2019.03.05 by 남기남
구름나무바위 글쓰기창, 댓글창을 검정색으로 변경했는데 흰색이 생겼다가 검정색으로 바뀝니다.  
강군z 윈도우 2003 PHP APC 설치 문의  
쭈영 1.5 쉬운설치오류 file  
조성근163 업데이트가 안되요 [5] 2013.10.22 by 지오닷컴
때린데 또때려 FAQ 모듈에서 Q: 에 글자색상 변경방법 [1] 2013.10.22 by 때린데 또때려
김기륵 document module 오류 file  
dndwkd1234 최신글 나오는거 어떻게 하나요??? file  
하나둘셋다섯 신디케이션 잘 아시는분 가르쳐주세요~ file  
iceman237 compiled.php 오류 file  
SEAN76 wigets의 content-apprzskin 사용 중인데요....  
죽방망이 게시판의 첨부파일,,ftp에서 어디로 저장되나요? [1] 2013.10.22 by 귀머거리하늘
나도웹고수가될뻔 게시판 댓글쓰기에 택스트 수정하는 것을 다 없애고 싶습니다. [1] 2013.10.22 by 귀머거리하늘
처리낭군 소셜 xe 회원가입 후, 이동할페이지나 바로 로그인에 대해 아시는분 -0-;;  
Alex 외부이미지 썸네일 생성 오류  
처리낭군 소셜xe 첫 로그인시 '존재하지 않는 회원 아이디입니다.' 라고 나오는데요.. file  
애드바이러스 메일링가입 항시체크 글자가 사라지는 경우.. ( 글자에러 : 손동우님께서 가르쳐주신 것으로 변경..) [2] file 2013.10.22 by 미소지움1976
Alex hostinger xmlrpc [1] 2013.10.21 by Alex
Gomaje shopxe에서 확장변수  
주택바가지 제로보드 xe 데이터 들여오기에서 회원 1명만 이전이 잘 안되요.. [1] 2013.10.21 by 꿈틀잉
꿈틀잉 특정 확장변수 관리자만 작성하게 하기 질문 [1] 2013.10.21 by 꿈틀잉