본문 바로가기

인턴일지

php

닌자비법서 샘플 예제

https://github.com/wizardbear/hanbit-phpmysql


<?php ~~~ ?> 로 시작

' ' 안에있는 내용을 text로 인식 - 'rand(1,10)' 안에있는것은 함수가 아니라 text로 인식해서 text 그대로 출력

변수는 $로 시작 - $temp 

* PHP는 타입에 상관없이 변수에 값을 할당할 수 있고, 이미 할당한 값과 타입이 다른 값을 다시 할당할 수 있다.

주석은 // or /* */ 사용

산술 연산자  + - * /

결합 연산자 . ex) $test = '요 '.'맨'; // '요 맨' 할당

text를 넣을땐 'text' 사용 ex) $var = 'text';

주의! echp '$var1 규칙!' ; // '$var1 규칙!'

 echo "$var1 규칙!"; // 'PHP 규칙!' 

""는 변수명 부분이 변수에 할당된 값으로 대체된다.


$korean = [
1 => '하나',
2 => '',
3 => '',
4 => '',
5 => '다섯',
6 => '여섯'
];


처럼 index를 참조하여 설정 가능

배열에 숫자 말고 문자열을 index로 설정가능 ex) $birthday['Kevin'] = '1993-01-01'


php내장 함수인 isset()은 특정 변수나 배열에 값이 할당됐는지 알려준다. 할당-참/ 할당x-거짓

form의 action에 속성을 설정하지 않으면 현재 URL로 폼을 전송한다.

ex) form.html.php // 이름 입력하는 form

index.php // 이름에따라 관리자/사용자 구분


작동원리 index.php 실행 -> 아무것도 입력하지 않아 form.html.php가 실행됨

form에서 이름을 입력 -> 해당 URL ~~~~/index.php가 그대로 계속 실행

index.php는 이름에 따라 환영문구 설정

+계속 같은 URL을 유지하면 좋은 점은 즐겨찾기를 하면 항상 같은 URL로 저장되고 다시 접속했을 때 적절한 화면을 볼 수 있다. 폼화면, 환영메세지 어느페이지를 즐겨찾기에 추가하든 사용자가 다시 접속하면 폼이 표시된다.

#GET/POST 방식

name.html <a href="name.php?name=Kevin">안녕, 난 Kevin이야!</a>

name.php 
<?php
$name = $_GET['name']; // $_POST['name']
echo $name . '님, 홈페이지 방문을 환영합니다!';
?>
'name'에 저장된 값을 $name에 할당


htmlspecialchars($name, ENT_QUOTES,'UTF-8') : 사용자가 임의의 코드를 사이트에 주입하지 못하도록 막는 방어장치


<form action="name.php" method="get/post">

<label for="firstname">이름:</label>

<input type="text" name="firstname" id="firstname">

<label for="lastname">성:</label>

<input type="text" name="lastname" id="lastname">

<input type="submit" value="제출"> => 제출을 누르면 action이 실행된다.

</form>

GET폼을 전송해도 서버 자원이 변경되지 않을 때 사용한다. 검색 결과 페이지가 이 경우에 해당.

검색어가 URL에 포함되면 사용자는 검색 결과 페이지를 즐겨찾기에 추가할 수 있으며, 검색어를 다시 입력하지 않아도 즐겨찾기를 사용해 결과를 볼 수 있다.

POST는 폼을 전송한 다음 파일이 삭제되거나 데이터가 추가 변경될 때 사용한다. 그렇지 않으면 사용자가 뒤로가기 버튼이나 즐겨찾기로 해당 페이지에 다시 접근했을 때 폼이 다시 제출되어 서버쪽 처리 과정이 중복 수행되기 떄문이다.


html 과 php 의 분리

include 문 ex) include 'count.html.php'; -> count.html.php 가 그대로 실행

(~~~.html.php 는 html이 포함된 php코드 라는 뜻!


#보안고려사항

URL에 직접 php파일을 입력하면 불러 올 수 있다. 보안에 취약함.

예방조치는 include로 가져올 파일을 public이외의 다른 디렉토리에 두면 된다.

1. 절대경로

2. 상대경로 

3. __DIR__ : 절대경로를 파악할 수 있는 상수 


<?php echo $var' ?> == <?=$var?>

<?= 은 <?php echo를 의미 but 출력만 할 수 있음. 뒤에 조건문X

'인턴일지' 카테고리의 다른 글

회원가입 및 로그인  (0) 2019.03.04
mysql 쿼리문  (0) 2019.02.28
MySQL - PHP  (0) 2019.02.21
mariaDB  (0) 2019.02.20
MySQL 설정  (0) 2019.02.19