$_SERVER

  • PHP 예약 변수 중 하나
  • 서버, 실행환경 정보를 담고 있는 배열

종류

변수 설명 값 예시
$_SERVER['HTTP_HOST']    
$_SERVER['HTTP_REFERER'] 리퍼러
(이전 웹페이지 주소)
 
$_SERVER['HTTP_USER_AGENT'] 사용자의 웹접속환경 정보 Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.155 Safari/537.36
$_SERVER['QUERY_STRING'] 쿼리 스트링 title=Main_page&action=raw
$_SERVER['REMOTE_ADDR'] 사용자의 IP 주소 135.79.246.80
$_SERVER['REQUEST_SCHEME'] URI 스킴 http
$_SERVER['REQUEST_URI'] 요청 URI. 이 페이지에 접근하기 위해 입력한 URI /index.html
$_SERVER['SCRIPT_FILENAME'] 파일자신의 CLI경로 /home/testuser/myfolder/hello.php
$_SERVER['SCRIPT_NAME']    
$_SERVER['SERVER_NAME'] 서버 이름 example.com
$_SERVER['SERVER_ADDR'] 서버 주소 135.79.246.80
$_SERVER['SERVER_PORT'] 서버 포트 80
$_SERVER['SERVER_PROTOCOL'] 페이지가 요청된 프로토콜 정보 HTTP/1.1
$_SERVER['SERVER_SOFTWARE'] 웹서버 정보 Apache
$_SERVER['PHP_SELF'] 파일자신의 웹경로
(또는 CLI경로)
/ex/php/hello.php

 

$_SERVER['PHP_SELF']

  • 현재 실행중인 파일(자신)의 경로 + 파일명을 담은 전역변수
  • 웹에서는 URL상의 경로가 출력됨
  • CLI에서는 접근한 경로가 그대로 출력됨
  • CLI에서는 $_SERVER['SCRIPT_FILENAME'] 과 동일한 값

 

 

 

출처 :

zetawiki.com/wiki/PHP_$_SERVER

zetawiki.com/wiki/PHP_$_SERVER(%27PHP_SELF%27)

 

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

PHP) shell_exec() 함수  (0) 2020.11.05
PHP) system() 함수  (0) 2020.11.05
PHP) str_replace() 함수 : 문자열 치환 함수  (0) 2020.11.05
PHP) <?= ?> 태그  (0) 2020.11.05
PHP) move_uploaded_file() 함수  (0) 2020.11.03

str_replace() 함수 : 문자열 치환 함수

 

PHP에서 str_replace 함수는 사용자가 원하는 문장에서 특정 문자열을 치환해주는 함수입니다.

 

str_replace

 

str_replace 함수의 기본적인 사용법은 아래와 같습니다.

 

str_replace ( $search , $replace , $subject , $count );

 

 

여기서 각각의 인수는 아래와 같은 의미를 가집니다.

search 찾을 문자나 문자열 또는 그들을 담은 배열
replace 교체할 문자열
subject 교체 대상이 되는 문자열
count 교체된 문자열의 수를 반환

 

간단하게 문장으로 인수를 설명하자면, $subject 의 문장에서 $search 에 투입한 문자열을 찾아 $replace 에서 설정한 문자로 치환한다는 것입니다. $count 는 치환문 $search 의 개수를 반환해 줍니다. $count 는 선택적으로 사용할 수 있으며, 여기에는 변수를 넣어주어야 합니다.

 

예제

실제 사용 예제는 아래와 같습니다. apple 이라는 단어에서 p 를 b 로 바꾸는 작업을 하려고 합니다.

$s = 'p';
$r = 'b';
$word = 'apple';
str_replace( $s, $r, $word, $cnt );
echo $word; // abble
echo $cnt; // 2

 

 

 

++)

해당 함수의 사용법입니다.

str_replace(

     1번째 인수 : 변경대상 문자

     2번째 인수 : 변경하려는 문자

     3번째 인수 : 변수, replace가 바꾸고자 하는 문자열(변수 수)

)

 

 

그리고 쉽게 예제를 한번 만들어 보았습니다.

 

최대한 한눈에 들어오게 코딩을 해보았는데요

 

개발 이란 글자를 -> IT라고 바꾸는 방법을 알아보았습니다.

 

 

