새해 복 많이 받으세요!! php 4.3.10 업데이트후 초짜의 고민.. 정보
그누보드 새해 복 많이 받으세요!! php 4.3.10 업데이트후 초짜의 고민..관련링크
http://songga.co.kr/gallery/
12회 연결
본문
새해 복 많이 받으시고 건강하세요!
오랬만에 황당할지도 모를 초보다운 질문을 올립니다.
호스팅업체에서 php4.3.10으로 업데이트후 특정 프로그램(코퍼마인갤러리)에서
There was an error while processing a database query 메세지가 출력됩니다.
디비 및 여타 프로그램도 이상없이 돌아가는데,, 유독 갤러리프로그램만 그렇습니다.
여기저기 뒤져보니 함수가운데 foreach문과 관련된 글들이 있습니다만,
초보의 입장에서 잘 이해가 되질 않습니다.
그누 관리자님께서 올린 공지 내용에서 보면,,
-또한 ZendOptimizer 를 사용하시는 분들은 ZendOptimizer 2.5.7 버전을 사용해야 하며. 이하 버전에서는 foreach 문이 잘못 연산되는 버그가 발생할 수 있다.- 라고 하셨는데 서버에서 ZendOptimizer 2.5.7으로 업데이트 하면 프로그램의 수정없이 해결되는 것인지 궁금합니다.
보안관련 문제로 업데이트 된듯한데 초보상식으로 생각할때 함수의 호환(말이 되는지 모르지만??)이 되지않는다는게 조금 이상하다는 생각이 들기도 하고 대여섯개 도메인에 문제의 프로그램을 돌리고 있는데 막막합니다.
고수님들의 조언을 듣고 싶습니다.
읽어주셔서 감사합니다!
참고로 아래는 업체의 공지내용입니다.
=================================
최근 PHP 게시판을 이용한 웹 변조가 심각하게 이루어지고 있습니다.
이와 관련한 보안 권고 사항 중 PHP 버전을 최신 버전으로 업그레이드하라는 내용이 한국정보보호진흥원으로부터 공지되었습니다. 따라서 PHP 버전을 최신버전인 4.3.10으로 업그레이드했습니다.
PHP 버전 업그레이드로 인해 잘 동작하던 프로그램이 갑자기 안 될 수 있습니다.
PHP 버전이 업그레이되면서 몇 몇 함수의 사용 형식이 변경된 것 같습니다.
현재 변경된 것 중 확인된 함수는 foreach() 함수입니다.
해당 함수 처리 시 키값까지 받아서 처리하는 형식으로 변경을 해야 합니다.
아래의 예 중 예제1 방식으로는 안 되며 예제2 또는 예제3 방식과 같이 키값을 받는 형식으로 처리하시면 됩니다.
<?php
/* foreach 예제 1: 값만 */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo "\$a의 현재 값: $v.\n";
}
/* foreach 예제 2: 값 (키는 가상으로 출력) */
$a = array(1, 2, 3, 17);
$i = 0; /* 가상 목적으로만 사용 */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
$i++;
}
/* foreach 예제 3: 키와 값 */
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
?>
자세한 사항은 PHP 사이트 매뉴얼을 참조하시기 바랍니다.
관련 매뉴얼은 http://www.php.net/ 사이트에 접속하신 뒤 search로 foreach를 찾아 보시면 됩니다.
감사합니다.
오랬만에 황당할지도 모를 초보다운 질문을 올립니다.
호스팅업체에서 php4.3.10으로 업데이트후 특정 프로그램(코퍼마인갤러리)에서
There was an error while processing a database query 메세지가 출력됩니다.
디비 및 여타 프로그램도 이상없이 돌아가는데,, 유독 갤러리프로그램만 그렇습니다.
여기저기 뒤져보니 함수가운데 foreach문과 관련된 글들이 있습니다만,
초보의 입장에서 잘 이해가 되질 않습니다.
그누 관리자님께서 올린 공지 내용에서 보면,,
-또한 ZendOptimizer 를 사용하시는 분들은 ZendOptimizer 2.5.7 버전을 사용해야 하며. 이하 버전에서는 foreach 문이 잘못 연산되는 버그가 발생할 수 있다.- 라고 하셨는데 서버에서 ZendOptimizer 2.5.7으로 업데이트 하면 프로그램의 수정없이 해결되는 것인지 궁금합니다.
보안관련 문제로 업데이트 된듯한데 초보상식으로 생각할때 함수의 호환(말이 되는지 모르지만??)이 되지않는다는게 조금 이상하다는 생각이 들기도 하고 대여섯개 도메인에 문제의 프로그램을 돌리고 있는데 막막합니다.
고수님들의 조언을 듣고 싶습니다.
읽어주셔서 감사합니다!
참고로 아래는 업체의 공지내용입니다.
=================================
최근 PHP 게시판을 이용한 웹 변조가 심각하게 이루어지고 있습니다.
이와 관련한 보안 권고 사항 중 PHP 버전을 최신 버전으로 업그레이드하라는 내용이 한국정보보호진흥원으로부터 공지되었습니다. 따라서 PHP 버전을 최신버전인 4.3.10으로 업그레이드했습니다.
PHP 버전 업그레이드로 인해 잘 동작하던 프로그램이 갑자기 안 될 수 있습니다.
PHP 버전이 업그레이되면서 몇 몇 함수의 사용 형식이 변경된 것 같습니다.
현재 변경된 것 중 확인된 함수는 foreach() 함수입니다.
해당 함수 처리 시 키값까지 받아서 처리하는 형식으로 변경을 해야 합니다.
아래의 예 중 예제1 방식으로는 안 되며 예제2 또는 예제3 방식과 같이 키값을 받는 형식으로 처리하시면 됩니다.
<?php
/* foreach 예제 1: 값만 */
$a = array(1, 2, 3, 17);
foreach ($a as $v) {
echo "\$a의 현재 값: $v.\n";
}
/* foreach 예제 2: 값 (키는 가상으로 출력) */
$a = array(1, 2, 3, 17);
$i = 0; /* 가상 목적으로만 사용 */
foreach ($a as $v) {
echo "\$a[$i] => $v.\n";
$i++;
}
/* foreach 예제 3: 키와 값 */
$a = array(
"one" => 1,
"two" => 2,
"three" => 3,
"seventeen" => 17
);
foreach ($a as $k => $v) {
echo "\$a[$k] => $v.\n";
}
?>
자세한 사항은 PHP 사이트 매뉴얼을 참조하시기 바랍니다.
관련 매뉴얼은 http://www.php.net/ 사이트에 접속하신 뒤 search로 foreach를 찾아 보시면 됩니다.
감사합니다.
댓글 전체
해결 되었습니다.
관리자님 인용글대로 ZendOptimizer 문제였답니다.
--------------------업체--------------------------
버전 업그레이드로 인해 예상치 못한 불편함을 드린 점 죄송합니다.
고객님께서 말씀하신 대로 젠드 옵티마이저를 버전 업그레이드하면 foreach 문제는 해결이 됩니다.
다만 옵티마이저 업그레이드 시 또다른 예상하지 못한 문제가 있을 수 있어 업그레이드하지 못했는데 현재 몇 가지 테스트를 한 결과 큰 문제는 없을 듯 싶습니다.
따라서 지금 현재 젠드 옵티마이저 버전을 업그레이드하고 있으며 foreach 함수 문제는 곧 해결이 될 것 같습니다.
관리자님 인용글대로 ZendOptimizer 문제였답니다.
--------------------업체--------------------------
버전 업그레이드로 인해 예상치 못한 불편함을 드린 점 죄송합니다.
고객님께서 말씀하신 대로 젠드 옵티마이저를 버전 업그레이드하면 foreach 문제는 해결이 됩니다.
다만 옵티마이저 업그레이드 시 또다른 예상하지 못한 문제가 있을 수 있어 업그레이드하지 못했는데 현재 몇 가지 테스트를 한 결과 큰 문제는 없을 듯 싶습니다.
따라서 지금 현재 젠드 옵티마이저 버전을 업그레이드하고 있으며 foreach 함수 문제는 곧 해결이 될 것 같습니다.