2011-05-05 2 views
5

새로운 기계에 모든 PHP 물건을 설치했는데 정말 많은주의 경고가 나타납니다.php : 다른 기계에서 "주의"경고

내 코드가 내 이전 컴퓨터에서 오류없이 올바르게 작동하고 있습니다.

예 : 레코드 세트 값을 가져와야하는 다음 줄은 알림을 발생시킵니다. $ ID = $ rs [id];

이유는 ID 필드에 따옴표가 누락되어 있지만 존재하지 않는 값에 $ _GET를 호출하면 알림이 발생합니다.

아무 이유없이이 사람이 누구인지 알 수 있습니까? 레코드 세트 또는 quotet()의 따옴표로 번거 로움을 겪지 않아도 내 기존 컴퓨터 에서처럼 "간단한"코딩 방법을 유지하는 것이 좋습니다. - 아이디어가 있습니까?

감사합니다.

+1

'어떤 아이디어? '- 아름다운 코드를 작성하려고 시도하십시오. 또는 정상. 적어도 냄새 맡지 마라. http://pear.php.net/manual/ko/coding-standards.php http://groups.google.com/group/php-standards/web/psr-0-final-proposal?pli=1 –

답변

5

새 컴퓨터에 PHP를 설치하면 오류뿐 아니라 공지 사항을 보여주는보다 강력한 구성이 제공됩니다. 좋습니다. 필자는 서버에 PHP 스크립트를 쓰거나 받아들이지 않습니다.

이런 종류의 "게으른"코딩 (나를 용서하고 싶습니다!)은 향후 문제 (코드 읽기 및 디버그)와 간접적 인 보안 문제 ("게으른"코드는 종종 결함이 있습니다). 고지를 발사하는 모든 것을 고쳐라. :)

그리고 가능한 한 고급 PHP를 배우십시오. 객체 지향 프로그래밍, 캡슐화, 정보 숨기기 등으로 이동하십시오. 이것은 요즘 이루어지는 일이며 이전보다 훨씬 잘 작동합니다. 예고 억제 및 register_globals 주위에 구축 된 오래된 PHP 스크립트는 다소 덤프되었습니다.

+0

보안 문제가 걱정 되니? 정말로 중요한 것인가? thx – Fuxi

+0

음, 직접 * 보안 문제를 가져 오지는 않지만 간접적으로 가져옵니다. 경험에 의하면 '게으른'코드는 종종 안전하지 못하며 디버깅 및 유지 관리가 항상 어렵습니다. – gd1

3

기계마다 오류보고 수준과 같은 소리가 다릅니다. php.ini의 여러 컴퓨터에서 error_reporting 레벨을 비교해보십시오.

1

두 대의 서버에 다른 error_reporting 값이 설정되어있는 것 같습니다. php.ini를 확인하고 적절히 설정하십시오.

+0

항상 모든 종류의 통지를 인쇄하도록 적절하게 설정해야합니다. 안그래? ?? – gd1

+0

Hrrm (필수적이지는 않음). 자세한 내용이 항상 긍정적으로 인식되어서는 안됩니다. –

+1

자세한 정보가 아닙니다.주의를 촉구하는 PHP 스크립트에 만족해서는 안되므로 고지의 원인을 제거하여 자세한 표시를 억제해야합니다. 이 게으름은 PHP5를 사용하지 않는 유산입니다. :) – gd1

4

통지 이유는 "정의되지 않은 상수"때문입니다. 의도 한 문자열을 따옴표로 묶지 않으면 PHP는이를 상수로 취급합니다. 그것이 정의되지 않은 경우, PHP는 그것을 강한 것으로 취급합니다. 다음 예를 보자 (예 : 위의 $array['three'];로) 정의되지 않은 배열의 키에 액세스하려고하면

$array = array(
    'one' => 'right' 
    , 'two' => 'wrong' 
); 
define('one', 'two'); 

echo $array[one]; //echoes "wrong" 

또한, 당신은 통지를 받게됩니다. PHP는 다른 언어가 오류를 일으키거나 (또는 ​​악화되기 때문에)이 작업을 수행 할 수있을만큼 멋지다.

고지 사항은 사용자를 괴롭히는 것이 아닙니다. 그들은 여러분의 코드에 주소 지정을 강력히 고려해야하는 문제가 있음을 알려야합니다.

관련 문제