'php'에 해당되는 글 54건

  1. 2009/02/23 smarty variable modifier - wordwrap
  2. 2009/02/23 PHP 디버그 툴 소개 Debuglib
  3. 2008/12/22 쓸만한 PHP 무료 호스팅 서비스 5개(해외)
  4. 2008/11/04 PHP 개발자를 위한 10가지 유용한 소스
  5. 2008/09/26 [PHP] 생일로 나이 계산 (2)
  6. 2008/07/01 PHP : PEAR : HTML_TagCloud (2)
  7. 2008/07/01 태그클라우드
  8. 2008/06/27 PHP parse_url 함수
  9. 2008/06/27 PHP pathinfo 함수
  10. 2008/06/27 PHP header 함수
  11. 2008/06/25 PHP 세션 - 세션 , 보안
  12. 2008/06/25 PHP 세션 - 예
  13. 2008/06/25 PHP 세션 - 기정의 정수
  14. 2008/06/25 PHP 세션 - 인스톨 / 설정
  15. 2008/06/25 PHP 세션 - 소개

smarty variable modifier - wordwrap

PHP/functions 2009/02/23 18:06
원문링크:
http://www.smarty.net/manual/en/language.modifier.wordwrap.php

스마티(smarty)의 wordwrap

PHP 의 wordwrap 함수와 같다.
http://www.php.net/manual/en/function.wordwrap.php
예.

<?php

$smarty
->assign('articleTitle'
,
               
"Blind woman gets new kidney from dad she hasn't seen in years."
               
);
?>



{$articleTitle}
{$articleTitle|wordwrap:30}
{$articleTitle|wordwrap:20}
{$articleTitle|wordwrap:30:"<br />\n"}
{$articleTitle|wordwrap:26:"\n":true}

파라미터 설명.
first parameter       : wordwrap 할 컬럼 수 (integer)
second parameter : wordwrap 에 사용되는 문자열
third parameter      :  wordwrap 을 단어 단위로 할지(FALSE) , 엄격하게 캐릭터수로 할지 (TRUE)를 정함.

'PHP > functions' 카테고리의 다른 글

smarty variable modifier - wordwrap  (0) 2009/02/23
[PHP] 생일로 나이 계산  (2) 2008/09/26
PHP 디렉토리 함수 (dir)  (0) 2008/05/07
tags : php, smarty, wordwrap
Trackback 0 : Comment 0

PHP 디버그 툴 소개 Debuglib

PHP/Library 2009/02/23 15:18
이것도 사용법은 간단하다.

DbugL::help();
하면 사용법이 출력되고

print_r 처럼 print_a 로 보고 싶은 정보를 출력가능하다.

출력경과는 다음과같은 테이블로 보기 쉽게 나타내준다.



링크:
http://www.atomar.de/debuglib/

관련글:
PHP 디버그 툴 소개 dBug

'PHP > Library' 카테고리의 다른 글

PHP 디버그 툴 소개 Debuglib  (0) 2009/02/23
PHP 디버그 툴 소개 dBug  (0) 2009/02/23
PHP 개발자를 위한 10가지 유용한 소스  (0) 2008/11/04
태그클라우드  (0) 2008/07/01
PHP 테스트 , 디버그툴  (0) 2008/03/15
tags : php, 디버그툴
Trackback 0 : Comment 0

쓸만한 PHP 무료 호스팅 서비스 5개(해외)

Bookmark 2008/12/22 19:22

무료이니 서비스로 사용하기보다 , 이것저것 만지작 거리기에 쓸만할 듯.
참고로 다 해외 사이트.


링크:
http://woork.blogspot.com/2008/12/5-awesome-free-web-hosting-services.html
Trackback 0 : Comment 0

PHP 개발자를 위한 10가지 유용한 소스

PHP/Library 2008/11/04 18:22
자그마하게 쓸만한 것들...


링크:
http://htmlblog.net/10-code-snippets-for-php-developers/

'PHP > Library' 카테고리의 다른 글

PHP 디버그 툴 소개 Debuglib  (0) 2009/02/23
PHP 디버그 툴 소개 dBug  (0) 2009/02/23
PHP 개발자를 위한 10가지 유용한 소스  (0) 2008/11/04
태그클라우드  (0) 2008/07/01
PHP 테스트 , 디버그툴  (0) 2008/03/15
tags : Codes, php
Trackback 0 : Comment 0

[PHP] 생일로 나이 계산

PHP/functions 2008/09/26 18:10
나이계산때문에....메모

<?php
$birth_time   = strtotime('1995-01-02');
$now          = date('Ymd');
$birthday     = date('Ymd' , $birth_time);
$age           = floor(($now - $birthday) / 10000);
?>

위는 만 나이 계산.

한국 나이로 계산은
<?php
$birth_time   = strtotime('1995-01-02');
$now          = date('Y');
$birthday     = date('Y' , $birth_time);
$age           = $now - $birthday + 1 ;
?>

만 나이 계산때문에 귀찮아서...메모해둠.
 

'PHP > functions' 카테고리의 다른 글

smarty variable modifier - wordwrap  (0) 2009/02/23
[PHP] 생일로 나이 계산  (2) 2008/09/26
PHP 디렉토리 함수 (dir)  (0) 2008/05/07
tags : php
Trackback 0 : Comments 2

PHP : PEAR : HTML_TagCloud

PHP/PEAR 2008/07/01 12:16

HTML_TagCloud

PEAR 에 공개된 HTML_TagCloud 를 사용한 태그클라우드 소개 및 사용법 번역.

