40. MySQL PHP 기본 - HTML과 PHP의 관계

김제이아이엠·2025년 11월 21일

MySQL

목록 보기
38/41

HTML과 PHP 관계

HTML과 PHP 데이터 전송

HTML과 PHP 데이터 전송 개념
chapter 11까지는 데이터의 입력/수정/삭제를 위해서 직접 SQL문 INSERT/UPDATE/DELETE를 사용해 왔다. 하지만, 사용자가 데이터의 조회나 수정을 위해서 이러한 SQL문을 배울 수는 없다.

예로 쇼핑몰에 회원 가입하기 위해서는 원칙적으로 회원 테이블에 INSERT문을 실행해야 하지만, 현실적으로 쇼핑몰에 가입하기 위해서 이러한 SQL문을 알 수 없기 때문에 HTML 페이지로 사용자가 사용하기 쉬운 형태의 화면을 제공해야 한다. [그림 12-32]를 보자.

[그림 12-32] 웹 브라우저에서 MySQL에 데이터 입력 개념도

PC의 웹 브라우저에서는 HTML 파일에서 회원의 이름/주소 등의 정보를 입력한 후 <전송>을 클릭한다. 그러면 서버의 PHP 파일이 작동되어서 HTML에서 전송 받은 데이터를 MySQL 서버에 입력한다.

이러한 작동을 위해서 HTML 파일에 'FORM' 태그를 사용해야 한다. 그러면 입력한 정보가 서버의 PHP 파일에 전달될 수 있다. 또, 'FORM' 태그 안에 데이터를 채우기 위해서 'INPUT' 태그도 사용해야 한다.

먼저 간단히 HTML에서 사용자의 아이디와 이름을 입력한 후, PHP 파일에 전달하는 코드를 살펴보자.


send.html 파일의 내용을 받는 receive.php 코드는 다음과 같다.

POST와 GET 전달 방식
[소스 12-16]과 [소스 12-17]에서 사용한 방식은 POST 전달 방식이다. [소스 12-16]의 7행에서

의 METHOD 속성을 post로 지정했으며, [소스 12-17]에서는 $_POST["이름"] 방식으로 값을 전달 받았다.

또 다른 방식으로는 GET 방식이 있는데 [소스 12-16]의 7행에서 post를 get으로 변경하고, [소스 12-17]의 $_POST를 $_GET으로 변경해서 수행해 보자. 동일한 결과가 나올 것이다.

결과는 동일하다. 차이점이라면, POST 방식의 결과는 [그림 12-35]에서느 주소 창에 'localhost/reveive.php'만 써 있었지만, GET 방식은 주소 뒤에 "?변수=값&변수=값'방식으로 값이 전달되는 것을 확인할 수 있다. 한글로 전달한 userName 변수는 다른 코드로 변환했기 때문에 이상패 보이는 것일뿐 결과는 '홍길동'으로 잘 나와 있다.

지금 확인했듯이 GET 방식은 전달되는 데이터가 노출되기 때문에 주의할 필요가 있다. 전달 데이터가 노출되어도 문제없는 경우에는 사용해도 되지만, 비밀번호 등과 같이 중요한 정보를 전달하는 경우에는 GET을 사용하지 말고 POST를 사용하는 것이 바람직하겠다.

HTML과 PHP 혼용

HTML 문법으로만 구성된 파일의 확장명을 *.php로 저장해서 사용해도 상관없다.

결과는 7행이 잘 출력되었을 것이다.
필요하다면 PHP와 HTML 코드를 섞어서 사용할 수도 있다. 다음 예를 보자.

결과는 300 숫자가 잘 나왔을 것이다. 1행~5행은 순수한 PHP 코드로 작성되어 있다. 그리고 7행~16행은 HTML 코드다. 주목할 것은 13행의 중간에 으로 PHP 코드가 들어있다는 점이다. 이렇게 HTML 중간중간에도 PHP 코드를 함께 사용할 수 있다.
이제는 [그림 12-34]의 3번 MySQL과 연동되는 PHP를 코딩하면 되는데, 이에 대한 내용은 chapter 13의 MySQL과 PHP 연동에서 살펴보겠다.

profile
1이되기까지

0개의 댓글