제목 | 길이가 긴 배열을 url로 보낼 때 방법 | ||
---|---|---|---|
카테고리 | CI 2, 3 | ||
글쓴이 | 정수리 | 작성시각 | 2018/05/28 09:27:20 |
|
|||
결과 데이터를 showPay함수에 다시 보낼려고 합니다.
그런데 결과데이터가 배열로
길이가 많이 길어서;;(한 index당 50개정도 되네요 ㅜㅜ)
json_encode함수나 serialize함수를 사용해서
url에 보낼려고 하면
Request-URI Too Large The requested URL's length exceeds the capacity limit for this server.
이 에러가 출력이 됩니다,
요청url에 너무 길다는 뜻같은데요;;
어떻게 해야 길이가 긴 배열을 showPay 함수에 보낼수 있을까요??
현재 생각 하는 것으로는
url로 값을 전달하지 않고
바로 밑에 form안에 list형태로 출력하는 할려고 하는데 그러기에는
<input type="hidden"> 태그 너무 많아지는게 좀 그러긴 하네요 ;;
showPay 함수에 길이가 긴 배열을 전송할수 있는 방법이 있을까요??
function showPay($params='') { if($_FILES) { //showArray($_FILES['userfile']); $functionData = $this->functions->getFiles($_FILES['userfile']); $payData = $this->_loadFile($functionData, $this->data['sheetName']); if(empty($payData)) { echo " <meta http-equiv='Content-type' content='text/html; charset=utf-8'> <script> alert('시트가 일치하지 않거나 데이터가 없습니다.'); location.href='".base_url()."/search/paydata/showPay'; </script>"; } else { @_setPayDate함수에서 업로드한 파일의 데이터를 가져와 반환합니다. $result = $this->_setPayData($payData); @result에 결과 데이터가 배열형태로 들어 있습니다. if(count($result)>1) { $test = urlencode(serialize($result)); $resultMessage['message'] = '등록되었습니다.'; $resultMessage['url'] = '/search/paydata/showPay/'.$test; @'등록되었습니다'라는 문구와 함께 showPay함수로 결과데이터를 전송합니다. echo resultMessage($resultMessage); } else { $resultMessage['message'] = '등록되었습니다.'; $resultMessage['url'] = '/search/paydata/showPay'; echo resultMessage($resultMessage); } } } $prints['js'] = getJs('payData'); $this->load->view('regitster/paydata', $prints); }
|
|||
다음글 | or_like 사용관련 문의 (2) | ||
이전글 | 헤더에 값을 전달하기 (1) | ||
한대승(불의회상)
/
2018/05/28 09:32:17 /
추천
0
POST로 바꾸세요.
|
정수리
/
2018/05/28 09:41:26 /
추천
0
@한대승 어디부분을 post로 바꿔야 된다는 말씀이실까요??
제가 실수로 코드에서 한부분을 빼먹었는데
현재 form을 통해 업로드할 파일을 올리면
_setPayDate 함수에서업로드한 파일의 데이터를 가져와 반환합니다.
반환한 데이터를 다시 showPayDate에 보낼려고 합니다.
업로드 파일을 form 통해 보낼때는 post를 사용하고 있습니다. |
양승현
/
2018/05/28 09:54:40 /
추천
0
GET방식으로는 512byte밖에 못보내니 POST로 바꿔야 하겠네요. 받아서 처리하는 페이지에서도 긴 데이터가 들어올걸 대비하여 POST로 넘어온 데이터를 처리하는 형태가 되어야 겠죠? 당연히 POST로 보내야 할곳은 GET으로 보내는 곳이겠지요? |
정수리
/
2018/05/28 10:01:08 /
추천
0
@양승현 답변감사합니다. 아직 제가 많이 부족해서 그런지 POST형태로 바꿔서 보내라고 말씀하셨는데 어느부분에서 POST로 형태로 바꿔서 보내야 하는걸까요? $resultMessage['url'] = '/search/paydata/showPay/'.$test; 이 부분을 post형태로 바꿔서 보내라는 말씀이실까요? 제가 아는 수준에서는 url을 ?이름=값 이러한 get형태로만 보낼주 아는게 다여서;; post형태로 바꿔야 한다면 어떻게 바꾸는걸까요??; 구글에서 어떤 키워드로 검색하면 찾을수 있을까요? |
양승현
/
2018/05/28 14:14:26 /
추천
0
아.. 그렇군요. 값을 보낼때 어떻게 보내는지부터 확인하셔야 할거 같네요. ajax로 client딴에서 보내는 거라면 javascript로 처리되어있을거고요. html딴에 버튼방식이면 <form>태그로 되어있을거구요. php딴에 백앤드 방식으로 서버단에서 보내는거라면 curl등으로 보낼 것입니다.
GET방식으로 어느소스 어디에서 보내는지를 먼저 확인해 보시면, 거기에 GET방식으로 되있는게 있을겁니다. url부분에 abc.com?a=1&b=2&C=3 이런형태의 url이라면 GET방식인게지요. POST방식은 html에서 값을 보낼때 보통 abc.com/abc/cde 이런식의 url을 가지고 <input type="hidden" name="abc" value=""> 와 같은 보낼값을 input 태그로 지정하여 값을 보냅니다. 우선은 GET으로 보내는곳이 어떻게 구현이 되어있는지부터 확인하시고.. ajax인지 html에서 보내는건지 curl등으로 백단에서 보내는지를 찾아보시고 그에 따라 구글링하셔서 찾아 보시면 되겠습니다. |
한대승(불의회상)
/
2018/05/28 15:18:32 /
추천
0
php프로그램 내에서 보내시는거라면 curl 검색해 보세요.
|
정수리
/
2018/05/28 16:16:18 /
추천
0
@한대승 답변감사합니다. 다행히 php프로그램내에서 보내는거라 curl를 통해 해결하였네요 ㅎㅎ 감사합니다. |
정수리
/
2018/05/28 16:16:53 /
추천
0
@양승현 답변 정말 감사합니다. php프로그램내에서 보내는 것이기에 curl를 사용하였습니다. |