URL : http://pear.php.net/package/HTML_TagCloud

  1. 개요

    이 패키지는 태그클라우드를 HTMLCSS 으로 작성.
    태그클라우드란 태그 또는 키워드를 리스트로 형식으로 표현한 것으로 해당 페이지 / 블로그내에서 나타나는 빈도에따라 폰트사이즈가 달라진다. 

    위키피디아에 올라온 한국어 설명에서는 태그구름이라는 이름이네..-,.-
    http://ko.wikipedia.org/wiki/%ED%83%9C%EA%B7%B8_%EA%B5%AC%EB%A6%84

    이 패키지는 빈도 및 시간경과정보도 표시가능하다. 신착 태그는 짙은 색으로 오래된 태그는 옅은 색으로 표시.

    인스톨방법은 위 URL 을 참조해서 설치하기.

  2. 사용 예
    <?php
    require_once 'HTML/TagCloud.php'
    ;

    $tags = new HTML_TagCloud
    ();
    // 요소(엘리먼트)추가
    $tags->addElement('PHP'       ,'http://www.php.net'  , 39, strtotime('-1 day'
    ));
    $tags->addElement('XML'       ,'http://www.xml.org'  , 21, strtotime('-2 week'
    ));
    $tags->addElement('Perl'      ,'http://www.xml.org'  , 15, strtotime('-1 month'
    ));
    $tags->addElement('PEAR'      ,'http://pear.php.net' , 32, time
    ());
    $tags->addElement('MySQL'     ,'http://www.mysql.com', 10, strtotime('-2 day'
    ));
    $tags->addElement('PostgreSQL','http://pgsql.com'    ,  6, strtotime('-3 week'
    ));
    // HTML 및 CSS 출력

    print $tags->buildALL
    ();
    ?>


  3. HTML과 CSS 를 별도 생성
    HTML_TagCloud 는 HTML 과  CSS 를 출력한다.  HTML 는 단순 리스트이며 CSS 로 꾸민다. HTML 과  CSS 는 별도로 출력할 수 있다.

    <?php
    // CSS 만 출력
    $css = $tags->buildCSS
    ();
    // html 만 출력
    $taghtml = $tags->buildHTML
    ();
    ?>

    HTML 의 출력은 addElement() 로 추가된 태그데이터에 의존한다.  그러나 CSS 의 출력은 고정되어 있다. 이 패키지의 CSS 출력을 정적으로 사용할 수 있다.

  4. 태그 장식의 수정
    CSS 에서 사용하는 색을 변경할 수 있다.  HTML_TagCloud 를 상속받은 클래스를 작성하여 색 , 사이즈프로퍼티를 오버라이드한다.

    <?php
    class MyTags extends
    HTML_TagCloud
    {
        protected
    $epocLevel
    = array(
            array(
               
    'earliest'
    => array(
                   
    'link'    => 'ffdfdf'
    ,
                   
    'visited' => 'ffdfdf'
    ,
                   
    'hover'   => 'ffdfdf'
    ,
                   
    'active'  => 'ffdfdf'
    ,
                ),
            ),
            array(
               
    'earlier'
    => array(
                   
    'link'    => 'ff7f7f'
    ,
                   
    'visited' => 'ff7f7f'
    ,
                   
    'hover'   => 'ff7f7f'
    ,
                   
    'active'  => 'ff7f7f',
                 ),         
            ),        
            array(
                
    'previous'
    => array(
                   
    'link'    => 'ff7f7f'
    ,
                   
    'visited' => 'ff7f7f'
    ,
                   
    'hover'   => 'ff7f7f'
    ,
                   
    'active'  => 'ff7f7f'
    ,
                ),
            ),
            array(
               
    'recent'
    => array(
                   
    'link'    => 'ff4f4f'
    ,
                   
    'visited' => 'ff4f4f'
    ,
                   
    'hover'   => 'ff4f4f'
    ,
                   
    'active'  => 'ff4f4f'
    ,
                ),
            ),
            array(
               
    'later'
    => array(
                   
    'link'    => 'ff1f1f'
    ,
                   
    'visited' => 'ff1f1f'
    ,
                   
    'hover'   => 'ff1f1f'
    ,
                   
    'active'  => 'ff1f1f'
    ,
                ),
            ),
            array(
               
    'latest'
    => array(
                   
    'link'    => 'ff0000'
    ,
                   
    'visited' => 'ff0000'
    ,
                   
    'hover'   => 'ff0000'
    ,
                   
    'active'  => 'ff0000'
    ,
                ),
            ),
        );
        protected
    $size_suffix = 'pt'
    ;
        protected
    $fontsizerange = 0
    ;
        protected
    $basefontsize = 12
    ;
    }
    ?>
  5. 시간정보 생략
    시간경과에 따른 색 변경 기능을 생략할 경우 addElement() 의 네번째 파라미터를 생략한다.
    이 파라미터를 생략하면 현재 시각이 적용된다.

    <?php
    $tags
    ->addElement('PHP','http://www.php.net', 39
    );
    ?>

관련링크 : http://pear.php.net/package/HTML_TagCloud

관련 글 : 태그클라우드

 

'PHP > PEAR' 카테고리의 다른 글

PHP : PEAR : HTML_TagCloud  (2) 2008/07/01
[PHP] PEAR XML_RSS  (0) 2008/04/20
PEAR Memo  (0) 2008/03/03
Trackback 0 : Comments 2

태그클라우드

PHP/Library 2008/07/01 11:53
요샌 어딜가나 태그클라우드를 사용하는 추세...

태그클라우드 로 참고 할만한 내용.

링크 : http://www.developertutorials.com/blog/php/building-web-2-0-tag-clouds-in-php-165/


PEAR 내에도  http://pear.php.net/package/HTML_TagCloud 가 있음.

관련글 : [PHP/PEAR] - PHP : PEAR : HTML_TagCloud

'PHP > Library' 카테고리의 다른 글

PHP 디버그 툴 소개 Debuglib  (0) 2009/02/23
PHP 디버그 툴 소개 dBug  (0) 2009/02/23
PHP 개발자를 위한 10가지 유용한 소스  (0) 2008/11/04
태그클라우드  (0) 2008/07/01
PHP 테스트 , 디버그툴  (0) 2008/03/15
tags : PEAR, php, tagcloud
Trackback 0 : Comment 0

PHP parse_url 함수

PHP/매뉴얼 번역 2008/06/27 15:52

http://doc.a4box.com/php/function.parse-url.html
여기에 번역페이지....

parse_url


parse_url    URL 을 파싱하여(해석) 구성요소를 리턴한다.

설명

mixed parse_url ( string $url [, int $component ] )


이 함수는 URL 의 여러 구성요소들을 연상배열로 리턴한다. 
지정 URL 이 유효한지를 체크하는 함수가 아니라 단순히  URL 을 요소별로 분해할뿐이다. 불완전한 URL 이더라도 값을 받아들이며 parse_url()  값을 해석할 수 있는 부분까지는 파싱한다.


파라미터
url
파싱할  URL

