PHP - Web Application 제작의 가장 쉬운 툴
PHP는 아마 Javascript를 제외하면 HTML과 가장 많이 연동되지 않을까?
PHP가 있으면 거의 모든 형태의 Web Application이 제작이 가능하다. 말 그대로.. 사실 이게 전혀 어렵지가 않은데, 괜히 어려워보인다. 좀 어려워 보이는 필요한 지식은 SQL Query문 뿐이다. 내 생각엔..
모든 프로그램은
1. 사용자로부터 변수를 입력 받아서
2. 중간 매개 프로그램이 그 변수를 불러와서 그를 바탕으로
3. DB에 저장하거나, 읽어온다.
4. 중간 매개 프로그램은 DB를 이용하여 처리한 후 사용자에게 출력해준다.
1. 사용자로부터 변수 입력받기
1의 경우에는 form만 만들줄 알면 된다. JQueryMobile과 세트로 작동하는 얼마전에 완성한 프로젝트인 SyntaxHighlighter Remote에서 사용한 코드는
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <form method="post" action="/syntax/result.php" data-ajax="false"> <fieldset style="float: left;" data-role="controlgroup" data-type="horizontal" data-mini="true"> <input type="radio" name="type" id="radio-choice-c" value="py" checked="checked"> <label for="radio-choice-c">Python</label> <input type="radio" name="type" id="radio-choice-d" value="php"> <label for="radio-choice-d">PHP</label> <input type="radio" name="type" id="radio-choice-e" value="js"> <label for="radio-choice-e">JS</label> <input type="radio" name="type" id="radio-choice-f" value="cpp"> <label for="radio-choice-f">C++</label> <input type="radio" name="type" id="radio-choice-g" value="html"> <label for="radio-choice-g">HTML</label> </fieldset> <div style="float: right;"> <input type="submit" value="Submit" data-theme="e" data-inline="true"></input> </div> <div class="ui-grid-solo" style="clear: left;"> <div class="ui-block-a"> <p>Type the source below:</p> </div> </div> <textarea name="source" placeholder="Input your source code"></textarea></form> |
위와 같다. 굳이 일단은 디자인에 신경을 쓰지 않아도 form 테그만 이용하면 1번의 입력단을 충분히 만들 수 있다.
2. 중간 매개 프로그램(PHP)의 변수 넘겨받기
1 2 3 4 5 | <?php $a = $_GET('a'); $b = $_POST('b'); $c = $_REQUEST('c');?> |
이 또한 어렵지 않다. 순전히 이 부분은 1번 파트에서 어떻게 넘겼는가에 따른 문제이다.
만약에 form 테그에서 method="get"으로 넘겼다면 $_GET을 쓰면 되고, 아니고 method="post"로 넘겼다면 $_POST로 받으면 된다. 잘 모르겠고 그냥 받겠다 하면 $_REQUEST를 쓰면 되고..
만약에 로그인하는 PHP 프로그램을 만들겠다? 그렇다면 id랑 pw를 받으면 되는 것이다.
3. DB에 접근하기
가장 보편화된 MySQL을 쓰게되면 여러 소스들이 많이 있다. 아래를 한번 보자.
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php$host_name = "localhost";$user_name = "user";$user_password = "*****";$db_name = "test";$connect = mysql_connect($host_name,$user_name,$user_password) or echo "mysql_error()"; $que = // SQL Query$data = mysql_query($que, $connect) or echo "mysql_error()";?> |
명백한 코드지만 mysql_connect로 접속하여, $que에 Query를 넣고, $data로 DB의 Data를 출력받는 코드임을 알 수 있다. 로그인을 한다 치면, 적절한 id와 pw를 입력받아 SELECT Query로 그것이 맞는지를 확인한다음 출력을 받아야 할 것이다.
4. 결과값 출력하기
크게 두가지 방법이 있는데,
1) php를 HTML 사이에 삽입하여 결과물 출력
이 경우에는 db에서 받은 데이터 결과값을 가공한 것이 $data에 저장되어 있다고 가정했을 때, HTML 사이에 <?php echo $data; ?>와 같이 삽입해서 쓰면 된다. 제일 간단한 방법이다.
2) json과 같은 자료형으로 출력
json을 쓰게 되면, ajax와 결합시킬 수 있다. 실시간으로 결과값을 전송받아 화면에 출력시켜 줄 수 있다. 조금 복잡하므로 나중에 예제와 함께 기회가 되면 포스팅 해보도록 하겠다.
중간에 추가적으로 든 생각은 처리하는 부분에서 python을 쓴다는 생각이다. 이 경우에는 passthru("python a.py var1 var2"); 함수를 쓰면 되고 출력은 python에서 직접 print로 찍어주면 된다. 이 경우에는 json으로 그냥 처리하는게 편할것이라는게 내 생각이다. (php와 python간의 데이터 교환이 어려움)
'Creation > Programming' 카테고리의 다른 글
| 쓸만한 웹 HTML 에디터, widgEditor (3) | 2014.01.18 |
|---|---|
| [Converter] Hex, Base64를 Plain Text(텍스트)로 변환해주는 사이트 (1) | 2014.01.17 |
| [Javascript] 창크기 변화를 감지해서 애드센스(Adsense) 광고 옮기기 (27) | 2014.01.12 |
| [정규표현식이란?] 정규표현식을 공부해보고 테스트 할 수 있는 사이트 (0) | 2014.01.11 |
| [PHP] 데이터 <BR>태그로 자동줄바꿈, 링크감지 기능 추가하기 (1) | 2014.01.08 |
| [PHP] Array_map 함수 : 배열 한번에 다루기 (2) | 2014.01.05 |
| 유니코드에 대한 글 / 유니코드 <-> HTML 변환기 (0) | 2014.01.02 |
| [PHP] 접속 도메인에 따라 같은 IP주소로 연결해도 다른 페이지 보여주기 (1) | 2013.11.26 |
| [Chrome] 마우스 오른쪽 버튼 제한 해제하기 (0) | 2013.11.07 |
| [Chrome] 현재 페이지의 쿠키값 쉽게 확인하기 (1) | 2013.11.07 |