1로 넘어오는 변수를 "001"로 세자리수 맞춤.

$sj_src=sprintf("%03d", $vl_no);


######


To have a string with leading zeros use this:
$string_i = sprintf("%04s",$value)

Gives you an output with leading zeros and 4 digits.
i.e.
0001
0002
...
0010
an so on

블로그 이미지

세이박스

세이박스는 세상의 모든 이야기를 담는 소통박스 입니다.

댓글을 달아 주세요

기선언 변수
PHP 4.1.0이후부터 외부 변수를 가져오는 가장 선호되는 방법은 아래에서 설명하는 슈퍼전역을 사용하는것이다. 그 이전버전에서는 register_globals이나 긴형태의 기선언 PHP 배열($HTTP_*_VARS)을 사용한다. PHP 5.0.0부터, 긴 형태의 PHP 예약 변수 배열을 register_long_arrays 지시어로 비활성화할 수 있습니다.

서버 변수: $_SERVER
참고: 4.1.0부터 지원됨. 이전 버전은 $HTTP_SERVER_VARS을 사용함

$_SERVER는 헤더, 경로, 스크립트 위치와 같은 정보를 포함하는 배열이다. 이 배열 안의 엔트리는 웹서버에 의해 생성된다. 모든 웹서버가 이런 것들을 제공한다는 보장은 없다. 서버는 어떤것은 빠뜨리거나 여기에서 목록화된 것 외의 것을 제공할수 도 있다. 이런 많은 수의 변수들은 CGI 1.1 specification에 기반하므로, 그런 변수들은 기대할수 있을것이다.

이 변수는 '슈퍼전역', 또는 자동 전역, 변수이다. 즉 스크립트내의 모든 유효영역안에서 사용가능하다는 의미를 갖는다. $HTTP_SERVER_VARS를 사용할때와 같이 함수나 메소드 안에서 사용하기 위해 global $_SERVER;를 할 필요는 없다.

$HTTP_SERVER_VARS는 동일한 초기 정보를 포함하지만, 자동전역은 아니다. ($HTTP_SERVER_VARS 와 $_SERVER는 다른 변수이고 PHP는 그변수들을 따로 다루게 된다는 것에 주의한다)

register_globals 디렉티브가 설정되어있으면, 이 변수들은 스크립트의 전역 유효영역에서 사용이 가능해 진다. 즉 $_SERVER 와 $HTTP_SERVER_VARS 배열과 분리된다. 관련정보는 전역 등록 사용하기라는 이름의 보안 챕터를 참고한다. 이들 각각의 전역은 자동전역이 아니다.

$_SERVER에서는 다음 구성요소를 확인할수도 있고 그렇지 않은수있다. 이 변수중 일부(심지어 모두)는 PHP가 커맨드 라인에서 수행되고 있을때에는 보여지지 않을것이다.



'PHP_SELF'
현재 실행중인 스크립트의 파일명이고, 도규먼트 루트에 상대적인 경로를 갖는다. 예를 들면, 주소 http://example.com/test.php/foo.bar의 스크립트에서 $_SERVER['PHP_SELF']은 /test.php/foo.bar이 될것이다.

PHP가 커맨드 라인 프로세서로 실행중이면, 이 변수는 나타나지 않는다.

'argv'
스크립트로 전달되는 인자의 배열. 스크립트가 커맨드 라인에서 실행중이면, 이 변수는 C-스타일의 커맨드 라인 인자로 제공된다. GET 메소드에 의해 호출될때에는 이 변수는 질의 문자열(query string)을 포함할것이다.

'argc'
스크립트로 전달되는 커맨드 라인 인자의 갯수 (커맨드 라인에서 실행중일때)

'GATEWAY_INTERFACE'
서버가 사용하는 CGI 사양(specification)의 버전: 예를 들면, 'CGI/1.1'.

'SERVER_NAME'
현재 스크립트가 수행되고 있는 서버 호스트의 이름. 스크립트가 가상 호스트에서 수행중이면, 이 변수는 그 가상 호스트를 위해 정의된 값이 될것이다.

'SERVER_SOFTWARE'
서버 식별 문자열. 요구(ruquest)에 응답할때 헤더안에서 보여준다.

'SERVER_PROTOCOL'
페이지가 요청되어진 정보 프로토콜의 이름과 버전: 예를 들면, 'HTTP/1.0';

'REQUEST_METHOD'
페이지에 접근할때 사용된 요청 메소드 종류. 예를 들면,'GET', 'HEAD', 'POST', 'PUT'.

'QUERY_STRING'
페이지가 접근될때의 질의 문자열

'DOCUMENT_ROOT'
현재 스크립트가 수행중인 다큐먼트 루트 디렉토리. 서버 설정 파일에서 정의된다.