component
PHP_URL_SCHEME , PHP_URL_HOST ,PHP_URL_PORT , PHP_URL_USERPHP_URL_PASS , PHP_URL_PATH ,PHP_URL_QUERY 또는  PHP_URL_FRAGMENT 중 하나를 지정하여 특정 URL 컴포넌트만을 문자열로 구하도록한다.


리턴값
제대로된 형식이 아닌 URL 에 대해서는 parse_url()FALSE 를 리턴하고 E_WARNING 를 발생한다. 그 외에는 배열을 리턴하며 키값으로 다음 요소들이 담겨진다.

  • scheme - 예: http
  • host
  • port
  • user
  • pass
  • path
  • query - 물음표?  이후
  • fragment - 샾마크  # 이후

component 가 지정되어 있는 경우 문자열로 리턴.

5.1.2 파라미터 component 가 추가됨

<?php
$url
= 'http://username:password@hostname/path?arg=value#anchor'
;

print_r(parse_url($url
));
?> 

Array
(
    [scheme] => http
    [host] => hostname
    [user] => username
    [pass] => password
    [path] => /path
    [query] => arg=value
    [fragment] => anchor
)

주의 : 상대 URL 에서는 동작안함.
주의 : parse_url() 은  URL 을 파싱하기위한 함수지 URI 을 파싱하기위한 함수가 아니다. 그러나  PHP 의 상위버젼과의 호환성을 위해 예외적으로 file:// 스킴에 대해서 3 중 슬래쉬 (file:///...) 도 사용할 수 있다. 다른 스킴에서는 사용할 수 없는 형식이다.
 


참고 함수
pathinfo 함수
dirname()
basename()
parse_url 함수
realpath()

 



 

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : parse_url, php
Trackback 0 : Comment 0

PHP pathinfo 함수

PHP/매뉴얼 번역 2008/06/27 15:33
pathinfo

pathinfo  파일 패스에 관한 정보를 리턴.


설명
mixed pathinfo ( string $path [, int $options ] )

pathinfo()  는 path  에 관한 정보를 담고 있는 associative array (조합배열 , 연상배열 정도...? )을 리턴한다. 


 

파라미터

path
구하려는 패스
options
어떤 요소를 리턴할지를 옵션 파라미터  options 으로 지정. PATHINFO_DIRNAME ,  PATHINFO_BASENAME , PATHINFO_EXTENSION  및 PATHINFO_FILENAME 의 조합으로 이루어짐. 디폴트는 모든 요소를 리턴한다.  



리턴값
다음의 키를 가지고 있는 associative array  을 리턴한다.  dirname (디렉토리명 ) , basename (파일명 )  , 값이 존재할경우 extension (확장자).

options 을 사용하면 모든 요소를 선택하지 않는 한 리턴값은 문자열이 된다.


변경이력
5.2.0 상수 PATHINFO_FILENAME가 추가됨.


<?php
$path_parts
= pathinfo('/www/htdocs/index.html');

echo
$path_parts['dirname'], "\n";
echo
$path_parts['basename'], "\n";
echo
$path_parts['extension'], "\n";
echo
$path_parts['filename'], "\n"; // PHP 5.2.0 이후
?>

출력결과  

/www/htdocs
index.html
html
index


2008.06.27 현재 http://docs.php.net/manual/kr/function.pathinfo.php 의 매뉴얼번역이 안되어있음.

참고 함수
dirname()
basename()
parse_url 함수
realpath()

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : pathinfo, php
Trackback 0 : Comment 0

PHP header 함수

PHP/매뉴얼 번역 2008/06/27 00:47
이 함수도 아직 번역이 안되어 있어서...


header — 가공하지않은  HTTP 헤더를 송신한다.

설명 :
void header ( string $string [, bool $replace [, int $http_response_code ]] )

header() 는 아무런 처리를 하지 않은(raw) HTTP 헤더를 송신하기위해 사용한다. HTTP 헤더에 대해 자세한 정보는 » HTTP/1.1 사양 을 참조할것. 

header() 함수는 일반적인  HTML 태그 및 PHP 와는 상관없이 모든 실제 출력하기전에 콜되어야 한다. 자주 일어나는 에러로 include() 또는  require() 함수 다른 파일에 억세스하는 함수에 공백 , 빈줄이 들어가 header() 앞에서 출력이 발생하는 경우이다. 같은 에러로 단일 PHP/HTML 파일을 사용할때도 일어난다. 

<html>
<?php
/* header()  를 콜하기전에 출력이 있기에 에러가 발생함
 * */
header('Location: http://www.example.com/'
);
?>


파라미터 :

string

헤더 문자열
특수한 header 콜이 2종류있다. 먼저 문자열 "HTTP/" 로 시작하는 모든 헤더이다.(대문자. 소문자 구분없음) 이 헤더는 송신하는 HTTP 스테이터스코드를 표시하기 위해 사용된다. 예를 들어 존재하지 않는 파일에의 리퀘스트를 처리하기 위하여 PHP 스크립트를 사용하도록(ErrorDocument 디렉티브에 의해) Apache 를 설정할때 해당 스크립트가 알맞은 스테이터스 코드를 돌려주도록해야한다. 

<?php
header
("HTTP/1.0 404 Not Found");
?>

2번째 특별한 헤더는 "Location:" 헤더이다. 이 헤더는 브라우저를 리다이렉트하며 , 브라우저에게 REDIRECT (302) 스테이터스코드를 돌려준다. (3xx 스테이터스 코드가 이미 송신되어 있지않는 경우만)

<?php
header
("Location: http://www.example.com/"); /* 브라우저를 리다이렉트*/

/* 리다이렉트후 , 이 밑으로는 실행 안됨.*/
exit;
?>

replace

옵션의 파라미터 replace 는 헤더가 이전에 송신된 비슷한 헤더를 바꿀지 또는 같은 형식의 두번째 헤더를 추가할지를 지정한다. 디폴트로 변경하도록하지만 두번째 파라미터가 FALSE 인 경우 같은 타입의 복수 헤더를 강제적으로 생성한다. 

<?php
header
('WWW-Authenticate: Negotiate');
header('WWW-Authenticate: NTLM', false);
?>

http_response_code

HTTP 리스폰스코드를 강제적으로 지정한다. 

리턴 :
리턴하지 않음.

예 1 다운로드 다이얼로그PDF 파일을 생성한 경우 해당 파일을 다운로드할지를 확인하는 대화창을 표시하고 싶을것이다. 그런 경우 » Content-Disposition 헤더를 사용하여 파일명을 지정하면 브라우저에서 대화창을 표시할 수 있다. 