웹에서 확인한 결과입니다.

 

 

 

출처 :

triki.net/prgm/3946

https://gocoder.tistory.com/186 [고코더 IT Express]

 

 

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

PHP) system() 함수  (0) 2020.11.05
PHP) $SERVER, $_SERVER['PHP_SELF']  (0) 2020.11.05
PHP) <?= ?> 태그  (0) 2020.11.05
PHP) move_uploaded_file() 함수  (0) 2020.11.03
PHP) 슈퍼전역 변수 $_FILES  (0) 2020.11.03

<?=      ?>  태그

<?php echo 내용;  ?>의 축약형.

 

 

영어명 한국어명 여는 태그 닫는 태그 설명
echo shortcut echo 단축 태그 <?= ?> 항상 사용 가능. 
<?php echo 내용; ?>의 축약형

 

 

<사용 예>

 

 

 

출처 :

zetawiki.com/wiki/PHP_%ED%91%9C%EC%A4%80_%ED%83%9C%EA%B7%B8,_%EC%A7%A7%EC%9D%80_%ED%83%9C%EA%B7%B8,_echo_%EB%8B%A8%EC%B6%95_%ED%83%9C%EA%B7%B8

move_uploaded_file()서버로 전송된 파일을 저장할 때 사용하는 함수입니다.

 

  • 업로드된 파일을 새 위치로 옮기는 함수
  • 첨부파일 포함한 HTML form을 PHP 파일에 제출(submit)하면 /tmp/phpXXXXXX 파일로 업로드됨
  • 이것을 원하는 위치($destination)로 이동시켜 사용
  • 파일이 이미 있을 경우 덮어쓰게 되므로 주의
  • 웹으로 접근가능한 경로로 이동할 경우 해킹 위험 있으므로 주의

 

bool move_uploaded_file ( string $filename , string $destination )

 $filename : 업로드된 파일명

 $destionation : 이동할 위치

 

 

 

파일업로드 전체를 살펴보는 것이 이해가 빠를거 같습니다.

 

 

2개의 파일로 구현을 해 봅시다.

 

이용자에게 파일을 선택하고 업로드를 할 수 있도록 하는 폼 페이지(ex. upload.html)가 필요하고, 폼에서 전송한 내용을 서버측 저장공간에 저장하는 기능을 할 파일(ex. upload.php)이 필요합니다.

 

 

 

body 태그 안에 아래 코드를 작성합시다.

 

 

<upload.html>

<form method="post" enctype="multipart/form-data" action="upload.php">
<input type="file" name="upload_file">
<input type="submit" value="업로드">
</form> 

 

 

업로드할 파일을 선택하고 '업로드'버튼을 클릭하면, 서버쪽 upload.php에 그 내용이 전달되도록 작성되어있습니다.

 

upload.php는 어떤 작업을 수행하는지 살펴보겠습니다.

 

 

<upload.php>

<?php

$file_name = $_FILES['upload_file']['name'];

$tmp_file = $_FILES['upload_file']['tmp_name'];

$file_path = './files/'.$file_name;

$r = move_uploaded_file($tmp_file, $file_path);

?> 

 

upload.html 의 form 태그를 이용해서 전송된 파일은 $_FILES를 통해 접근 가능합니다.

 

서버가 업로드받은 파일은 $_FILES['upload_file']['tmp_name']에 들어있습니다.

 

  • tmp_name => 업로드된 파일이 임시 저장되는 곳

 

이제 저장될 위치를 $file_path 로 설정하고, move_uploaded_file()함수를 위의 예처럼 실행시키면, 지정 위치에 업로드한 파일이 저장됩니다.

 

 

 

 

 

 



출처 :

https://zzaps.tistory.com/52 [궁극의 잡 블로그]

폼을 통해 파일을 업로드를 하게되면 슈퍼전역 변수인 $_FILES 변수를 통해 업로드 파일에 대한 정보를 가져올 수 있다.

$_FILES['업로드_파일폼명']['업로드_정보'];

업로드 파일폼명은 <input type="file" name="파일폼명" /> 태그상의 name이 들어간다.

업로드 정보는 연관배열로 반환이 되는데, 각 정보는 아래와 같다.

