'Language/PHP'에 해당되는 글 85건

  1. 2010.07.14 htmlspecialchars
  2. 2010.07.14 eval
  3. 2010.07.13 환경 변수 및 사용 방법, <?= $REMOTE_ADDR ?>, <?= getenv("REMOTE_ADDR") ?>, <?= $_SERVER["REMOTE_ADDR"] ?> 1
  4. 2010.07.09 [array 함수]array_key_exists, isset, in_array, array_search
  5. 2010.07.05 headers already sent by 에러
  6. 2010.07.05 cookie
  7. 2010.07.02 implode(),explode()
  8. 2010.07.02 Fatal error: Maximum execution time of 30 seconds
  9. 2010.06.23 php에서 javascript 사용, javascript에서 php 사용
  10. 2010.06.23 브라우저 알아내기

htmlspecialchars

Language/PHP 2010. 7. 14. 11:05


html 태그를 웹에 적용하지 않고 그대로 출력

예1)

<?
$use_htmlspecialchars = htmlspecialchars("<a href='test'>Test</a>", ENT_QUOTES);
echo $use_htmlspecialchars;
echo "<br>";

$no_htmlspecialchars = "<a href='test'>Test</a>";
echo $no_htmlspecialchars;
?>


결과


<a href='test'>Test</a>
Test


 

:

eval

Language/PHP 2010. 7. 14. 10:54

문자열로 작성된 소스를 직접 실행

 예1)

< ?
eval("\$str = \"가나다\";");
echo $str;
? >
=>결과 : "가나다"

 예2)