<?php
// PDF 출력
header('Content-type: application/pdf'
);

// downloaded.pdf 라는 이름으로 저장
header('Content-Disposition: attachment; filename="downloaded.pdf"'
);

// 원래 PDF 소스는 original.pdf
readfile('original.pdf'
);
?>

예2 캐쉬디렉티브

PHP 스크립트는 자주 동적 HTML 를 생성하기에 클라이언트 브라우저,  서버 및 클라이언트 브라우저 사이에서 프락시가 캐쉬를 행하거나 해서는 안된다. 많은 프락시와 클라이언트에서는 다음 코드에 의해 강제적으로 캐쉬를 무효화할 수 있다. 

<?php
header
("Cache-Control: no-cache, must-revalidate");
// HTTP/1.1
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
// 과거 날짜
?>

주의 : 위 헤더를 전부다 출력하지않더라도 페이지의 캐쉬가 일어나지 않는 경우가 있다. 디폴트 브라우저의 캐쉬동작을 사용자가 변경할 수 있는 방법은 몇가지가 있다.  위 헤더를 송신함으로 해서 스크립트의 출력이 캐쉬될 가능 성이 있는 설정을 덮어 쓰도록...
또한 session_cache_limiter() 및 설정  session.cache_limiter 를 이용하면 세션이 사용되었을때 캐쉬관계의 제대로된 헤더를 자동적으로 생성하도록 할 수 있다. 

주의 : PHP 4 에서는 출력버퍼링을 사용하여 이 문제를 해결할 수 있다. 이 경우 브라우저에의 출력이 송신되기까지 서버에 전부 버퍼링되는 오버헤드가 있다. 출력 버퍼링은 ob_start() 와  ob_end_flush() 를 스크립트에서 콜하거나  php.ini  , 서버 설정 파일의 설정 디렉티브 utput_buffering 을 설정하여 사용할 수 있다. 

주의 : 실제로  header() 가 맨 처음에 콜되었는지와 상관없이 HTTP 스테이터스 헤더행은 클라이언트에게 항상 맨처음에 송신된다. HTTP 헤더가 이미 송신되어 있지않는한  header() 를 콜하여 스테이터스는 항상 덮어쓰게된다.

주의 : Microsoft Internet Explorer 4.01 에 버그가 있어서 이방법은 동작하지 않음 . 해결방법은 없다. 마찬가지로   Microsoft Internet Explorer 5.5 에서도 버그가 존재한다. 서비스팩 2 이후부터는 버그가 해결됨.

주의 : 세이프 모드가 유효한 경우는 WWW-Authenticate 헤더 (HTTP 인증에 사용) 을 설정했을때 스크립트의  uid가 realm 에 추가된다. 

주의 : HTTP/1.1 에서는 스키마 , 호스트명 절대 패스를 포함한 절대 URI 가  » Location: 의 파라미터로서 필요하지만 상대 URI 를 받느 클라이언트도 있다. 일반적으로 상대 URI 로 절대 URI 를 생성하기위해서는 $_SERVER['HTTP_HOST'] , $_SERVER['PHP_SELF'] 및 dirname() 를 사용.

<?php
/* 현재 디렉토리의 다른 페이지로 리다이렉트 */
$host  = $_SERVER['HTTP_HOST'
];
$uri   = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'
);
$extra = 'mypage.php'
;
header("Location: http://$host$uri/$extra"
);
exit;
?>


주의 : session.use_trans_sid 가 유효라도 세션  ID 가  Location 헤더와 같이 넘겨지는 일은 없다. SID 정수를 사용하여 수동으로 넘겨줘야 한다. 



원문링크: http://docs.php.net/manual/en/function.header.php

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : header, php, 헤더
Trackback 0 : Comment 0

PHP 세션 - 세션 , 보안

PHP/매뉴얼 번역 2008/06/25 12:44
PHP 세션 - 세션 , 보안

세션 모듈은 세션에 저장한 정보를 볼 수 있는 것은 세션을 작성한 유저만 가능하도록 하는것은 불가능하다. 세션의 안전성을 적극적으로 지키기위해서는 세션과 연결된 값에 추가적을 작업을 하여야 한다.

세션에 넣을 데이터의 중요성을 평가하여  필요한 보호책을 생각하여야 한다.  이 대책은 보통 어떤 희생이 필요하기에 사용자의 편리성을 떨어트리기도 한다. 예를 들어 단순한 소셜엔지니어링으로부터 유저를 지키기 위해서는  session.use_only_cookies 을 유효화 해야 한다. 이 경우 유저측에서 쿠키가 항상 유효화되어 있어야하며 무효화되어 있는경우 세션을 사용할 수 없다. 

세션 ID 가 다른 사람에게 알려질 방법에는 몇가지가 있다.  다른 사람에게 넘겨진 세션 ID 로 제 3 자가 특정 ID 와 관련된 모든 리소스에 억세스할 수 있게 된다. 세션 ID 가 URL 로 전송되는 경우 외부사이트에 링크를 달고 있는 경우 외부 사이트의 referrer 로그에 세션 ID 를 담고 있는 URL 이 보존될 가능성이 있다. 두번째로 맘먹고 공격하려는 공격자가 네트워크의 트래픽을 모니터하고 있을 가능성이 있다. 세션 ID가 암호화되어 있지않는경우 세션 ID 는 네트워크상에서 일반 텍스트로 보내진다.  해결책은 서버상에 SSL 을 구축하여 유저에게 SSL 를 반드시 사용하도록한다. 


원문링크 : http://jp.php.net/manual/en/session.security.php

목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션 - 예

PHP/매뉴얼 번역 2008/06/25 12:44
PHP 세션 - 예

세션ID 전달

세션 ID 를 통지하기 위해서는 다음의 두가지 방법이 있다. 

  • Cookies
  • URL 파라미터

session 모듈은 위 두가지방법을 지원한다.  Cookie 가 최적이지만 (클라이언트가 쿠키를 사용할 수 없는 경우가 있기에 ) 신뢰성이 없어 쿠키에만 의존할 수 없다.  2번째의 방법은 세션ID 를 직접 URL 에 포함시키는것이다. 

