header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
php 소스 제일 상단에 위 소스를 삽입한다.
header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"');
php 소스 제일 상단에 위 소스를 삽입한다.
php.ini 파일 위치를 먼저 확인한다. <- 더보기
phpinfo()를 php 파일로 만들어서 웹 브라우저를 실행한다.
Configuration File (php.ini) Path 이 부분이 설정한 php.ini 파일이 있는 위치이다.
Loaded Configuration File 이 부분은 php.ini 파일이 로딩된 경로이며
none 또는 값이 없으면 설정한 경로에 파일이 없는 경우일 수 있으며
설정한 값이 아닌 기본 설정으로 로딩이 된 경우이다.
php.ini 파일을 찾아
Configuration File (php.ini) Path 위치에 php.ini 파일을 옮긴 후
설정을 변경해서 적용한 후 아파치를 재 시작한다.
php.ini 설정을 변경해서 apache를 재 시작했음에도 적용이 안된다면 이 두 부분을 확인해본다.
]# whereis php.ini
또는
<? phpinfo(); ?> 파일을 만들어서 웹 브라우저에서 실행한 후
Configuration File (php.ini) Path 이 부분을 확인한다.
php 세션을 생성한 후
[파일 : test1.php]
session_start(); <- 소스 맨 위에 위치
$_SESSION['id'] = 'session id';
페이지 이동을 해서 확인을 해 보면
[파일 : test2.php]
session_start(); <- 소스 맨 위에 위치
echo "<br />session['uid']=" . $_SESSION['id'];
아무런 값이 출력되지 않는 경우가 있다.
결과 : session['uid']=
[확인1] 소스 맨 위에 session_start(); 사용했는지 확인한다.
[확인2] session 디렉토리 권한을 확인한다.
세션 디렉토리 위치는 php.ini 설정 파일에서 확인할 수 있다.
예>session.save_path = '/var/lib/php/session"
/var/lib/php/session 디렉토리 권한이 777 또는 707로 되어 있는지 확인한다.
이름, 주민등록번호, 아이디, 비밀번호, 생년월일, 휴대전화번호, 필명(닉네임) 등을 확인한다.
// alert 창
function Alert($msg)
{
echo "<script language='javascript' type='text/javascript'>alert('".$msg."');</script>";
exit;
}
$userid = '아이디';
$nick = '별명';
$passwd = '비밀번호';
$name = '이름';
$birthday = '생년월일';
$phone = '휴대전화번호';
$email = '이메일주소';
$addr = '주소';
$msg_cancel = '잘못된 정보입니다.';
// 아이디
if(!rtnSpecialCharCheck($userid))
{
Alert($msg_cancel);
exit;
}
// 필명
if(!rtnSpecialCharCheck($nick))
{
Alert($msg_cancel);
exit;
}
// 비밀번호
if(!rtnSpecialCharCheck($passwd))
{
Alert($msg_cancel);
exit;
}
// 이름
if(!rtnSpecialCharCheck($name))
{
Alert($msg_cancel);
exit;
}
// 생년월일
if(!rtnSpecialCharCheck($birthday))
{
Alert($msg_cancel);
exit;
}
// 휴대전화
if(!rtnSpecialCharCheck(str_replace("-","",$phone)))
{
Alert($msg_cancel);
exit;
}
// 이메일
if(!rtnSpecialCharCheck(str_replace("@","",str_replace("-","",str_replace("_","",str_replace(".","",$email))))))
{
Alert($msg_cancel);
exit;
}
// 주소
if($addr && !rtnSpecialCharCheck(str_replace(" ","",str_replace("-","",str_replace("_","",str_replace("(","",str_replace(")","",$addr)))))))
{
Alert($msg_cancel);
exit;
}
더보기>
[php-tip]PHP $_SERVER 함수
$_SERVER['HTTP_HOST'] = 사이트 도메인
$_SERVER['DOCUMENT_ROOT'] = 현재 사이트가 위치한 서버상의 위치
-> /public_html/
$_SERVER['HTTP_USER_AGENT'] = 사이트 접속한 사용자 환경
-> Mozilla/4.0(compatible; MSIE 6.0; Windows NT 5.1; Q312461; .NET CLR 1.0.3705
$_SERVER['REMOTE_ADDR'] = 사이트 접속한 사용자 IP
-> xxx.xxx.xxx.xxx
$_SERVER['SCRIPT_FILENAME'] = 실행되고 있는 위치와 파일명-> /public_html/include/index.php
$_SERVER['SERVER_PORT'] = 사용하는 포트
-> 80
$_SERVER['REQUEST_URI'] = 현재페이지의 주소에서 도메인 제외
-> /index.php?id=hong&name=홍길동
$_SERVER['PHP_SELF'] = 현재페이지의 주소에서 도메인과 넘겨지는 값 제외
-> index.php
주로 사용하는 서버 함수만 표기했습니다. 이 외에도 더 있습니다.
<?php
var_dump($_SERVER);
?>
을 이용해서 보다 자세한 정보를 얻을 수 있습니다.
strlen() : 문자열 길이 리턴
<?
$char="php_sample";
echo strlen($char);
?>
addslashes() : 문자열에 포함된 [작은따옴표], [큰따옴표], [역슬래시]에 해당
하는 문자가 있을 경우 그 앞에 역슬래시 문자를 추가 후 리턴
<?
$char="php_'sample";
echo addslashes($char);
echo "<br>";
$char="php_\sample";
echo addslashes($char);
?>
stripslashes() : 문자열에 [역슬래시]가 있을때 역슬래시를 제거 후 리턴
<?
$char="php_\'sample";
echo stripslashes($char);
?>
nl2br() : '\n' 문자를 <br>로 바꾼 후 리턴
<?
$char="member \n blog";
echo nl2br($char);
echo "<br>";
?>
number_format() : 문자열의 값을 금액 단위의 문자로 리턴
<?
$char=1234;
echo number_format($char); //1,234
echo "<br>";
$char="";
echo number_format($char); //0
echo "<br>";
$char=1234;
echo number_format($char,2); //1,234.00
?>
substr() : 문자열의 일부를 옵션에 맞게 리턴
<?
$char1=substr("abcdef", 0); //abcdef
$char2=substr("abcdef", 1); //bcdef
$char3=substr("abcdef", -1); //f
$char4=substr("abcdef", 0, 3); //abc
$char5=substr("abcdef", 2, 3); //cde
echo "$char1 <br> $char2 <br> $char3 <br> $char4 <br> $char5";
?>
strrchr() : 해당 문자열의 선택된 문자부터 마지막 문자까지 리턴
<?
$char1=strrchr("php_sample", "s"); //sample
$char2=strrchr("php_sample", "p"); //ple
$char3=strrchr("image.gif", "."); //.gif
echo "$char1 <br> $char2 <br> $char3";
?>
rand() : 정수형 임의의 값 리턴
<?
$char1=rand();
$char2=rand(0,5);
$char3=rand(1,100);
echo "$char1 <br> $char2 <br> $char3";
?>
uniqid() : 마이크로타임에 기반하여 중복되지 않는 고유한 값 리턴
<?
$char1=uniqid(2);
$char2=uniqid(2);
$char3=uniqid(rand());
echo "$char1 <br> $char2 <br> $char3";
?>
md5() : 중복되지 않는 고유값 리턴
(16진수 32문자 -> 고정된 크기의 값을 구할 수 있다)
<?
$char1=md5(2);
$char2=md5(rand());
$char3=md5(uniqid(rand()));
echo "$char1 <br> $char2 <br> $char3 <br>";
?>
htmlspecialchars() : 저장되는 문자열이 html로 적용되지 않도록 한다
<?
$char1="<";
$char2=">";
$char3="&";
echo htmlspecialchars($char1); //<
echo "<br>";
echo htmlspecialchars($char2); //>
echo "<br>";
echo htmlspecialchars($char3); //&
?>
chop() : 문자열의 마지막 부분 공백을 지운 후 리턴
<?
$char1="php_sample ";
$char2="테스트";
$char3=" php_sample";
echo chop($char1);
echo chop($char2);
echo chop($char3);
?>
<?
// 테스트용 데이터 생성
$_POST['1']="가";
$_POST['2']="나";
$_POST['3']="다";
$_POST['4']="마";
$_GET['1']="가";
$_GET['2']="나";
$_GET['3']="다";
$_GET['4']="마";
$_SESSION['1']="가";
$_SESSION['2']="나";
$_SESSION['3']="다";
$_SESSION['4']="마";
$ary = array("1","2","3");
?>
<?
# POST 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($_POST as $key => $value)
{
echo "$key ==> $value <br>";
}
echo "<br><br>";
// var_dump()을 이용하는 방법
var_dump($_POST);
echo "<br><br>";
// print_r()을 이용하는 방법
print_r($_POST);
?>
<?
# GET 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($_GET as $key => $value)
{
echo "$key ==> $value <br>";
}
echo "<br><br>";
// var_dump()을 이용하는 방법
var_dump($_GET);
echo "<br><br>";
// print_r()을 이용하는 방법
print_r($_GET);
?>
<?
# SESSION 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($_SESSION as $key => $value)
{
echo "$key ==> $value <br>";
}
?>
<?
# 배열 값을 모두 출력하기
// foreach()을 이용하는 방법
foreach($ary as $key => $value)
{
echo "$key ==> $value <br>";
}
echo "<br><br>";
// var_dump()을 이용하는 방법
var_dump($ary);
echo "<br><br>";
// print_r()을 이용하는 방법
print_r($ary);
?>