<?
$content = "
\$a = array(\"ss\",\"xx\");
for(\$i=0; \$i < count(\$a);\$i++)
{
 echo \$a[\$i].\"<br>\";
}
";

echo "eval() 실행전<br><br>";
echo htmlspecialchars($content)."<br><br>";


echo "eval() 실행후<br><br>";
eval($content);
?>


결과


eval() 실행전

$a = array("ss","xx"); for($i=0; $i < count($a);$i++) { echo $a[$i]."<br>"; }

eval() 실행후

ss
xx

:

환경 변수 및 사용 방법, <?= $REMOTE_ADDR ?>, <?= getenv("REMOTE_ADDR") ?>, <?= $_SERVER["REMOTE_ADDR"] ?>

Language/PHP 2010. 7. 13. 18:09

PHP 에서는 프로그래머가 사용하기 쉽도록 여러가지 필요한 변수들을 미리 정의해 놓고 있다.

사용 방법 예
<?= $REMOTE_ADDR ?> 
<?= getenv("REMOTE_ADDR") ?> 
<?= $_SERVER["REMOTE_ADDR"] ?>


REMOTE_ADDR
사용자가 현재 페이지를 보고 있는 시스템의 IP 주소


REMOTE_PORT
사용자의 시스템이 웹서버와 통신하고 있는 port 번호


QUERY_STRING
해당 페이지를 접근할 때 사용된 query string.


REQUEST_URI
이 페이지를 접근하기 위해 사용한 URI. 예: '/index.html'.


REQUEST_METHOD
페이지가 요구될 때 사용된 method: 예: 'GET', 'HEAD', 'POST', 'PUT'.

HTTP_REFERER
현재 페이지를 찾아온 페이지. 현재페이지로 넘어오는 링크가 있고, 이 링크를 클릭하여 현재 페이지로 넘어온 경우 이전 페이지의 주소가 설정된다. 이 값은 사용자의 브라우저에 따라 설정될 수도 있고 아닐 수도 있다.


DOCUMENT_ROOT
현재 스크립트가 샐행중인 document root 디렉토리. 서버의 설정 파일에 정의되어 있다.


SCRIPT_NAME
현재 스크립트의 경로. 이것은 해당 페이지가 자기 자신을 가리킬 때 사용하면 유용하다. ( /test.php 와 같이 표시된다. )


PHP_SELF
document root를 기준으로 한 현재 실행중인 스크립트의 파일 이름. ( /test.php 와 같이 표시된다. )


SCRIPT_FILENAME
현재 실행되고 있는 스크립트의 절대 경로명 ( 리눅스의 경우 /home/test/public_html/test.php 와 같이 표시된다. )

출처 - http://blog.syszone.co.kr/901?category=28

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

htmlspecialchars  (0) 2010.07.14
eval  (0) 2010.07.14
[array 함수]array_key_exists, isset, in_array, array_search  (0) 2010.07.09
headers already sent by 에러  (0) 2010.07.05
cookie  (0) 2010.07.05
:

[array 함수]array_key_exists, isset, in_array, array_search

Language/PHP 2010. 7. 9. 17:24

array_key_exists

(PHP 4 >= 4.1.0, PHP 5)

array_key_exists -- 주어진 키와 인덱스가 배열에 존재하는지 확인한다

설명

bool array_key_exists ( mixed key, array search)

array_key_exists() 는 주어진 key가 배열 안에서 설정되어 있으면 TRUE를 반환한다. key는 배열 인덱스로 사용할수 있는 어떤값이든 될수 있다.

예 1. array_key_exists() 예제코드

<?php
$search_array
= array("first" => 1, "second" => 4);
if (
array_key_exists("first", $search_array)) {
    echo
"The 'first' element is in the array";
}
?>

참고: PHP 버전 4.0.6에서는 이 함수의 이름은 key_exists()이다

isset

(PHP 3, PHP 4, PHP 5 )

isset -- 존재하는 변수인지 확인합니다.

설명

bool isset ( mixed var [, mixed var [, ...]])

var가 존재하면 TRUE를, 존재하지 않는 다면 FALSE를 반환합니다.

변수를 unset()으로 지우면, 더 이상 존재하지 않습니다. NULL로 지정한 변수를 확인하면 isset()FALSE를 반환합니다. NULL 바이트("\0")는 PHP NULL 상수와 다릅니다.

경고: isset()은 변수만을 받아들이며, 다른 것에는 문법 에러를 발생합니다. 상수가 정의되었는지 확인하려면 defined() 함수를 사용하십시오.

<?php

$var
= '';

// TRUE이기에 텍스트를 출력합니다.
if (isset($var)) {
    echo
"이 변수는 존재하기에 출력합니다.";
}

// 다음 예제는 isset()의 반환값을
// 출력하기 위해서 var_dump를 사용합니다.

$a = "test";
$b = "anothertest";

var_dump(isset($a));     // TRUE
var_dump(isset($a, $b)); // TRUE

unset ($a);

var_dump(isset($a));     // FALSE
var_dump(isset($a, $b)); // FALSE

$foo = NULL;
var_dump(isset($foo));   // FALSE

?>

배열 요소와도 작동합니다:

<?php

$a
= array ('test' => 1, 'hello' => NULL);

var_dump(isset($a['test']));             // TRUE
var_dump(isset($a['foo']));              // FALSE
var_dump(isset($a['hello']));            // FALSE

// 'hello' 키는 NULL이기에 정의되지 않은 것으로 판단합니다.
// NULL 키를 확인하려면 다음을 실행하십시오:
var_dump(array_key_exists('hello', $a)); // TRUE

?>

참고: 이것은 함수가 아닌 언어 구조이기 때문에, 변수 함수 방식으로 호출할 수 없습니다.

in_array

(PHP 4 , PHP 5)

in_array -- 배열에서 값이 존재하는지 점검한다

설명

bool in_array ( mixed needle, array haystack [, bool strict])

haystack에서 needle을 검색해서 배열안에서 발견되면 TRUE를 반환하고 그렇지 않으면 FALSE를 반환한다.

세번째 매개변수 strictTRUE로 설정되면, in_array() 함수는 haystack 안의 needle타입도 점검할것이다.

참고: needle이 문자열이면, 대소문자를 구별하여 비교가 수행된다.

참고: PHP 4.2.0 이전 버전에서는 needle은 배열에서 허용되지 않았다.

예 1. in_array() 예제코드

<?php
$os
= array ("Mac", "NT", "Irix", "Linux");
if (
in_array ("Irix", $os)) {
    print
"Got Irix";
}
if (
in_array ("mac", $os)) {
    print
"Got mac";
}
?>

in_array()는 대소문자를 구별하기 때문에 두번째 조건은 실패한다. 그래서 위 프로그램은 다음과 같이 출력된다:

Got Irix

예 2. in_array()의 엄격한 예제코드

<?php
$a
= array('1.10', 12.4, 1.13);

if (
in_array('12.4', $a, TRUE)) {
    echo
"'12.4' found with strict check\n";
}

if (
in_array(1.13, $a, TRUE)) {
    echo
"1.13 found with strict check\n";
}
?>

위 코드는 다음과 같이 출력된다:

1.13 found with strict check

예 3. needle 이 배열인 in_array()

<?php
$a
= array(array('p', 'h'), array('p', 'r'), 'o');

if (
in_array(array ('p', 'h'), $a)) {
    echo
"'ph' was found\n";
}

if (
in_array(array ('f', 'i'), $a)) {
    echo
"'fi' was found\n";
}

if (
in_array('o', $a)) {
    echo
"'o' was found\n";
}

/* Outputs:
  'ph' was found
  'o' was found
*/
?>

array_search

(PHP 4 >= 4.0.5, PHP 5)

array_search --  배열에서 주어진 값을 검색하고 성공하면 해당 키를 반환한다

설명

mixed array_search ( mixed needle, array haystack [, bool strict])

haystack에서 needle을 검색하고 배열에서 그 값이 발견되면 그 키를 반환하고, 그렇지 않으면 FALSE를 반환한다.

참고: PHP 4.2.0 이전에서는, array_search()는 실패시 FALSE 대신 NULL을 반환한다.

선택적인 세번째 매개변수인 strictTRUE로 설정되면 array_search()haystack에서 needle의 타입도 함께 검사할것이다.

주의

이 함수는 Boolean FALSE를 반환하지만, 0이나 ""와 같은 FALSE로 취급하는 Boolean이 아닌 값을 반환할 수도 있습니다. Booleans 섹션에서 자세한 정보를 얻을 수 있습니다. 이 함수의 반환값을 테스트하기 위해서 === 연산자를 이용하십시오.

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

eval  (0) 2010.07.14
환경 변수 및 사용 방법, <?= $REMOTE_ADDR ?>, <?= getenv("REMOTE_ADDR") ?>, <?= $_SERVER["REMOTE_ADDR"] ?>  (1) 2010.07.13
headers already sent by 에러  (0) 2010.07.05
cookie  (0) 2010.07.05
implode(),explode()  (0) 2010.07.02
:

headers already sent by 에러

Language/PHP 2010. 7. 5. 20:21

쿠키등을 사용할 경우 어떤 구문도 위에 있으면 안된다.

:

cookie

Language/PHP 2010. 7. 5. 19:26

bool setcookie ( string name [, string value [, int expire [, string path [, string domain [, int secure]]]]])

표 1. setcookie() 인자 설명

인자 설명 예제
name 쿠키의 이름. 'cookiename'은 $_COOKIE['cookiename']으로 호출합니다.
value 쿠키의 값. 이 값은 클라이언트 컴퓨터에 저장됩니다; 민감한 정보를 저장하지 마십시오. name이 'cookiename'이라면, 이 값은 $_COOKIE['cookiename']을 통해서 얻어집니다.
expire 쿠키 만료 시간. 에포치로부터의 초수를 나타내는 유닉스 타임스탬프입니다. 보통, time() 함수에 원하는 만료 시간을 더해서 설정합니다. 혹은 mktime()을 사용할 수 있습니다. time()+60*60*24*30은 쿠키가 30일 후에 만료하도록 합니다. 지정하지 않으면, 쿠키는 세션 종료시(브라우저를 닫을 때)에 만료됩니다.
path 이 쿠키를 사용할 수 있는 서버 경로. '/'로 지정하면, 이 쿠키는 domain 전체에서 사용할 수 있습니다. '/foo/'로 설정하면, domain/foo/ 디렉토리 안과 /foo/bar/ 등의 서브 디렉토리 안에서 사용할 수 있습니다. 기본값은 쿠키를 설정하는 현재 디렉토리입니다.
domain 이 쿠키를 사용할 수 있는 도메인. example.com의 모든 서브도메인에서 이 쿠키를 사용할 수 있게 하려면, '.example.com'로 설정해야 합니다. .은 필수는 아니지만, 많은 브라우저와 호환되게 합니다. www.example.com로 지정하면, 이 쿠키는 www 서브도메인에서만 사용할 수 있습니다. 상세는 규격의 tail matching을 참고하십시오.
secure 쿠키가 보안 HTTPS 접속에만 허용할 지를 지정합니다. 1로 설정하면, 쿠키는 보안 연결이 존재할 때만 설정됩니다. 기본값은 0입니다. 0이나 1

 

예 1. setcookie() 전송 예제

<?php
$value
= 'something from somewhere'
;

setcookie("TestCookie", $value
);
setcookie("TestCookie", $value,time()+3600); 
/* 1시간 뒤에 만료 */
setcookie("TestCookie", $value,time()+3600, "/~rasmus/", ".example.com", 1
);
?>

 

예 2. setcookie() 삭제 예제

<?php
// 만료 날짜를 한시간전으로 설정
setcookie ("TestCookie", "", time() - 3600
);
setcookie ("TestCookie", "", time() - 3600, "/~rasmus/", ".example.com", 1
);
?>



PHP에서 인증은 쿠키와 세션이라는 두가지 방법이 사용되며, 이는 어떠한 컴퓨터에게 무언가를 할 수 있는 권한을 부여하는 것이기 때문에, 프로그래머에게 보안상으로 많은 고민거리를 안겨주는 부분이다.
cookie : 클라이언트에 데이터를 저장하였다가 서버의 요청에 의해 다시 서버로 보내주는 정보
session : 컴퓨터 간의 연결이 이루어진 시점부터 연결을 끊을 때까지의 기간

1. 쿠키굽기
PHP에서 쿠키라는 것은 우리가 흔히 말하는 과자를 말하는 것이 아니다. 하지만 일반적으로 사용자의 컴퓨터에 쿠키를 저장할 때 "굽는다"라는 표현을 사용한다.
setcookie(이름, 값, 폐기시간, 경로, 호스트, 보안사용);
이름 : 쿠키의 이름
값 : 쿠키의 값
폐기 시간 : 쿠키의 폐기 시간(주로 유닉스 타임스탬프를 사용하며 0일 때는 웹 브라우저가 닫히면서 쿠키가 사라진다.)
경로 : 쿠키가 적용될 경로
호스트 : 쿠키가 적용될 호스트 이름
보안사용 : HTTPS 프로토콜에 의한 보안 접속시에만 쿠키 굽기

//쿠키는 header함수와 마찬가지로 함수 호출 전에 어떠한 출력문이라도 있어서는 안된다.
<?
//쿠키 카운터 만들기
if(isset($HTTP_COOKIE_VARS[counter_cookie])){
        setcookie("counter_cookie", $_COOKIE[counter_cookie]+1, 30*24*60*60+time(),"/");
}
else{
        setcookie("counter_cookie",1,30*24*60*60+time(),"/");
}

$counter = $_COOKIE[counter_cookie]+1;
echo "$counter 번째로 방문 하셨습니다.";
?>

======================================
login.php
======================================
<!---로그인--->
<?
if(!$_COOKIE[member]){
echo "
<form method='post' action='check.php'>
비밀번호 <input type='password' name='pass' size=10><br>
<input type='submit' value='로그인'>
</form>";
}
else{
echo "로그인 되어 있습니다.<br>
<a href='logout.php'>로그아웃</a>";
}
?>
======================================
check.php
======================================
<?
$member_pass = "1234";

if($_POST[pass] == $member_pass){
        setcookie("member","$_POST[pass]",0,"/");
        header("location:login.php");
}
else{
        echo "비밀번호가 틀렸습니다.";
}
?>

======================================
logout.php
======================================
<?
setcookie("member","",0,"/");
header("location:login.php");
?>

:

implode(),explode()

Language/PHP 2010. 7. 2. 15:04
1. implode()

<?php

$array 
= array('lastname''email''phone');
$comma_separated implode(","$array);

echo 
$comma_separated// lastname,email,phone

?>


2. explode()
<?php
// 예제 1
$pizza  "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces explode (" "$pizza);
echo 
$pieces[0]; // piece1
echo $pieces[1]; // piece2

// 예제 2
$data "foo:*:1023:1000::/home/foo:/bin/sh";
list(
$user$pass$uid$gid$gecos$home$shell) = explode(":"$data);
echo 
$user// foo
echo $pass// *

?>

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

headers already sent by 에러  (0) 2010.07.05
cookie  (0) 2010.07.05
Fatal error: Maximum execution time of 30 seconds  (0) 2010.07.02
php에서 javascript 사용, javascript에서 php 사용  (0) 2010.06.23
브라우저 알아내기  (0) 2010.06.23
:

Fatal error: Maximum execution time of 30 seconds

Language/PHP 2010. 7. 2. 15:00

첫번째 해결 php.ini 파일에 max_execution_time을 수정 후 restart
※ php.ini의 위치는 phpinfo() 참고

두번째 해결 set_time_limit(0)

세번째 해결 ini_set('max_execution_time',60);

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

cookie  (0) 2010.07.05
implode(),explode()  (0) 2010.07.02
php에서 javascript 사용, javascript에서 php 사용  (0) 2010.06.23
브라우저 알아내기  (0) 2010.06.23
mktime(), date()  (0) 2010.06.23
:

php에서 javascript 사용, javascript에서 php 사용

Language/PHP 2010. 6. 23. 14:14
스크립트안에서 그냥 php echo로 변수를 사용하면 가능하다.

<?
$current_member = $member['mb_id'];
?>

<script language="javascript">
function readValue() {
var url = 'xmlhttp/xml_local_list.php?current_member=<? echo($current_member);?>';
}
</script>

추가 - <?=$current_member?> 가능



간단하게는 다음과 같이 echo로 script를 사용한다.

<?php
echo '<script>alert("123");</script>';
?>
http://youngik.tistory.com/

출처 - http://youngik.tistory.com/

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

implode(),explode()  (0) 2010.07.02
Fatal error: Maximum execution time of 30 seconds  (0) 2010.07.02
브라우저 알아내기  (0) 2010.06.23
mktime(), date()  (0) 2010.06.23
올림, 내림, 반올림  (0) 2010.06.23
:

브라우저 알아내기

Language/PHP 2010. 6. 23. 14:10
<?
echo $browser_type = getenv("HTTP_USER_AGENT");
if(preg_match("/compatible; MSIE/i", "$browser_type"))
{
echo "익스플로러";
}
else if(preg_match("/Mozilla/i", "$browser_type"))
{
echo "넷스케이프";
}
else
{
echo "$browser_type";
}
?>

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

Fatal error: Maximum execution time of 30 seconds  (0) 2010.07.02
php에서 javascript 사용, javascript에서 php 사용  (0) 2010.06.23
mktime(), date()  (0) 2010.06.23
올림, 내림, 반올림  (0) 2010.06.23
time(), getdate()  (0) 2010.06.23
:
◀ PREV : [1] : [2] : [3] : [4] : [5] : [6] : [7] : [8] : [9] : NEXT ▶