PHP 에는 자동적으로 링크를 바꾸는 기능이 있다. PHP 4.2.0  이후를 사용하고 있지 않는 경우  PHP 구축시에 이 기능을 유효화 시켜야 한다.  UNIX 환경에서는  --enable-trans-sid를 configure 에 지정할것.
이 옵션과 실행시의 옵션 session.use_trans_sid 가 유효한 경우 상대 URI 은 자동적으로 세션 ID 를 포함하게 된다. 

주의 : arg_separator.output php.ini  디렉티브에 따라 파라미터 구분자 를 커스터마이즈 할 수 있다. XHTML을 제대로 따르기위해서는 여기에 &amp; 를 지정할 것

또는 세션이 시작된 경우 정의된 정수 SID 를 사용할 수도 있다.  클라이언트가 적당한 세션 쿠키를 송신하지 않은 경우 이 정수는 session_name=session_id 의 형식이 된다.  송신된 경우에는  빈 문자열이된다. 따라서 무조건적으로 URL 에 넣을 수 있다. 


다음 예는 변수의 등록방법 및 SID 를 이용하여 다른 페이지로의 링크를 하는 방법

<?php

session_start
();

if (empty(
$_SESSION['count'
])) {
 
$_SESSION['count'] = 1
;
} else {
 
$_SESSION['count'
]++;
}
?>

<p>
Hello visitor, you have seen this page <?php echo $_SESSION['count']; ?> times.
</p>

<p>
To continue, <a href="nextpage.php?<?php echo htmlspecialchars(SID); ?>">click
here</a>.
</p>


XSS 와 관련된 공격을 막기위해 SID 를 출력할때  htmlspecialchars()를 사용한다.

PHP를 컴파일할때  --enable-trans-sid 를 사용한 경우 위 예처럼 SID 를 출력할 필요가 없다. 

주의 : 상대URL 이 아닌 URL 은 외부사이트를 가리킨다고 가정하여 SID 가 추가되지 않는다.  SID 를 외부 서버로 넘겨주는것이 보안상 리스크가 생기기 때문이다. 


커스텀 세션 핸들러

세션 정보를 데이터베이스에 보존하거나 다른 보존방법을 구현하기위해서는 커스터마이즈된 보존 함수를 작성하여  session_set_save_handler() 를 사용해야 한다.


주의 : PHP 4.1.0 이후 $_SESSION $_POST , $_GET , $_REQUEST   처럼 글로벌 변수로 사용가능해졌다. $HTTP_SESSION_VARS 와 달리  $_SESSION 은 항상 글로벌이다.  global$_SESSION 에게는 필요 없음.  $_SESSION 을 사용하기 전에  session_start() 를 사용하여 세션을 개시하여야 한다는 사실에 주의할 것.
 
$_SESSION 의 키는 PHP 의 통상 변수명과 마찬가지로 제한이 있다. 즉 숫자로 시작할 수 없으며 문자 또는 언더스코어로 시작해야한다. 

register_globals 가 무효인 경우 글로벌 배열 $_SESSION  의 멤버만 세션 변수로서 등록된다. 리스토어된 세션 변수는 배열 $_SESSION 에서만 사용할 수 있다. 

보안과 코드의 가독성을 위하여  $_SESSION (또는  PHP 4.0.6 이전에서는 $HTTP_SESSION_VARS) 을 사용할 것을 권장하고있다. $_SESSION  의 경우 session_register(), session_unregister(), session_is_registered() 는 불필요. 사용자는 통상의 변수와 같이 세션 변수에 억세스 할 수 있다. 

세션에서 변수 등록
<?php
session_start
();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
if (!isset($_SESSION['count'
])) {
 
$_SESSION['count'] = 0
;
} else {
 
$_SESSION['count'
]++;
}
?>


register_globals 가 무효한 경우 $_SESSION 에 등록된 변수의 등록이 해제됨

<?php
session_start
();
// Use $HTTP_SESSION_VARS with PHP 4.0.6 or less
unset($_SESSION['count'
]);
?>


경고 

unset($_SESSION) 로  모든 $_SESSION 을 초기화해서는 안됨. $_SESSION 수퍼글로벌 변수를 이용한 세션 변수의 등록이 불가능해지기 때문이다. 


경고

세션 변수에서는 참조를 사용할 수 없다. 다른 변수에의 참조를 리스토어 할 방법이 없기때문이다.


register_globals 가 유효한 경우 모든 글로벌 변수는 세션 변수로서 등록할 수 있고 세션 변수는 대응하는 글로벌 변수로서 리스토어 할 수 있다. PHP 는 어떤 글로벌 변수가 세션 변수로서 등록되는지를 알아야 하기에 사용자는 변수를 session_register() 함수로 등록해야 한다.  그러나 $_SESSION 의 경우 엔트리를 설정하여 함수등록과 같은 기능을 한다.

경고

PHP 4.3.0 이전 버젼에서는 $_SESSION 을  사용하여 register_globals 을 무효화하는 경우  session_register() ,  session_is_registered() , session_unregister() 을 사용하지않도록... 보안상 , 그리고 성능면에서 register_globals 을 무효화 하는 쪽을 권장함.


register_globals 가 유효한 경우 글로벌 변수와 $_SESSION 의 엔트리는 이전의 세션 인스턴스에서 등록된 세션 변수의 같은 값을 참조하게 된다.  그러나 변수가  $_SESSION 에서 등록된 경우  글로벌 변수가 사용가능하도록 되는것은 다음 리퀘스트 이후가 된다.

PHP 4.2.3 와 그 이전버젼에서만 일어나는 트러블중에  session_register() 로  새 세션 변수를 등록할 경우 글로벌 스코프의 엔트리와 $_SESSION 의 엔트리는 다음 session_start() 까지 같은 값에의 참조는 되지 않는다.  즉 , 글로벌 변수의 수정은 $_SESSION 의 엔트리에는 반영되지 않는다. PHP 4.3.0 에서는 수정되었음.


원문링크 : http://www.php.net/manual/en/session.examples.php


목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP 매뉴얼 번역 작업  (2) 2009/06/21
PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션 - 기정의 정수

PHP/매뉴얼 번역 2008/06/25 12:43
PHP 세션 - 기정의 정수

다음의 정수가 정의 되어 있으며  이확장 모듈이 PHP 내장으로 컴파이되어 있거나 , 런타임시(실행시)에 동적으로 로드되어 있는 경우 사용가능하다.
SID (string)
"name=ID" 형식으로 세션명과 세션ID를 담고 있는 정수. 세션 ID 가 세션쿠키에 적절하게 세트되어 있는 경우에는 빈문자가 들어간다. 


