[PHP] Undefined index 에러 해결방법

PHP/PHP Error 2015. 1. 7. 18:39


■ 에러상황


세션(Session)의 삭제 여부를 확인하는중 아래와 같은 에러가 발생되었다.


 delete_session.php

<span style="font-size: 12pt;"><?
    session_start();

    unset($_SESSION['userID']);
    unset($_SESSION['userName']);
    unset($_SESSION['time']);
?>

<h3>▶ 세션의 삭제</h3>
<table width = "400" border = "1">
    <tr>
        <td>아이디</td>
        <td>이름</td>
        <td>현재시각</td>
    </tr>
    <tr>
        <td><?= $_SESSION['userID'] ?></td>
        <td><?= $_SESSION['userName'] ?></td>
        <td><?= $_SESSION['time'] ?></td>
    </tr>
</table>

</span>

 출력확인


에러의 원인은 값이 없는 세션을 출력하기위해 나타난 것이었고.


아래와 같이 해결하였다.







해결방법



01. php.ini 파일을 텍스트 편집기로 열고 error reporting를 검색하고. 아래 이미지와 같이 되어 있는 부분을 찾아낸다.




02. 내용을 아래와 같이 수정하고 저장한다.

  error_reporting = E_ALL & ~E_NOTICE




03. 아파치를 재시작 한다.





04. 그리고 위 소스를 다시 실행하였을 경우 값이 없기에 아무것도 출력하지 않는것을 확인 할 수 있다.









P.S : 정식 프로그램으로 출시할 경우에는 반드시 위와같이 설정을 변경해 주어야 하겠으나.

       개발 및 테스트 단계에서는 있는게 나을 수도 있을 것 같다. 본인의 선택인듯.

       필자는 에러 메시지를 보면 철렁 하는 가슴을 가지고 있기에 일단 위와 같이 설정하고 사용중이다.

  • 앙마 2015.01.12 21:37 ADDR 수정/삭제 답글

    isset 검사 등을 통해서 해당 index의 존재를 확인하여 해당 메시지가 출력되지 않도록 코딩하는 것이 바람직해 보이지 않을까 하는 생각 하나~~~

    • 사악미소 2015.01.13 11:58 신고 수정/삭제

      음 그걸 몰랐네요.
      http://blog.naver.com/writer0713/220192600715
      요거 참고해서 해봐야 겠네요.

[PHP] Warning: date() [function.date]: It is not safe to rely on the system's timezone settings.

PHP/PHP Error 2015. 1. 6. 15:13

※ 에러발생


PHP에서 date 함수를 사용하던중 아래와 같은 에러가 발생하였다.


 에러코드

 출력화면

 에러내용

Warning: date() [function.date]: It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Tokyo' for '9.0/no DST' instead in C:\Developer\Apache2.2\htdocs\session02.php on line 13




$time = date('Y-m-d(H:i:s)', $time);


위 코드에서 date( ) 함수를 사용해서 발생한 에러로 해결방법은 아래와 같다.






※ 해결방법



01. date.timezone을 찾고 주석(;)을 제거하고 아래와 같이 수정한다.

     이렇게 설정해야 php에서 date( ) 함수를 사용한 한국시간을 구할 수 있게된다.

  date.timezone = Asia/Seoul




02. 아파치를 Restart 시켜서 다시 실행한다.



03. 에러가 해결된 모습을 확인 할 수 있다.


  • 앙마 2015.01.12 21:37 ADDR 수정/삭제 답글

    <?php
    date_default_timezone_set('Asia/Seoul');


    ?>

    위의 코드를 date 함수 사용전에 삽입하여 타임존을 설정해 주면 ini 설정 파일을 건드리지 않고 해당 에러에 대한 처리 가능..

    시스템 이전등을 할때 ini 설정을 쬐금이라도 덜 건드릴 수 있을듯...

[PHP] Use of undefined constant ??? - assumed '???' in

PHP/PHP Error 2014. 12. 23. 15:28



Use of undefined constant 변수 - assumed '변수' in

PHP 5.3 이후 버전에서 발견되는 문제로.

$_SERVER[DOCUMENT_ROOT]

$_SERVER['DOCUMENT_ROOT']

배열 인덱스가 문자열이니 문자열( ' ' )로 처리해 주어야 한다는 뜻이다.


php