테스트 사이트 - 개발 중인 베타 버전입니다

C이사 서버를 과부하 시켜 버린 파일의 정체를 밝혀주세요 ㅠㅠ 채택완료

pyiell 9년 전 조회 4,127

</p><p><?php
define('_INDEX_', true);
include_once('./_common.php');
include_once(G5_PATH.'/head.sub.php');
?></p><p><div>
 <div>
  <ul>
   <li>A</li>
   <li>B</li>
   <li>C</li>
   <li>D</li>
   <li>E</li>
   <li>F</li>
   <li>G</li>
   <li>H</li>
   <li>i</li>
   <li>J</li>
   <li>K</li>
   <li>L</li>
   <li>M</li>
  </ul></p><p>
  <ul>
   <?php
    for ($i=1; $i<=13; $i++){
     echo '<li><input type="text" name="r_damage$i" value="" class="repair_1"></li>';
    }
   ?>
  </ul>
 </div>
</div></p><p><?php
include_once('./_tail.php');
?></p><p>

 

 

위 소스만 담고 있는 파일을 서버에 올려놓고 실행시켰더니 서버가 과부하 걸려 버렸습니다.

홈페이지가 너무 늦게 열리고

공용서버인지라

다른 사용자들 홈페이지까지 마비되었다고 합니다.

 

제가 좀 레벨이 낮아서 그러는데 위 소스의 문제 점이 무었입니까?  

또 서버 마비될까봐 테스트를 못하겠습니다. ㅠㅠ

 

for ($i=1; $i<=13; $i++){  이 부분에서 $i=13  요렇게 써보기도 했었습니다. 중간쯤 말고 젤 위 상단과 하단의 php는 다른 페이지에도 쓰고 있는 조합이라 문제가 없다고 생각됩니다만... 

댓글을 작성하려면 로그인이 필요합니다.

답변 2개

채택된 답변
+20 포인트

흔히 격는 실수입니다만...

for문 2번째는 for를 끝내는 조건입니다.  이 조건이 false가 되지 않으면 무한루프를 돌면서

과부하를 유발합니다.

= 하나와 두개의 차이를 명확히 해야 할거 같습니다.

하나는 값의 이동 2개는 참, 거짓을 판명하는 조건입니다.

반드시 조건이 와야 합니다.

for문 안에 일정 횟수 이상이면 for문을 벗어나는 구문을 넣는 것도 좋은 방법입니다.

</p><p>$tmp = 0;</p><p>for ($i=1; $i<=13; $i++){</p><p>  if($tmp >= 5) break; else $tmp++;</p><p>  echo '<li><input type="text" name="r_damage$i" value="" class="repair_1"></li>';</p><p>}</p><p>

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

p
pyiell
9년 전
감사합니다!
습관화해서 문제를 최소화 할 수 있도록 해야겠네요!
좋은 팁 다시한번 감사드립니다!

댓글을 작성하려면 로그인이 필요합니다.

SLOOP
9년 전

위 소스에서는 문제될만한 부분은 없습니다.

 

$i=13 이부분은 잘못댔지만  $i<=13; 이부분은 문제 없습니다.

 

 

echo '

  • '; 

    이부분을 이런식으로 변경해보세요

    로그인 후 평가할 수 있습니다

    답변에 대한 댓글 2개

    p
    pyiell
    9년 전
    혹시 $i=13 이라고 쓴다면 서버가 마비 될수도 있는 건가요?
    지금 무서워서 테스트 조차 못하고 있습니다. ㅠㅠ
    p
    pyiell
    9년 전
    감사합니다! 문제를 아니 조금은 안심이 되네요! 좋은 하루 보내세요!

    댓글을 작성하려면 로그인이 필요합니다.

    답변을 작성하려면 로그인이 필요합니다.

    로그인