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

[ PHP ]


 ; html 문 속에 사용되어 php의 mysqli tool이 mysql db 와 통신하여 data를 제어(저장,삭제,수정,조회)할 수 있게 함.


* html의 Form에 text,textarea(name="xxx") 등 정보와 submit 버튼 등을 감싸서 Form의 action='~~~.php', method='post' 속성을 이용해 mysql 처리 process를 담은 다른 php 파일로 전송하여 mysql db에 정보를 저장 가능.

* 문자열과 변수가 섞여있을 때 변수 양쪽에 .~~~. 을 하고 양 옆의 문자열을 "로 감싸줘야 하는데,

변수 양쪽을 중괄호로 감싸서 {~~~} 로 표시하면 문자열 합치는 . 를 사용하지 않고 {~~~} 자체를

문자열로 취급하여 사용할 수 있게됨(변수로서의 기능은 유효함).

* <?php echo 'string';?> === <?='string'?> ; =가 php echo 와 ; 를 생략 가능하게 해 줌. 

* 화면 출력명령 : echo 'string_xxx'(일반적으로 사용), var_dump($xxx)(php 데이터 변수를 받아서 데이터의 구조 정보를 출력해줌.

--> query된 ayyay data 의 구조 정보 중 num_rows 를 출력해주면 특정 query 조건을 만족하는 데이터의 개수를 알 수 있으며, if문에 사용하면 조건을 만족하는 data가 있는 경우와 없는 경우로 실행문을 분기 가능.

* GET 방식으로는 $_GET['URL query string의 변수명'] 형식으로 정보를 얻어옴.

GET 방식으로 정보 조회시 다른 php 문서로 보내지는 경우 php 문서 url 뒤에 '?column명=value'를 추가해야 value를 GET 가능.

(GET 방식은 변수명과 value 가 URL에 공개되기 때문에 보통은 id 정보만 이 방식으로 가지고 오며, 데이타 입력, 수정 등 보안이 유지되어야 하는 정보들은 POST 방식으로 전달함.)

* POST 방식으로는 $_POST['submit된 date의 name값'] 형식으로 정보를 전달함.

* 프로세스 실행용 php 파일에서 기본 명령 실행 완료후 원래의 index.php 파일로 다시 리디렉션 하는 명령

 : header('Location: http://localhost:port_number/index.php');

* php refactoring : config.php 파일은 주로 밖으로 빼서 refactoring함. 중복 php 구문도 refactoring 해야 코드 효율 높아짐. 

require("config/config.php");

require_once("config/config.php");

* 변수 보안 필터

 - 이미 DB에 존재하는 값을 화면에 출력시 : 주로 html 태그 안쪽에 htmlspecialchars($row['description']) 형태로 사용.

 - 새로 얻은 값(사용자가 입력한 정보)을 변수에 저장시 : 

$id=mysqli_real_escape_string($conn,$_GET['id']) <-- URL query string 으로 얻어온 id 값을 저장

$title=mysqli_real_escape_string($conn,$_POST['description']) <-- submit-POST 로 얻어온 description값을 저장

* 주석처리 : # or //

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

+ Recent posts