'HTTP_ACCEPT'
현재 요청에 대한 Accept: 헤더의 내용.

'HTTP_ACCEPT_CHARSET'
현재 요청에 대한 Accept-Charset: 헤더의 내용. 예를 들면'iso-8859-1,*,utf-8'.

'HTTP_ACCEPT_ENCODING'
현재 요청에 대한 Accept-Encoding: 헤더의 내용. 예를 들면: 'gzip'.

'HTTP_ACCEPT_LANGUAGE'
현재 요청에 대한 Accept-Language: 헤더의 내용. 예를 들면: 'en'.

'HTTP_CONNECTION'
현재 요청에 대한 Connection: 헤더의 내용. 예를 들면: 'Keep-Alive'.

'HTTP_HOST'
현재 요청에 대한 Host: 헤더의 내용.

'HTTP_REFERER'
현재 페이지에 대한 유저 에이전트를 참조하는 페이지의 주소. 모든 에이전트가 이 값을 갖지 않는다. 일부 에이전트는 HTTP_REFERER를 각 특성에 맞게 변경하는 기능을 제공한다. 간단히 말해서, 이 값은 신뢰할수 없다.

'HTTP_USER_AGENT'
현재 요청에 대한 User-Agent: 헤더 내용. 이 값은 페이지에 접근 중인 유저 에이전트를 표시하는 문자열이다. 표준적인 예로는: Mozilla/4.5 [en] (X11; U; Linux 2.2.9 i586). get_browser()로 이 값을 사용하여 유저 에이전트의 능력에 맞게 페이지의 출력을 조절할수 있다.

'REMOTE_ADDR'
현재 페이지를 보고있는 유저의 IP 주소.

'REMOTE_HOST'
현재 페이지를 보고있는 유저의 호스트명. 역방향 dns 검색이 유저의 REMOTE_ADDR를 위해 사용된다.

참고: 웹서버는 이 변수를 생성할수 있도록 설정되어야 한다. 예를 들면 아파치에서는 httpd.conf안에서 HostnameLookups On 이 필요할것이다. gethostbyaddr()도 참고.

'REMOTE_PORT'
웹서버와 통신중인 유저 머신이 사용중인 포트.

'SCRIPT-x_FILENAME'
현재 수행되는 스크립트의 절대 경로명.

참고: file.php, ../file.php처럼 스크립트를 상대 경로로 지정하여 CLI로 실행할 경우, $_SERVER['SCRIPT-x_FILENAME']은 사용자가 지정한 상대 경로를 포함합니다.


'SERVER_ADMIN'
웹서버 설정 파일안의 SERVER_ADMIN (아파치용) 디렉티브에 주어지는 값. 스크립트가 가상 호스트에서 수행중이면, 이 값은 그 가상호스트를 위해 정의되는 값이 될것이다.

'SERVER_PORT'
웹서버가 통신을 위해 사용중인 서버 머신의 포트. 초기 설정값으로 '80';이 될것이다. 예를 들어, SSL을 사용중이면, 안전한 HTTP 포트로 정의된 어떤 값으로도 변경할수 있다.

'SERVER_SIGNATURE'
활설화되어있다면, 서버가 생성하는 페이지에 추가되는 서버 버전과 가상 호스트명을 갖는 문자열.

'PATH_TRANSLATED'
현재 스크립트에 대한 파일시스템(다큐먼트 루트가 아님) 기반의 경로 서버가 virtual-to-real 매핑으로 설정되면 보인다.

'SCRIPT-x_NAME'
현재 스크립트의 경로를 갖는다. 이 값은 가리킬 필요가 있는 페이지에 유용하다.

'REQUEST_URI'
이 페이지에 접근하기 위해 주어지는 URI; 예를 들면,'/index.html'.

'PHP_AUTH_USER'
HTTP 인증을 사용하는 모듈로서 아파치에서 수행될때, 이 변수는 유저에 의해 제공되는 username으로 설정된다.

'PHP_AUTH_PW'
HTTP 인증을 사용하는 모듈로서 아파치에서 수행될때, 이 변수는 유저가 제공하는 password로 설정된다.

'AUTH_TYPE'
HTTP 인증을 사용하는 모듈로서 아파치에서 수행될때, 이 변수는 인증 타입으로 설정된다

'웹프로그램' 카테고리의 다른 글

PHP Maximum execution time of 30 seconds exceeded  (0) 2008.10.19
PHP 문자수 자리 고정  (0) 2008.10.19
PHP 즐겨찾기등 바로 접속한 경우 구분하기  (0) 2008.10.19
PHP 소켓 통신  (0) 2008.10.19
PHP 기선언 변수  (0) 2008.10.19
PHP 접속자 IP 및 URL 확인하기  (0) 2008.10.18
PHP 글자 수 자르기  (0) 2008.10.18
PHP 자리수 맞추기  (0) 2008.10.18
PHP 트리거  (0) 2008.10.18
블로그 이미지

