묻고답하기

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 남기남
햇살~ * ASP에서 Cookies를 이용한 오늘본 상품 리스트 만들기  
황유신 안녕하세요~ 완전입문과정 질문입니다.  
테일즈 플래시에서 동영상 제어시 전체화면은요??  
리우 안녕하세요.. 이런게 가능할까요....  
Rucid 이것 좀 봐주십시오!!!!! iframe관련 문제 !!!! 참고그림있음!!!!!!!!!  
꿍이 php에서 오류는 없는데 실행이 안되요...  
정재권 사진을 올리려고 하는데 자꾸 에러 메시지가 떠요... 알려주세요.ㅠㅠ  
scortone 단축키로 페이지이동 하는 거에서요~~  
zyzs 제로보드 상단에 불러올 파일 관련. [1] 2015.06.23
신재민 최근 댓글 출력 쿼리 질문 입니다.  
김동혁 저..번개나 정모등 모임신청관리하는 프로그램 구할수 없을까요?  
동네노는남 포토샵에서 슬라이스툴로 자르는게 잘안됩니다 [1] 2007.08.10
stub363 HTTP_REFERER 이 작동하지 않습니다. [1] 2015.06.23
아키라 RWAPM에서 이미지 파일 깨지거나 일부분만 나옵니다  
gunjoo 페이지 번호를 출력할 때 (int)가 뜻하는게 뭔가요? [1] 2015.06.23
bluewine 날짜순 정렬.  
neopara 드림위버에서 레이어를 align = center 로 맞추는 방법  
neopara 드림위버에서 레이어를 <div align = center> 명령어 적용하기.. [1] 2007.08.10
정유철 홈페이지 메인화면에 글자 스크롤  
한정진 php에서 아래와 같이 할려면? [1] 2007.08.10