C이사 서버를 과부하 시켜 버린 파일의 정체를 밝혀주세요 ㅠㅠ
본문
<?php
define('_INDEX_', true);
include_once('./_common.php');
include_once(G5_PATH.'/head.sub.php');
?>
<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>
<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>
<?php
include_once('./_tail.php');
?>
위 소스만 담고 있는 파일을 서버에 올려놓고 실행시켰더니
서버가 과부하 걸려 버렸습니다.
홈페이지가 너무 늦게 열리고
공용서버인지라
다른 사용자들 홈페이지까지 마비되었다고 합니다.
제가 좀 레벨이 낮아서 그러는데
위 소스의 문제 점이 무었입니까?
또 서버 마비될까봐 테스트를 못하겠습니다. ㅠㅠ
for ($i=1; $i<=13; $i++){ 이 부분에서 $i=13 요렇게 써보기도 했었습니다.
중간쯤 말고 젤 위 상단과 하단의 php는 다른 페이지에도 쓰고 있는 조합이라 문제가 없다고 생각됩니다만...
답변 2
흔히 격는 실수입니다만...
for문 2번째는 for를 끝내는 조건입니다. 이 조건이 false가 되지 않으면 무한루프를 돌면서
과부하를 유발합니다.
= 하나와 두개의 차이를 명확히 해야 할거 같습니다.
하나는 값의 이동 2개는 참, 거짓을 판명하는 조건입니다.
반드시 조건이 와야 합니다.
for문 안에 일정 횟수 이상이면 for문을 벗어나는 구문을 넣는 것도 좋은 방법입니다.
$tmp = 0;
for ($i=1; $i<=13; $i++){
if($tmp >= 5) break; else $tmp++;
echo '<li><input type="text" name="r_damage$i" value="" class="repair_1"></li>';
}
위 소스에서는 문제될만한 부분은 없습니다.
$i=13 이부분은 잘못댔지만 $i<=13; 이부분은 문제 없습니다.
echo '<li><input type="text" name="r_damage'.$i.'" value="" class="repair_1"></li>';
이부분을 이런식으로 변경해보세요
답변을 작성하시기 전에 로그인 해주세요.