IT_Programming/PHP

php 활용 Tip 소스 모음

JJun ™ 2007. 9. 30. 13:36

[php 소스보기 차단]

 

홈페이지의 간단한 오른쪽 마우스 사용 방지 태그는 아실거구요..



index소스보기를 이용한 찾아가기식의 소스보기를 방지하면서,
또한 외부에서의 문서링크도 방지하는 팁입니다.

예를 들어서 홈페이지가
http://www.nzeo.com/ 라 가정하고 설명합니다.
헤더의 첫부분이나, 일반문서의 첫부분에 아래와 같이 삽입하면 되구요.
index는 제외시켜야 합니다.

----------------------------------------------------------

$referer=$_SERVER['HTTP_REFERER'];
if(!eregi("nzeo.com", $referer))
{
?>

  

exit;
}
?>


===========================================================================================

 

[웹브라우저 뒤로가기 클릭시 오류수정]

프로그램 최상단에 아래와 같이 한줄을 추가해 줍니다.

session_cache_limiter("no-cache, must-revalidate");

 

===========================================================================================

 

[게시판에 new이미지 달기!~]

1. new 아이콘을 스킨 폴더에 올린다.

2. skin폴더에 있는 list_main.php파일을 열고 상단에 아래를 넣는다.
+++ 이미지 주소는 꼭 넣는다...

// new 아이콘 만들기
$reg_date="".date("Y/m/d", $data[reg_date])."";
$date=date("Y-m-d H:i:s", $data[reg_date]);
$new = " ";
$check_time=(time()-$data[reg_date])/60/60;
if($check_time>24)$new.=" ";
if($check_time<=24)$new.=""; ?>

3. 적당한곳을 찾아 를 넣는다.
를 찾아서 넣고 싶은 위치에 넣는다. 너무 따닥따닥(??) 붙었다싶으면 "><" 이 사이를 넓혀준다.

===========================================================================================

 

[php로 동영상 주소 한번더 숨기기]

PHP 에서 아래와 같은 구조로 처리하면, 기존의 동영상 주소를 한번더숨길 수 있습니다.

"http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,4,5,715"
standby="Loading Microsoft Windows Media Player components..." type="application/x-oleobject">


우선 위에 코드는 보통 암호화해서 처리 합니다.(연속적인 숫자나 그런것은 되도록 피함.)
================= asffile.php 내용은 아래와 같습니다 ==============
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");
/*select vpath,filename from VOD where code='$code';
  디비에서 경로와 파일명을 가져온다.
   그리고 아이디를 넘어온것이 유료회원인지 체크.*/

$http_referer = $_SERVER[HTTP_REFERER];
$file_path = 디비에서가져온값;(ex> mms://211.122.111.xxx/lec/01.wmv)
if (strpos($_SERVER["HTTP_USER_AGENT"],"Media")>0 && 유료회원) {
   if( @ereg_replace("호출파일명.php","",$http_referer) == $http_referer ) exit;
   echo($file_path);
}else{
  print "웹에서는 동영상 재생을 지원하지 않습니다.");
}
?>
위 내용을 다른곳에 올리거나 이용하실때는 원본 출처를 반드시 밝혀주시기 바랍니다.

출처: http://www.websafe.co.kr/media_qnatip.php?pid=003&mode=v&pno=7&pcnt=68&ppage=1&

 

===========================================================================================

 

[HTTP_REFERER 이전페이지 ]

HTTP 환경변수의 HTTP_REFERER를 이용해서 어느정도 확인할 수 있습니다.
대부분의 웹사이트 접속통계를 내주는 곳에서도 이런 방법으로 처리를 합니다.

각 언어별로 HTTP_REFERER를 확인하는 방법은 아래와 같습니다.
ASP => Request.ServerVariables("HTTP_REFERER")
PHP => $_SERVER['HTTP_REFERER']
JSP => request.getHeader("REFERER")

HTTP_REFERER의 값의 유무와 각 웹서버의 로그파일을 이용해서
어떻게 방문했는지를 추출할 수 있습니다.

1. 주소창에 주소를 입력해서 들어오는 경우
- HTTP_REFERER의 값이 없음

2. '즐겨찾기'를 이용해서 들어오는 경우(IE의 경우)
- HTTP_REFERER의 값이 없음
- 로그파일에 ..../favicon.ico로그가 먼저 남는다.
- 이는 IE가 즐겨찾기를 눌러서 사이트를 방문할 경우
favicon.ico 요청을 하고, 해당 URL의 요청을 하기때문입니다.

3. 링크를 통해서 들어오는 경우.
- HTTP_REFERER에 이전 URL정보가 들어있음.
- e.g) http://search.empas.com/search/all.html?s=&f=&z=A&q=검색어

이렇게 3가지 패턴으로 어느정도 확인을 할 수가 있습니다.

추가적으로 어떤 검색엔진이나 사이트에서 링크를 통해서 들어왔는지는
3번의 URL의 주소를 분석해서 알수 있습니다.

배너광고나 검색엔진등에 등록했을때 유용하게 사용할 수 있습니다.

===========================================================================================

 
[업로드 파일 확장자 추출]

ex) fileName = reply.gif  일 경우..

 

     $fileType = explode(".",$fileName);   //"." 특정 문자열을 기준으로 배열에 넣기.

      echo "fileType=".$fileType[1] ;

  

결과 : gif

 

===========================================================================================

 

[검색한 문자만 빨간색으로 나타나게 하는방법]

ereg_replace ("찾을문자열", "바꿀문자열", "찾을범위(문자열)");

$$skey = ereg_replace($svalue, "$svalue", $$skey);

 

===========================================================================================

 

[페이징 파일 삭제 처리]

$Total=ceil($totalRecode/$listSize);

 

  if($page > $Total){      

    $page=$Total;
  }

 

  $dataSeek = ($listSize * $page)-$listSize;

 

 

 /*

     페이지의 마지막 데이터를 삭제한 후 사라질때 총 페이지보다 큰 페이지 번호가 저장되는

     경우를 막기위해.

*/

 

===========================================================================================