에러 도와주세요...
본문
안녕하세요... 뜻하지 않은 오류가 발생해 이렇게 도움을 구합니다...
- skin.lib.php 파일은 list.skin.php 코드 상단에 include_once 해주었습니다.
list.skin.php
<input type="checkbox" id="wr_4_0" name="wr_4[]" value="사과">
<input type="checkbox" id="wr_4_1" name="wr_4[]" value="수박">
<input type="checkbox" id="wr_4_2" name="wr_4[]" value="딸기">
위의 대괄호를 추가하니깐 아래와 같은 오류가 발생했습니다... ㅠㅠ
Warning: strlen() expects parameter 1 to be string, array given in .... on line 6
Warning: strlen() expects parameter 1 to be string, array given in .... on line 147
이렇게 떳습니다 ㅠㅠ
그 부분의 코드를 가져왔습니다.
skin.lib.php
4~9
$arr_search = array();
for($j = 1; $j < 11; $j++){
if($_GET["wr_".$j] && strlen($_GET["wr_".$j]) > 0){
$qstr .= "&wr_".$j."=".urlencode($_GET["wr_".$j]);
}
}
145~151
$arr_search = array();
for($j = 1; $j < 11; $j++){
if(($_GET["wr_".$j] && strlen($_GET["wr_".$j]) > 0 ) || is_array($_GET["wr_".$j])) {
$arr_search[name][] = "wr_".$j;
$arr_search[val][] = $_GET["wr_".$j];
}
}
이 부분만 봐서 해결될 문제일까요?
!-->!-->답변 3
파라미터 값이 wr_4 는 지금 배열로 넘기는 거거든요
그러니까 $_GET[wr_4] 이렇게 사용을 못하구요
$_GET[wr_4][0] 이런식으로 사용하셔야 합니다.
그부분에 대한 에러에요. 파라미터 값이 텍스트가 아닌
배열 즉 array 로 넘어 오니까 strlen 으로 글자수를 확인 할수가 없는겁니다.
배열은 0부터 시작합니다.
for($j=0; $j<10; $j++)
{
$len = strlen($_GET['wr_'.$j]);
}
이 되겠지요
!-->
$arr_search = array();
foreach($_GET['wr_4'] as $k => $v) {
$j = $k + 1;
$qstr .= "&wr_".$j."=".urlencode($v);
}
$arr_search = array();
foreach($_GET['wr_4'] as $k => $v) {
$j = $k + 1;
$arr_search['name'][] = "wr_".$j;
$arr_search['val'][] = $v;
}