new.php 질문입니다~

new.php 질문입니다~

QA

new.php 질문입니다~

본문

관리자로 로그인한 후에

최근게시물 삭제하면

(new_delete.php의 goto_url 은 주석처리 했습니다.)

 

 

Warning: trim() expects parameter 1 to be string, array given in /home/hosting_users/fmmarket2003/www/common.php on line 321

위의 에러가 발생합니다.

코드는 아래와 같구요


if (isset($_REQUEST['bo_table'])) {
    $bo_table = preg_replace('/[^a-z0-9_]/i', '', trim($_REQUEST['bo_table'])); // line 321
    $bo_table = substr($bo_table, 0, 20);
} else {
    $bo_table = '';
}

 

$_REQUEST['bo_table'] 값이 있긴 한것 같은데..

new_delete.php 에서 $_REQUEST['bo_table'] 값을 찍으면

배열로 현재 최근게시물 페이지의 게시판 id 값이 나옵니다.

Array ( [0] => EvalCompany [1] => EvalCompany [2] => EvalCompany [3] => EvalCompany [4] => EvalCompany [5] => EvalCompany [6] => FoodMarket [7] => FoodMarket [8] => FoodMarket [9] => FoodMarket [10] => FoodMarket [11] => FoodMarket [12] => EvalCompany [13] => ProgramListings [14] => HumanResource )

이런식으로요.

 

왜 에러가 나는지 도통 모르겠습니다;

1개 선택해서 지웠는데

왜 배열로 출력되는지도 모르겠네요-_-;

이 질문에 댓글 쓰기 :

답변 2

warning 은 에러가 아닌 경고입니다.

 

common.php 는 그누보드에서 항상 사용되는 공통 코드입니다.

보통 그누보드에서는 게시판 목록에나 게시글 뷰에서 bo_table=free 식으로 불리기 때문에,

해당부분의 경고는 bo_table 에 단일값이 있고, 단일값에 적절하지 않은값 (숫자로 시작되는 경우 등) 이 있는 경우, 그에 대한 처리부분이 있는데.... 그 부분이 new.php 에서는 안맞는 부분입니다. new.php 에서는, new_delete.php 에서는 선택한 글들이 bo_table 값이 다른 경우가 있어서 선택한 글만큼 배열로 넘어갑니다.

(그누보드에서 수정되어야 하는 성격으로 보여집니다.)

warning 은 경고이기 때문에 고치면 좋기는 한 부분이지만, 지금의 상황에서 핵심문제는 아닙니다. 

제가 볼 때는 지금 현상(최신글 삭제 관련)에서는 무시해도 되는 부분입니다.

 

new.php 페이지는 여러게시판의 게시글 목록 페이지입니다.

각 게시글마다 bo_table 값이 다르고, 가령 3개의 최신글을 선택하고 [선택삭제]를 했다면,

3개글의 bo_table 값이 배열로 넘어가야 정상입니다.

 

핵심적인 문제는 1개를 선택하면 bo_table 값이 하나로, 3개를 선택하면 bo_table 값이 3개로 넘어가야 하는데.. 그렇지 않은 문제가 생긴 것으로 보입니다.

 

추측해볼 수 있는 문제는..

new.php 에서 자바스크립트 오류가 생겨서, 그 영향으로 인해..

게시글 선택이 잘안되거나, 선택한 값의 정보만 넘어가야 하는데 해당 페이지 전체글의 정보가 넘어가는 문제가 생기는 것이 아닐까 합니다.

보통은 자바스크립트의 어느 한 영역에서 에러발생시 나머지 처리부분이 제대로 처리되지 않게 됩니다.

 

new.php  를 열때,

new.php 에서 삭제하고자 하는 최신글을 선택할 때.. 자바스크립트 오류가 있는지

체크해보는 것이 좋을 듯 합니다.

(크롬브라우저에서 개발자 도구를 열고(F12) 페이지를 열고, 액션등을 취할 때 자바스크립트 오류발생시에는,

오류가 발생했다는 것을 알려줍니다.)

trim할 함수에 전달될 값이 전달이 파라미터가 제대로 전달이 안되어 발생되어지는 오류로 보여지는데요

이렇게 봐서는 goto_url 문제전에 다른곳에서 발생되어지는 부분이 있는데

goto_url 주석처리 되면서 확인되어지는 오류로 보여지네요

그래서 제가
common.php 의 321 라인을 확인해보니
$bo_table = preg_replace('/[^a-z0-9_]/i', '', trim($_REQUEST['bo_table']));
이 구문이더라구요
근데 $_REQUEST['bo_table'] 값이 제대로 들어왔는데 말입니다 ㅠㅠ

답변을 작성하시기 전에 로그인 해주세요.
전체 219
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT