참고도서 : PHP & MySQL 닌자 비법서. 한빛미디어
1. 배열
배열 사용법은 여타의 언어들과 비슷합니다.
1-1 선언 및 초기화
선언은 따로 하지 않아도 됩니다. PHP 는 변수의 타입을 따로 지정하지 않기 때문에 그냥 사용할 때 선언을 같이 한다고 생각하시면 됩니다.
초기화 방법은
$myArray = [1, 2, 3];
과 같은 방법으로 하시면 됩니다.
1-2 출력
배열의 전체 내용을 출력할 때는 반복문이나 다른 함수를 이용해도 되지만 foreach() 함수를 이용하면 편한 거 같습니다.
위 myArray 라는 배열을 출력하는 명령어 입니다.
echo 문이 좀 보기 불편하긴 한데, php 파일을 실행해 보면 내용은 이해가 되실 겁니다.
$key 는 인덱스, 키 를 의미하는 변수고, value 는 해당 값을 의미하는 변수 입니다.
그냥 값들만 보고 싶다면,
foreach($array as $value){
echo $value . '<br>';
}
이렇게 입력한 후 실행하면 값들만 줄줄이 나오는 걸 볼 수 있습니다.
1-3 인덱스 사용자화
인덱스를 기본 설정이 아닌 문자열로 사용할 수도 있는데요,
초기화를 할 때
$myArray = ['first' => 10, 'second' => 20];
와 같이 선언을 한 후 위 출력문을 이용해서 출력해 보면
이런 식으로 출력이 됩니다.
전체 내용을 출력하지 않고 가령 second 의 내용만 출력을 하고자 하는 경우
echo $array['second']; 와 같은 식으로 하시면 됩니다.
문자열 데이터를 전달 받아서 특정 배열의 같은 문자열의 키에 위치한 데이터를 출력하고 싶을 때 이용할 수 있는 방법입니다. 배열의 키 값에는 변수를 지정해도 사용이 가능한 점을 이용하는 거라고 볼 수 있습니다.
2. 폼(form)을 이용한 데이터 전달
html 을 이용해 데이터를 입력 받은 후 php 로 전달하는 방법입니다.
우선 2개의 파일이 필요합니다.
임의로 001.html 과 001.php 파일을 만들어 주세요.
그리고 001.html 에는
처럼 입력을 해 주세요. 그리고 001.php 에는
처럼 입력을 해 주세요.
그런 후 localhost/001.html 을 브라우저의 주소창에 입력 한 후 값들을 입력 하고 전달 버튼을 눌러 주시면 php 로 값이 전달됩니다.
굳이 배열을 사용하지 않아도 됩니다만 배열에 대해 정리를 하는 김에 그냥 써 봤습니다.
php 에서 출력을 할 때 보안을 위해 사용하는게 좋다고 하는게 있습니다.
echo htmlspecialchars() 를 이용해서 전달받은 값을 출력하도록 하는 건데요.
지금 설명드린 방법은 html 에서 submit 버튼을 이용해 값을 전달하고 php 에서 불러와서 쓰는 방법이었습니다.
근데 굳이 그렇게 하지 않고 php 를 불러오는 브라우저의 주소창의 내용을 수정하는 것만으로도 사용이 가능합니다. 그냥 단순하게 test 를 text 로 바꾼다던지 하는 경우에는 문제가 없겠지만, 스크립트를 넣는다던지 하는 경우에는 문제가 될 수 있겠지요. 그러한 보안 취약점을 해결하기 위한 함수라고 합니다.
htmlspecialchars 함수는 말 그대로 html 에서 쓰이는 특수 기호 들을 처리하는 함수입니다.
기본적인 사용 법은
htmlspecialchars($변수, ENT_QUOTES, 'UTF-8') 과 같습니다.
위에 출력문에 적용을 한다면
와 같은 방식이 되겠지요.
출력 결과에는 차이가 없습니다. 그럼 뭐가 다른가를 비교해서 보는 게 좋을 것 같네요.
foreach {} 안의 내용을
요런식으로 바꿔 주신 후 php 파일을 불러와 주세요. 그리고 주소창의 내용을
http://localhost/index.php?myName=<b>qasdf</b>&myAge=1<br>2<br>3<br> 와 같이 변경 한 후 다시 불러와 주세요.
그럼 결과 화면이
이런식으로 나오게 됩니다.
안보안은 html 태그가 적용이 되어서 나오게 되고
보안은 html 태그를 그대로 보여주게 됩니다.
스크립트를 이용한 보안취약점 공격에 사용하는 방법이라고 하니 알아두면 좋을 것 같네요.
html에서 php 로 값을 전달할 때 get 방법을 사용했는데 post 를 사용할 수도 있습니다.
3. get 과 post 의 차이점
get 은 전달된 데이터가 서버 쪽에서 변경이 되지 않을 때 사용하고
post 는 변경될 때 사용한다고 합니다.
만약 get 방식을 이용해 데이터를 전달했는데 그게 결과 페이지에서 수정등이 이루어졌다면 데이터를 다시 전달해야 되고 그 과정에서 문제가 발생할 수 있다고 합니다.
'Programming > PHP' 카테고리의 다른 글
[PHP, MySQL]엑셀 파일 업로드 및 쿼리 적용하기 (0) | 2019.08.20 |
---|---|
[PHP] 연산자 정리 및 간단한 예제 (0) | 2019.05.29 |
[PHP] 기본 사용법 및 제어문 정리 (0) | 2019.03.14 |
PHP에서 Mysql 연동, 불러오기 (3) | 2019.01.20 |
[PHP7]PHP 수동 설치 방법(Windows) (0) | 2018.12.23 |