원문링크 : http://www.php.net/manual/en/session.constants.php


목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP parse_url 함수  (0) 2008/06/27
PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0

PHP 세션 - 인스톨 / 설정

PHP/매뉴얼 번역 2008/06/25 12:28
PHP 세션 - 인스톨 / 설정

외부라이브러리 필요없음.

PHP의 세션기능은 디폴트로 유효화 되어있다.  세션 기능을 무효화해서 PHP 를 구축하고 싶으면 configure 에 옵션 --disable-session 를 지정해야한다.  세션 기억영역으로 공유메모리(mm) 를 사용하려면 PHP 의 configure 에 --with-mm[=DIR] 를 지정한다.

Windows 버젼의 PHP 에는 이 확장모듈이 내장되어있다.  함수를 사용하기위해서는 확장모듈을 추가 로드할 필요는 없다.


PHP 세션 - 실행시 설정 (런타임 설정)
php.ini 의 설정에 따라 동작이 바뀐다.

세션 설정 옵션
이름 디폴트 변경가능여부 변경이력
session.save_path "" PHP_INI_ALL  
session.name "PHPSESSID" PHP_INI_ALL  
session.save_handler "files" PHP_INI_ALL  
session.auto_start "0" PHP_INI_ALL  
session.gc_probability "1" PHP_INI_ALL  
session.gc_divisor "100" PHP_INI_ALL PHP 4.3.2 부터
session.gc_maxlifetime "1440" PHP_INI_ALL  
session.serialize_handler "php" PHP_INI_ALL  
session.cookie_lifetime "0" PHP_INI_ALL  
session.cookie_path "/" PHP_INI_ALL  
session.cookie_domain "" PHP_INI_ALL  
session.cookie_secure "" PHP_INI_ALL PHP 4.0.4 부터
session.cookie_httponly "" PHP_INI_ALL PHP 5.2.0 부터
session.use_cookies "1" PHP_INI_ALL  
session.use_only_cookies "1" PHP_INI_ALL PHP 4.3.0 부터
session.referer_check "" PHP_INI_ALL  
session.entropy_file "" PHP_INI_ALL  
session.entropy_length "0" PHP_INI_ALL  
session.cache_limiter "nocache" PHP_INI_ALL  
session.cache_expire "180" PHP_INI_ALL  
session.use_trans_sid "0" PHP_INI_ALL PHP_INI_ALL 은  PHP <= 4.2.3 , PHP_INI_PERDIR 은 PHP < 5 부터.
PHP 4.0.3 부터
session.bug_compat_42 "1" PHP_INI_ALL PHP 4.3.0 부터. PHP 6.0.0 에서 삭제
session.bug_compat_warn "1" PHP_INI_ALL PHP 4.3.0 부터.
PHP 6.0.0 에서 삭제
session.hash_function "0" PHP_INI_ALL PHP 5.0.0 부터
session.hash_bits_per_character "4" PHP_INI_ALL PHP 5.0.0 부터
url_rewriter.tags "a=href,area=href,
frame=src,form=,fieldset="
PHP_INI_ALL PHP 4.0.4 부터

PHP_INI_*  정수의 설명 및 정의에 대해서는 php.ini 디렉티브 를 참조.

세션 관리 시스템은 php.ini파일에 기술 가능한 많은 설정옵션을 지원한다.

session.save_handler string

session.save_handler  는  세션에 관련되는 데이터의 보존 및 값을 구할때 사용하는 핸들러를 정의한다.  디폴트는 files  . 각 확장모듈에서 독자 save_handler 를 사용할 수 있다.  인스톨 환경단위에서 등록되어 있는 핸들러를 구하려면 phpinfo() 를 사용. session_set_save_handler() 참조


session.save_path string

session.save_path 는 보존 핸들러에 넘겨주는 파라미터를 정의. 디폴트의 파일 핸들러를 선택한 경우 파일이 작성되는 곳의 패스가 넘겨진다.  session_save_path() 참조

옵션의 파라미터로서 N(수치)를 지정할 수 있다. 세션파일을 분산해서 보존할때 디렉토리 계층레벨을 결정한다. 예를들어  '5;/tmp' /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If  라는 위치에 세션파일을 생성한다.  N 을 사용하려면 관련 디렉토리가 사전에 작성되어 있어야 한다.
이를 위해 ext/session 에  mod_files.sh 라는 스크립트 파일이 존재한다.  또한 0 이상의 N 이 지정되어 있는 경우에는 자동 가비지콜렉션이 작동하지않는 사실에 주의할것. 자세한 내용은 php.ini 을 볼것.
또한 N 을 지정하는 경우 session.save_path 를  "quotes" 로 둘러싸야한다.  왜냐하면 구분자(;) 는  php.ini  에서는 코멘트로 이용되고 있기때문이다. 

경고

이 설정을 /tmp (디폴트) 처럼 어디에서도 읽어들일수 있는 디렉토리하고 있는 경우 , 서버상의 다른 유저가 이 디렉토리의 파일파일 리스트를 읽어들일 수 있기에 세션을 하이잭할 수 있다. 

주의: PHP 4.3.6 이전에서는 Windows 유저가 PHP 의 session 함수를 사용하기위해서는 이 변수를 변경해야한다. c:/temp 같이 유효한 패스를 지정할 것.

session.name string

session.name 은 세션명을 지정하여 쿠키명으로서 사용된다. 알파벳 문자만 지정해야한다. 디폴트는 PHPSESSID  이다.  session_name() 참조 


session.auto_start
boolean

session.auto_start
는 리퀘스트를 개시할때 세션모듈이 세션을 자동적으로 개시할지 여부를 지정한다.  디폴트는 0 (무효).


session.serialize_handler
string

session.serialize_handler
는  시리얼라이즈 또는 시리얼라이즈된 데이터를 복원하기위해 사용되는 핸들러의 이름을 지정한다.  현재 ( php 또는 php_binary 라는 이름의 ) PHP 내부 포맷 및 (wddx 라는 이름의 ) WDDX 가 서포트되고 있다. WDDX 는 PHP 가 WDDX 서포트 를 유효화 하여 컴파일 되어 있는 경우에만 사용가능하다.  디폴트는 php 


