검색결과 리스트
IT/Programming/PHP에 해당되는 글 5건
- 2014.10.29 (PHP) isset() vs empty() vs is_null()
- 2014.10.22 (PHP) $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환할 때
- 2014.09.14 [XE] 흰 페이지만 보일 때 && 1.5 버젼 이후 모듈 사용 주의사항
- 2014.04.04 PHP 예전 버전 다운로드
- 2013.06.09 (PHP) Cannot send session cache limiter - headers already sent
글
(PHP) isset() vs empty() vs is_null()
isset(), empty(), is_null() 은 모두 해당 변수에 값이 들어있는지 안들어있는지를 체크하는 함수이다.
하지만 이 3가지 함수 모두 <비어있다> 를 판단하는 기준이 서로 조금씩 달라 혼선이 생길 수 있다.
아래의 테이블을 참고하도록 한다.
PHP 5.3.8 기준으로 테스트되었다.
비어있는 칸은 bool(false) 를 의미한다.
PHP Manual
isset() - http://php.net/manual/en/function.isset.php
empty() - http://php.net/manual/en/function.empty.php
is_null() - http://php.net/manual/en/function.is-null.php
참고 링크 :
https://www.virendrachandak.com/techtalk/php-isset-vs-empty-vs-is_null/
'IT/Programming > PHP' 카테고리의 다른 글
(PHP) $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환할 때 (0) | 2014.10.22 |
---|---|
[XE] 흰 페이지만 보일 때 && 1.5 버젼 이후 모듈 사용 주의사항 (0) | 2014.09.14 |
PHP 예전 버전 다운로드 (0) | 2014.04.04 |
(PHP) Cannot send session cache limiter - headers already sent (0) | 2013.06.09 |
글
(PHP) $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환할 때
PHP 에서 $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환하는 경우가 있다.
이는 IPv6 에서의 자기 자신을 가리키는 loopback address 이다. 즉, IPv4 의 127.0.0.1 과 똑같은 주소라고 보면 된다.
이를 해결하기 위해서는 IPv4 인터페이스로 사이트를 접속하거나 (이를테면 http://localhost/ 가 아닌 http://127.0.0.1/), 바인딩하는 호스트의 정보를 IPv4 형식으로 바꾸면 된다. 이 포스트에서는 Apache의 httpd.conf의 사이트 바인딩 정보 수정, IIS 사이트 바인딩 정보 수정, hosts 파일의 정보 수정, inet_ntop() 함수를 이용한 컨버팅 4가지의 해결방법을 소개한다.
Apache의 경우 :
httpd.conf 에서 Listen 항목을 찾아본다.
Listen 80 과 같이 적혀있다면, Listen 127.0.0.1:80 의 형식으로 변경하고 Apache를 재시작한다.
IIS의 경우 :
IIS(인터넷 정보 서비스) 관리자를 열고, 사이트 항목에 들어가보면 자신이 열어놓은 웹 사이트의 바인딩 정보를 볼 수 있다. 지금은 필자가 이미 127.0.0.1:80 으로 바인딩을 해둔 상태이지만, 지금 문제가 발생하고 있는 독자들은 아마도 :80 (http) 로 바인딩 되어 있을 것이다. 해당 항목을 오른쪽 클릭 - 바인딩 메뉴를 누르자.
편집(E) 를 눌러 IP 주소 항목에 127.0.0.1 을 작성하고 확인한 후, 사이트를 재시작하거나 IIS 를 재시작하면 문제는 해결된다.
hosts 파일 수정 :
hosts 파일을 찾아서 localhost 를 127.0.0.1 로 대응시켜주는 구문을 넣어주면 된다. 아래의 구문을 참고한다.
127.0.0.1 localhost
'IT/Programming > PHP' 카테고리의 다른 글
(PHP) isset() vs empty() vs is_null() (0) | 2014.10.29 |
---|---|
[XE] 흰 페이지만 보일 때 && 1.5 버젼 이후 모듈 사용 주의사항 (0) | 2014.09.14 |
PHP 예전 버전 다운로드 (0) | 2014.04.04 |
(PHP) Cannot send session cache limiter - headers already sent (0) | 2013.06.09 |
글
[XE] 흰 페이지만 보일 때 && 1.5 버젼 이후 모듈 사용 주의사항
제로보드 XE 에서 1.5 버젼 이전에 사용하던 모듈이 1.5 버젼 이후의 버젼으로 코어를 업데이트 했을 때 모듈들이 아무것도 없는 화면을 보이면서 페이지가 작동을 하지 않는 문제가 발생하고 있다.
이는 1.5 버젼 이후부터 __ZBXE__ 스위치가 __XE__ 로 변경되었기 때문이다.
다음의 패치 이슈를 참고 하도록 하자. :
Issue 2607: |
독립 php 페이지에서 세션공유시 |
config.inc.php 를 XE 세션 공유를 위하여 require() 등으로 가져올 때, 아래의 구문에 의하여 exit() 이 되어버린다.
}
기존에 사용하던 모듈(지금 문제가 발생하고 있는 모듈) 의 소스코드를 보면 아래와 같이 define이 되어있는 구문이 있을 것이다.
define('__ZBXE__',true);
define('__XE__', true); 구문을 require() 로 config.inc.php 를 가져오기 전에 추가해주면 해당 문제는 해결된다.
ex)
// Define XE Module
define('__ZBXE__',true);
define('__XE__',true); // 추가
require_once("./config/config.inc.php");
다만, 이를 사용하는 다른 페이지가 있을 수 있으니 기존에 사용하던 __ZBXE__ 문은 삭제하지 않도록 하자. (호환성의 문제가 있을 수 있으니..)
** 물론, config.inc.php 를 수정하여 __XE__ 를 define 해주는 등 전역으로 문제를 해결할 수 있는 방법이 있긴 하지만, __ZBXE__가 __XE__ 로 변경되는 것은 공식적인 사항이므로 모듈 페이지를 손을 보는 것이 올바르다.
** 그리고 config.inc.php 와 같은 전역적으로 사용하는 페이지는 수정하지 않는 것이 바람직하다. 또한, xe 패치 시 자동으로 패치가 이루어지는 페이지이기도 하니 되도록이면 손을 대지 않도록 하자.
'IT/Programming > PHP' 카테고리의 다른 글
(PHP) isset() vs empty() vs is_null() (0) | 2014.10.29 |
---|---|
(PHP) $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환할 때 (0) | 2014.10.22 |
PHP 예전 버전 다운로드 (0) | 2014.04.04 |
(PHP) Cannot send session cache limiter - headers already sent (0) | 2013.06.09 |
글
PHP 예전 버전 다운로드
'IT/Programming > PHP' 카테고리의 다른 글
(PHP) isset() vs empty() vs is_null() (0) | 2014.10.29 |
---|---|
(PHP) $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환할 때 (0) | 2014.10.22 |
[XE] 흰 페이지만 보일 때 && 1.5 버젼 이후 모듈 사용 주의사항 (0) | 2014.09.14 |
(PHP) Cannot send session cache limiter - headers already sent (0) | 2013.06.09 |
글
(PHP) Cannot send session cache limiter - headers already sent
Warning: session_start(): Cannot send session cache limiter - headers already sent
해당 에러는 session_start() 구문을 PHP 코드의 맨 위에 넣지 않아서 생기는 문제이다. 헤더가 구성될 때 세션이 구성이 되어야 하는데, 다른 php 작업들로 인하여 이미 헤더가 전송된 상태에서 세션을 전달할 수 없기 때문이다. 해결 방법은 간단하다. php 코드를 시작 부에 session_start() 를 넣어주면 된다.
만약, 그래도 문제가 지속된다면 php.ini 에서 output_buffering 속성을 on 으로 바꿔주고 웹 서버를 재시작하면 해결된다.
'IT/Programming > PHP' 카테고리의 다른 글
(PHP) isset() vs empty() vs is_null() (0) | 2014.10.29 |
---|---|
(PHP) $_SERVER['REMOTE_ADDR'] 이 ::1 을 반환할 때 (0) | 2014.10.22 |
[XE] 흰 페이지만 보일 때 && 1.5 버젼 이후 모듈 사용 주의사항 (0) | 2014.09.14 |
PHP 예전 버전 다운로드 (0) | 2014.04.04 |