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 |