session.gc_probability
integer

session.gc_probability
session.gc_divisor 의 조합으로  gc (가비지콜렉션)루틴의 기동을 제어한다.  디폴트는 1 .   session.gc_divisor 참조



session.gc_divisor
integer

session.gc_divisor
session.gc_probability 의 조합으로 모든 세션의 초기화과정에서 gc(가비지콜렉션 )프로세스도 기동할 확률을 제어한다. 확률은 gc_probability/gc_divisor 으로 계산된다.  예를 들어 1/100 은 각 리퀘스트마다 1% 의 확률로 GC 프로세스가 기동한다. session.gc_divisor 의 디폴트 값은 100 이다. 


session.gc_maxlifetime
integer

session.gc_maxlifetime
은  데이터가 '쓰레기' 로 여겨져 소거될때까지의 초수를 지정한다.  가비지 콜렉션 (쓰레기의 수집) 은 세션개시할때 일어남.

주의 : 다른 값을 session.gc_maxlifetime 에 지정하고 있는 또 다른 스크립트가 세션데이터의 보존장소를 공유하고 있는 경우 , 가장 작은 설정치에 도달한 시점에서 데이터가 소거된다.  이런 경우에는 서로 session.save_path 를 사용한다.

주의 :  디폴트의 파일을 베이스로 세션핸들러를 사용하고 있는 경우 사용하는 파일시스템은 억세스 시간(atime) 을 기록할 수 있어야한다. Windows FAT 는 이게 불가능하기에  FAT 파일 시스템 또는 atime 의 기록이 불가능한 다른 파일 시스템에서 문제가 발생한경우 세션의 가비지콜렉션처리를 위해 다른 방법을 준비해야한다.
PHP4.2.3 이후 atime 대신에 mtime(갱신시간)이 사용된다. atime 를 사용할 수 없는 파일시스템의 문제가 사라짐.

session.referer_check string

session.referer_check
  에는 HTTP Referer 체크를 위한 문자열을 지정한다. Referer 가 클라이언트에 의해 송신되고 지정한 문자열이 없는 경우 세션 ID 는 무효화됨. 디폴트는 빈 문자열.


session.entropy_file
string

session.entropy_file
는 세션ID를 작성할때의 추가 엔트로피 소스 로 사용되는 외부 리소스에의 패스를 지정한다.  예를 들어 많은 UNIX 에서 이용가능한 /dev/random 또는 /dev/urandom 가 있다. 


session.entropy_length
integer

session.entropy_length
는 바로 위에서 지정한 파일로부터 읽어들이는 바이트 수를 지정한다.  디폴트는 0 (무효)


session.use_cookies
boolean

session.use_cookies
에 의해 클라이언트축에 세션ID 를 보존 할때 쿠키를 사용할지 여부를 지정한다.  디폴트는 1 (유효)


session.use_only_cookies
boolean

session.use_only_cookies
는 이 모듈이 클라이언트 쪽에 세션ID 를 보존할때 Cookie 을 사용하도록 지정한다. 이 설정을 유효화 하여 세션 ID 를 URL 에 붙여서 하는 공격을 막을 수 있다. 이 설정은 PHP 4.3.0 에서 추가되었다. PHP 6.0 이후부터 디폴트가 1 (유효) 이 됨.


session.cookie_lifetime
integer

session.cookie_lifetime
은  브라우저에게 송신하는 쿠키의 유효기간을 초단위로 지정한다. 0을 지정하면  브라우저를 닫을때까지라는 의미.  디폴트는 0 .  session_get_cookie_params()session_set_cookie_params() 참조 

주의 : 유효기간의 타임스탬프는 서버의 시각을 기본으로 해서 정해진다.


session.cookie_path
string

session.cookie_path
에 의해 session_cookie 로 설정되는 패스를 지정한다.  디폴트는 / session_get_cookie_params() 및 session_set_cookie_params() 도 참조.


session.cookie_domain
string

session.cookie_domain
에 의해  session_cookie 에서 지정하는 도메인을 지정한다. 디폴트는 지정되지않음. 이 경우는 쿠키의 사양에 따라 쿠키를 작성한 서버의 호스트명이 지정된다.  session_get_cookie_params()session_set_cookie_params() 도 참조 


session.cookie_secure
boolean

session.cookie_secure
는 시큐어한 접속을 통해서만 쿠키를 송신할지여부를 지정. 디폴트는 off
이 설정은 PHP 4.0.4 에서 추가됨.
 session_get_cookie_params()및 session_set_cookie_params() 참조


session.cookie_httponly
boolean

쿠키를 HTTP 로만 억세스가능하도록 설정. 즉 JavaScript 같은 스크립트 언어에서는 억세스가 불가능해짐 . 이 설정을 사용하면 XSS 공격에 의한 ID 도난의 위험성이 줄어든다.  ( 하지만 모든 브라우저가 이 설정을 지원하고 있지는 않다. )


session.cache_limiter
string

session.cache_limiter
에 의한  세션 페이지의 캐쉬제어 방법(none / nocache / private / private_no_expire / public) 을 지정. 디폴트는 nocache
session_cache_limiter() 참조


session.cache_expire
integer

session.cache_expire
에 의해 캐쉬된 세션페이지의 유효기간을 분단위로 지정 이 옵션은  nocache 리미터에 에서는 영향을 받지 않는다 . 디폴트는 180
session_cache_expire()도 참조


session.use_trans_sid
boolean

session.use_trans_sid
는 투과적 세션 ID 를 부가할지 여부를 지정. 디폴트는 0(무효)

주의 : PHP 4.1.2 이전 버젼에서 이 옵션은  --enable-trans-sid  로 컴파일하여 유효화하였다.  PHP 4.2.0 이후부터 trans-sid 기능은 항상 컴파일 된다. URL를 기본으로 한 세션 관리는 쿠키를 기본으로한 세션관리보다 세큐리터 리스크가 커진다.  예를 들어 유저가 email 로 친구에게 액티브한 세션ID 를 포함한 URL 를 보낼 수도 있고, 유저는 자신의 북마크에 세션 ID 를 포함한 URL를 보존하여 항상 같은 ID 로 사용하여 사이트에 억세스할 수도 있다. 

session.bug_compat_42 boolean

