파일다운

PHP 2013. 10. 24. 17:01

<?
 include $_SERVER["DOCUMENT_ROOT"]."/include/lib.php";
?>
<?
// 9. 파일 이름과 실제 파일
$dir = $_SERVER["DOCUMENT_ROOT"]."/images";
$file_path = $dir."/a.jpg";
$original = "a.jpg";
$HTTP_USER_AGENT = $_SERVER[HTTP_USER_AGENT];

// 10.파일이 있으면
if (file_exists($file_path)) {

    // 11. 다운로드 헤더 만들기

    if(eregi("(MSIE 5.0|MSIE 5.1|MSIE 5.5|MSIE 6.0)", $HTTP_USER_AGENT))
    {
      if(strstr($HTTP_USER_AGENT, "MSIE 5.5"))
      {
        header("Content-Type: doesn/matter");
        header("Content-disposition: filename=$original");
        header("Content-Transfer-Encoding: binary");
        header("Pragma: no-cache");
        header("Expires: 0");
      }

      if(strstr($HTTP_USER_AGENT, "MSIE 5.0"))
      {
        Header("Content-type: file/unknown");
        header("Content-Disposition: attachment; filename=$original");
        Header("Content-Description: PHP3 Generated Data");
        header("Pragma: no-cache");
        header("Expires: 0");
      }

      if(strstr($HTTP_USER_AGENT, "MSIE 5.1"))
      {
        Header("Content-type: file/unknown");
        header("Content-Disposition: attachment; filename=$original");
        Header("Content-Description: PHP3 Generated Data");
        header("Pragma: no-cache");
        header("Expires: 0");
      }
    
      if(strstr($HTTP_USER_AGENT, "MSIE 6.0"))
      {
        Header("Content-type: application/x-msdownload");
        Header("Content-Length: ".(string)(filesize("$file_path")));
        Header("Content-Disposition: attachment; filename=$original");
        Header("Content-Transfer-Encoding: binary");
        Header("Pragma: no-cache");
        Header("Expires: 0");
       
      }


    } else {

      Header("Content-type: doesn/matter");  
      Header("Content-Length: ".(string)(filesize("$file_path")));
      Header("Content-Disposition: attachment; filename=$original");
      Header("Content-Description: PHP3 Generated Data");
      Header("Pragma: no-cache");
      Header("Expires: 0");

    }
    flush();

    // 12. 파일을 읽어 내보내기
    if (is_file($file_path)) {
        $fp = fopen($file_path, "rb");

        while(!feof($fp)) {
            echo fread($fp, 100*1024);
            flush();
        }
        fclose ($fp);
        flush();
    }
   

} else {
    echo $alert_header;
    alert("파일이 존재 하지 않습니다.");
}
?>
[출처: PHPer's Heaven  http://handsome.pe.kr/

'PHP' 카테고리의 다른 글

Class 사용법  (0) 2013.10.27
파일업로드 시 파일명 관리  (0) 2013.10.24
PHP 환경변수  (0) 2013.10.24
쿠키  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
Posted by 초보용
,

PHP 환경변수

PHP 2013. 10. 24. 16:48

1. $_SERVER

서버와 관련된 기본 환경 변수의 배열
$_SERVER[알고싶은값] 의 형태로 사용한다.
알고 싶은 값에 들어가는 요소들에 따른 값
$_SERVER[SERVER_NAME] : 현재 호스트의 이름
127.0.0.1
$_SERVER[DOCUMENT_ROOT] : 현재 파일이 실행중인 document root 디렉토리 (웹으로 접속되는 루트)
D:/php/phpShop
$_SERVER[PHP_SELF] : document root 를 기준으로 한 현재 실행 파일 이름
/admin/index.php
$_SERVER[SCRIPT_FILENAME] : 현재 실행 파일의 절대경로
D:/php/phpShop/Admin/index.php

$_SERVER[SCRIPT_NAME] : 현재 실행 파일의 이름
/admin/index.php
$_SERVER[REQUEST_URI] : 현재 실행 파일을 사용한 URI (get 파라미터를 포함한다.)
/admin/?sep=name
$_SERVER[HTTP_REFERER] : 현재실행파일을 호출한 곳의 주소 (해당 파일로 링크가 연결된 주소)
$_SERVER[REMOTE_ADDR] : 접속한 사용자의 IP
$_SERVER["SERVER_PORT"] "


2. $_GET, $_POST

$_GET
get 방식으로 넘어온 변수들
$_POST
post 방식으로 넘어온 변수들


3. $_SESSION, $_COOKIE

$_SESSION
세션에 저장된 변수들
$_COOKIE
쿠키에 저장된 변수들


4. $_FILES

<input type="file" name="filename"> 을 통해 업로드된 파일의 정보

$_FILES['filename']['name'] : 파일명
$_FILES['filename']['type'] : 파일 타입
$_FILES['filename']['tmp_name'] : 업로드되어 임시 저장된 파일의 절대경로
$_FILES['filename']['error'] : 업로드 에러 코드
$_FILES['filename']['size'] : 파일 사이즈(bytes)


이외에도 많은 환경 변수들이 있으나 많이 사용하는 것들만 소개하였습니다.

아래 소스 처럼 $GLOBALS 를 출력하면 모든 환경변수들을 볼 수 있습니다.

<pre>
<?
print_r($GLOBALS);
?>
</pre>


[출처: PHPer's Heaven  http://handsome.pe.kr/

'PHP' 카테고리의 다른 글

파일업로드 시 파일명 관리  (0) 2013.10.24
파일다운  (0) 2013.10.24
쿠키  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
Posted by 초보용
,

쿠키

PHP 2013. 10. 24. 16:31
쿠키는 저장하는 부분과 꺼내 사용하는 부분이 있습니다.

저장은 setcookie 란 함수를 이용하고 사용할때는 전역변수인 $_COOKIE 를 사용합니다.

setcookie(변수명, 변수값, 만료시간, 디렉토리, 도메인);

변수명 : 저장할 변수의 이름
변수값 : 저장할 변수의 값
만료시간 : 만료되는 시간을 Unix timetamp 값으로 설정 (없으면 브라우저 닫을때까지)
디렉토리 : 쿠키가 적용되는 서버내의 디렉토리 (없으면 /)
도메인 : 쿠키가 적용되는 도메인 명 (없으면 현재 도메인)
[setcookie() 기본 사용법]

위에서 가장 많이 사용하는 것은 세번째까지 입니다.

그러면 여기서 잠시 Unix Timestamp 에 대해 말씀드리겠습니다.

Unix Timestamp 는 1970년 1월 1일 0시 0분 0초를 기준으로 한 초단위 시간입니다.

즉 1970년 1월 1일 0시 0분 0초가 0, 그 후로 몇초가 지났는지를 표시하는것입니다.

현재의 Unix Timestamp 를 구할때는 time() 이라는 함수를 사용합니다.

이 외에 특정한 시간의 Unix Timestamp 를 구할때는 mktime() 이나 strtotime 등을 사용합니다.

쿠키를 꺼내 쓸때는 아래와 같이 사용하시면 됩니다.

$_COOKIE['변수명']

참 쉽죠~~~~잉!

자 그럼 쿠키를 이용해서 페이지가 바뀌어도 값을 표시하는 페이지를 만들어 보겠습니다.

<?
// 쿠키 내용 불러오기
$myname = $_COOKIE['myname'];

if($myname){
    echo "저장된 내 이름은 ".$myname." 입니다.<br/>";
}else{
    echo "저장된 내 이름이 없습니다.<br/>";
}
?>
<form name="fcookie" method="post" action="20_2.php">
내 이름은 ? : <input type="text" name="myname"> <input type="submit" value=" 확 인 ">
</form>
<br/>
<a href="./20_1.php">새로고침</a>

<?
$myname = $_POST['myname'];

if($myname){
    // POST로 넘어온 myname 이 있으면 myname 이란 변수로 30초 후까지 쿠키에 저장
    setcookie("myname", $myname, time() + 30);
    echo "내 이름이 ".$myname." 으로 저장되었습니다.<br/>";
}else{
    echo "내 이름이 저장되지 않았습니다.<br/>";
}
?>
<a href="./20_1.php">되돌아가기</a>


쿠키에 myname 이란 변수에 값이 있으면 저장된 이름을 표시합니다.

그리고 저장할 이름을 입력도 받습니다.

입력받은 이름을 20_2.php 로 넘겨 쿠키에 myname 으로 저장합니다.

쿠키에 저장이 되어 있으면 30초간 쿠키에서 myname 의 값을 꺼내 사용할 수가 있게 됩니다.

[출처: PHPer's Heaven  http://handsome.pe.kr/

'PHP' 카테고리의 다른 글

파일다운  (0) 2013.10.24
PHP 환경변수  (0) 2013.10.24
조건 반복문  (0) 2013.10.24
PHP 파일사용  (0) 2013.10.24
배열 변수  (0) 2013.10.24
Posted by 초보용
,