세이박스

세이박스는 세상의 모든 이야기를 담는 소통박스 입니다.

댓글을 달아 주세요

제목: register_globals=Off 상태에서의 POST,GET 변수제어
분류: php
글쓴이: 김정균 <admin@oops.org>

호스팅 서버 같은 곳에서 보안상의 이유로 register_globals
를 OFF 로 변경 하거나 또는 보안상 register_globals 를 OFF
로 변경하고 싶은데 기존의 소스들 때문에 망설이시는 분들께
유용한 함수가 될것 같네요.

JSBoard 를 개발하다가 보안때문에 register_globals 를 OFF
로 두었을때 작동을 하지 않는다는 문의가 많이 들어와 만든
함수입니다..

* PHP 4.1 이상 버젼용

function parse_query_str() {
foreach($_GET as $key => $value) {
global ${$key};
${$key} = $value;
}

foreach($_POST as $key => $value) {
global ${$key};
${$key} = $value;
}
}

* PHP 4.0 이하 버젼용

function parse_query_str() {
foreach($HTTP_GET_VARS as $key => $value) {
global ${$key};
${$key} = $value;
}

foreach($HTTP_POST_VARS as $key => $value) {
global ${$key};
${$key} = $value;
}
}

테스트 환경은 다음과 같이 하시면 이해가 쉬울 것 같습니다.
일단 php.ini 에서 register_globals = Off 로 설정을 한뒤에
아파치를 재시작 합니다. 다음 간단하게 웹루트에 test_query.php
라는 스크립트를 하나 만듭니다.

--------- cut here test_query.php -----------
<?
function parse_query_str() {
foreach($_POST as $key => $value) {
global ${$key};
${$key} = $value;
}

foreach($_GET as $key => $value) {
global ${$key};
${$key} = $value;
}
}
parse_query_str();
echo "$a<br>\n$b<br>\n$c<br>\n";
?>
--------- cut here test_query.php -----------

다음 http://domain.com/test_query.php 를 웹브라우져로 호 출을 합니다. 결과는 소스의 arse_query_str() 함수를 호출 을 할 때와 안할 때의 차이를 보시면 알겁니다.

위와 같이 이용을 하면 register_globals 의 값을 On 으로 두던 Off 로 두던 보안을 강화하면서 register_globals 의 값에 상관없이 register_globals 의 값이 On 일때 처럼 코 딩을 할 수 있게 됩니다.

이 함수가 보안을 위하여 register_globals 의 값을 Off 로 두는것에 어떠한 작용을 하게 될지에 대해서는 검증이 되지 는 않았습니다만 일단 넘어오는 값을 GET 이면 GET 으로 넘 어온 값을 조절하고 POST 이면 POST 의 값을 조절하기 때문 에 크게 위배되지는 않을것 같습니다.

원래는 GET 과 POST 로 넘어오는 값을 하나의 배열로 return 하는 방법이 더 낳을것 같지만 그렇게 되면 기존의 소스를 너무 수정을 해야 하기 때문에 위와 같은 식으로 전역 변수화 처리를 한 것입니다. ^^;
---------------------------------------------------------------------------
http://kltp.kldp.org/
블로그 이미지

세이박스

세이박스는 세상의 모든 이야기를 담는 소통박스 입니다.

댓글을 달아 주세요

PHP 소스 상단에 다음과 같이 선언해주면 php.ini에 register_global = OFF 상태여도 POST전송시 변수값이 전송 됩니다.
웹소스를 코딩시 서버 설정을 손대지 못할 경우 유용하게 사용하실 수 있을겁니다.

@error_reporting(E_ALL ^ E_NOTICE);
@extract($HTTP_GET_VARS);
@extract($HTTP_POST_VARS);
@extract($HTTP_SERVER_VARS);
@extract($HTTP_ENV_VARS);
@extract($HTTP_SESSION_VARS);
@extract($_FILES);
블로그 이미지

세이박스

세이박스는 세상의 모든 이야기를 담는 소통박스 입니다.

Tag off, php, 변수

댓글을 달아 주세요

sql에서는 like로 문자열 검색을 하는데..
변수에 있는 특정문자가 있는지 확인 하는 함수가 있는지...
test="1,2,3,4,5,6,7"
aa=(test에 2가 있으면 aa에 2값 저장)
 
Dim test, aa
test = "1,2,3,4,5,6,7"
 
IF instr(test,"2") Then
   aa = "2"
Else
   aa = ""
End IF
 
즉, instr 함수 사용하면됨.
블로그 이미지

세이박스

세이박스는 세상의 모든 이야기를 담는 소통박스 입니다.

댓글을 달아 주세요