PHP 버젼이 4.2.3 및 그 이전에는 예를들어 register_globals 가 무효한 경우에도 글로벌스코프에서 세션변수의 초기화를 허용하는 문서화되어 있지 않은 특징/버그가 있다.  이 기능을 사용하고 있는 경우 session.bug_compat_warn 도 유효로 하고있는 경우 PHP 4.3.0 및 그 이후버젼에서는 경고가 생긴다.  이 특징/ 버그는 이 디렉티브를 무효로 하여 막을 수 있다. 


session.bug_compat_warn
boolean

PHP 버젼이 4.2.3 및 그 이전에는 예를들어 register_globals 가 무효한 경우에도 글로벌스코프에서 세션변수의 초기화를 허용하는 문서화되어 있지 않은 특징/버그가 있다.   이 기능을  session.bug_compat_42  와  session.bug_compat_warn  를 유효화하여 사용하고 있는 경우  PHP 4.3.0  및 그 이후버젼에서 경고가 발생한다. 


session.hash_function
mixed

session.hash_function
에 의해 세션 ID 를 생성하기위해 사용되는 해쉬 알고리즘을 지정할 수 있다. '0' 은 MD5 (128 비트) 로 , '1' 은 SHA-1 (160 비트) 를 의미.

PHP 6.0.0 이후부터는 hash 확장모듈 의 임의의 알고리즘이  (이 확장모듈이 사용가능한 경우) 지정할 수 있도록됨. 예를 들어 sha512  나  whirlpool 등등... 지원되는 알고리즘들은 hash_algos() 함수로 구할 수 있다. 

주의 : 이 디렉티브는 PHP 5  에서 도입됨



session.hash_bits_per_character
integer

session.hash_bits_per_character
로 바이너리 해쉬데이터를 가독 데이터로 변환할 때 각각의 문자에 몇비트를 스토어 할지를 정의할 수 있다.  지정가능한 값은 '4' (0-9, a-f) ,'5' (0-9, a-v) 그리고 '6' (0-9, a-z, A-Z, "-", ",") 이다.

주의 : 이 디렉티브는  PHP 5 에서 도입됨.



url_rewriter.tags
string

url_rewriter.tags
는 투과적 세션 ID 의 부가기능이 유효화 되어있을 경우 세션 ID를 포함하기 위해 바뀌게 되는 HTML 태그를 지정할 수 있다.  디폴트는  a=href , area=href , frame=src , input=src , form=fakeentry , fieldset=  이다. 

주의 : HTML/XHTML strict 에 맞추고 싶은 경우에는 form 엔트리를 삭제하고 form 필드의 전후에 <fieldset> 태그를 사용할 것.

track_vars register_globals 설정은 세션변수의 보존및 회복 방법에 영향을 준다. 

주의 : PHP 4.0.3 이후 track_vars 는 항상 on 


원문링크 :
http://www.php.net/manual/en/session.setup.php
http://www.php.net/manual/en/session.installation.php
http://www.php.net/manual/en/session.configuration.php


목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP pathinfo 함수  (0) 2008/06/27
PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
PHP 타이프 힌팅  (0) 2008/06/20
Trackback 0 : Comment 0

PHP 세션 - 소개

PHP/매뉴얼 번역 2008/06/25 12:25
PHP 세션 - 소개

PHP의 세션기능은 여러번에 걸친 억세스를 통해서 특정 데이터를 유지하기위한 방법을 구현하고 있다. 보다 커스터마이즈된 어플리케이션을 구축할 수가 있다. 

Web 사이트 방문자에게 세션ID 라는 유니크ID 를 할당하며 이 ID는 유저(클라이언트)쪽에 쿠키로 저장하거나 URL 에 추가한다. 

세션 기능을 사용하여 임의의 갯수의 변수를 리퀘스트와 리퀘스트사이에 넘겨주고 받을 수 있게되었다.  방문자가 사이트에 억세스할때 PHP 는 특정 세션 ID 가 리퀘스트와 함께 송신되고 있는지를 (session.auto_start 가 1일 경우) 자동적으로 , 또는 (session_start() 에 의해 명시적으로 또는 session_register() 에 의한 암묵적으로)  확인한다.  이 ID 가 송신되고 있는 경우에는 이전에 보존된 환경이 재생성된다.

경고 : session.auto_start 를 on 한 경우 오브젝트를 세션변수에 대입할 수 없게 된다. 세션이 오브젝트를 재생성하기 위해서는 세션 개시전에 클래스정의가 로드되어야하기 때문이다.

모든 등록된 변수는 리퀘스트가 종료된후 시리얼라이즈된다.  미정의 등록변수는 미정의 되었다고 마크가 붙는다.  이러한 변수는 나중에 유저가 정의하지않는 한 이후의 억세스에서 세션모듈에 의해 정의되지 않는다.


경고 : 일부데이터 타입은 시리얼라이즈가 불가능하기에 세션에 저장할 수 없다. 리소스 타입의 변수 또는 순환 참조(circular references)를 하고 있는 오브젝트  (예를 들어 자기자신에의 참조를 다른 오브젝트에게 넘겨주고 있는 오브젝트 )  들이 여기에 속한다.


주의 : 세션기능은 PHP 4.0.0 에서 지원됨.

주의 : 세션을 처리할때 session_register() 함수를 사용하거나  수퍼글로벌 배열 $_SESSION 에 새로운 키를 추가하여 변수가 등록될때까지 세션의 레코드는 생성되지 않는다.  세션이 session_start() 함수에 의해 개시될때에도 마찬가지이다.


원문링크 :
http://www.php.net/manual/en/intro.session.php
목차로
[PHP/매뉴얼 번역] - PHP 세션

'PHP > 매뉴얼 번역' 카테고리의 다른 글

PHP header 함수  (0) 2008/06/27
PHP 세션 - 세션 , 보안  (0) 2008/06/25
PHP 세션 - 예  (0) 2008/06/25
PHP 세션 - 기정의 정수  (0) 2008/06/25
PHP 세션 - 인스톨 / 설정  (0) 2008/06/25
PHP 세션 - 소개  (0) 2008/06/25
PHP 세션  (0) 2008/06/25
PHP 문자열 지정방법 ( Heredoc )  (0) 2008/06/20
PHP Late Static Bindings  (0) 2008/06/20
PHP 타이프 힌팅  (0) 2008/06/20
PHP 오브젝트의 비교  (0) 2008/06/20
tags : php, Session, 세션
Trackback 0 : Comment 0