$_FILES['FileFormName'][array]

  • name => 업로드된 파일이름
  • type => 업로드된 파일타입
  • size => 업로드된 파일크기(BYTE)
  • tmp_name => 임시저장된 업로드 파일의 경로와 파일이름
  • error => 업로드 오류시 오류번호


각 업로드 파일마다 위와 같은 데이터를 갖는다.

파일이 업로드가 되면 우선 서버에 지정된 임시디렉토리에 파일이 저장되게 된다.

저장된 이후에 파일을 옮기지 않으면 스크립트 종료시 임시파일은 자동삭제 된다.

스크립트가 종료되기 전에 move_uploaded_file() 함수를 통해 새로운 위치로 파일을 옮겨주도록 한다.



파일을 업로드하다 오류가 나는 경우가 있다.

파일 오류가 나는 경우 $_FILES의 error 에 오류번호를 갖게 된다.

오류번호에 대한 내용은 아래와 같다.

업로드 오류(ERROR)시 내용

1: upload_max_filesize 설정값을 초과함 (php.ini의 설정, 업로드 최대용량)
2: MAX_FILE_SIZE 설정값을 초과함 (html form의 설정, 업로드 최대용량)
3: 파일 일부만 업로드 됨
4: 업로드된 파일이 없음
6: 사용가능한 임시폴더가 없음
7: 디스크에 저장할 수 없음
8: 파일 업로드가 중지됨
이외: 시스템 오류가 발생



출처 :

https://wttjj.tistory.com/89 [왕따짱의 사진과 프로그래밍]

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

PHP) <?= ?> 태그  (0) 2020.11.05
PHP) move_uploaded_file() 함수  (0) 2020.11.03
PHP) magic_quotes_gpc 설정  (0) 2020.10.27
PHP) 세션 삭제 session_destroy( ) 함수  (0) 2020.10.27
PHP) session_start( ) 함수  (0) 2020.10.27

magic_quotes_gpc 설정

 

magic_quotes_gpc 설정
php.ini 파일에서 magic_quotes_gpc 설정이 true 인경우 GET, POST, COOKIE 에 ', ", \ 가 있으면 \(역슬래시) 자동추가된다.

 

SQL Injection 공격실습을 위해서는 C드라이브 - php.ini파일 - magic_quotes_gpc 설정을 Off로 해주어 특수문자 사용이 가능하게 해준다.

 

 

 

php코딩시 변수에 ' , " 등이 있을경우에 대해서 글을 쓴적이 있다. 

위와같은 입력이 허용되면 SQL 인젝션 공격에 취약해지기 때문에 addslashes()를 해줘야한다. 

그러면 특수문자 앞에 \(역슬러시)가 붙기 때문에 입력값으로 인젝션 공격에 사용되는 특수문자가 들어왔을 때 이 특수문자를 일반문자열로 처리하여 SQL 인젝션을 방어할 수 있게 된다. 

그리고 데이터를 불러온후 표현할때는 stripslashes를 사용하여 특수문자 앞에 붙은 \ 를 제거하고 원래 데이터를 표현한다. 

 

사용자의 데이터 입력값에 쿼리를 조작하기 위한 ' 등이 있을경우 이를 \ 처리 해주므로 안전하게 된다.

get_magic_quotes_gpc()는 magic_quotes_gpc의 설정값을 반환한다.

 

 

 

<사용 예>

 

1. DB에 저장시 해당 문자에 \(역슬래시) 추가
$_POST['text'] = addslashes($_POST['text']);

2. 화면에 출력시 추가된 \(역슬래시) 제거
$_POST['text'] = stripslashes($_POST['text']);

3. magic_quotes_gpc 설정에 따른 방법
php.ini 파일에서 magic_quotes_gpc 설정이 true 인경우 GET, POST, COOKIE 에 ', ", \ 가 있으면 \(역슬래시) 자동추가

 


magic_quotes_gpc 설정값 true, false 확인하여 처리

 

if (!get_magic_quotes_gpc())
{
// false이면 \ 추가
$_POST['text'] = addslashes($_POST['text']);
}
else
{
// true이면 \ 제거
$_POST['text'] = stripslashes($_POST['text']);
}

 

 

 

 

출처 :

blog.naver.com/soul7992/221708477422

 

blog.naver.com/ilikebigmac/221378608109

+ Recent posts