post로 내용을 submit 할때 관련 내용 입니다.
본문
영카트5의 adm\shop_admin\orderlist.php
을 수정 하여 한번에 2000개 이상의 숫자를 한꺼번에 post 방식으로
orderlistupdate.php 로 넘어 가도록 수정 하여 사용 하고 있습니다.
자료가 2000건이 되기 전에는 몰랐으면
2000건 이상의 자료가 post 로 넘어가게 되면서 갑자기
400 bad request 에러가 발생하여
이리 저리 찾아 보다 phpinfo로 확인을 해봤더니
"Max Requests Per Child: 2000 - Keep Alive: on - Max Per Connection: 100"
이렇게 되있더군요
지레짐작으로 차일드가 1800건 정도되 되겠금 해서 다시 submit 해 보니 제대로 넘어가네요
그래서 질문을 드립니다.
필요한 량은 예상대로라면 Per Child 20000 정도로 하고 싶은데
이것은 호스팅 업체(*afe2*) 에서 서버에 문제가 없는지 물어 봐야 하는 것이 맞겠지요?
(이쪽에는 관련 지식이 없네요...)
혹시 왠만한 호스팅 에서는 어느 정도로 설정하는 것이 적당선인지 질문 드립니다.
그리고 또한 그 2000건 이 넘도록 넘어가는 post 데이터 에서
사실 체크되어 실제로 사용되는 부분은
한번에 넘어갈때 10건 정도 밖에는 안되고 나머지는 그저 버려지고 있는데요
그래서 사실 2000까지도 필요가 없는데
사용 되지 않는 부분 때문에 더 많은 max가 필요한데요
(실제 orderlists.php 에 소스를 보시면 아시겠지만
for ($i=0; $i<count($_POST['chk']); $i++)
{
// 실제 번호를 넘김
$k = $_POST['chk'][$i];
$od_id = $_POST['od_id'][$k];
!-->
답변 2
배열로 체크한 것만 넘겨서 처리하면 됩니다.
<form method="post">
<input type="hidden" name="ok" value="ok">
<input type="checkbox" name="aa[]" value="1"> 1<br/>
<input type="checkbox" name="aa[]" value="2"> 2<br/>
<input type="checkbox" name="aa[]" value="3"> 3<br/>
<input type="checkbox" name="aa[]" value="4"> 4<br/>
<input type="checkbox" name="aa[]" value="5"> 5<br/>
<input type="checkbox" name="aa[]" value="6"> 6<br/>
<input type="checkbox" name="aa[]" value="7"> 7<br/>
<input type="checkbox" name="aa[]" value="8"> 8<br/>
<input type="checkbox" name="aa[]" value="9"> 9<br/>
<button>222</button>
</form>
<?php
print_r($_POST[aa]);
?>
1. chk의 값을 유의미한 값으로 주고 orderlistupdate.php 에서 디비를 통해 od_id를 가져오게 처리
=> chk로 넘어온 값으로 od_id를 가져오는 방식
2. od_id는 히든으로 처리하지 마시고 POST로 넘길 때 jquery 등으로 생성해주는게 좋을 듯 합니다.
서브밋 할 때 chk로 체크된것만 생성해서 전달하는 방식이지요.
od_id가 필요하다면 자바스크립트 배열로 저장시켜두고 빼쓰면 되겠네요.
어떠한 구조에 어떠한 쓰임새인지는 모르겠습니다만, 1번을 추천드리겠습니다...