PHP 실습


기술의 상호작용 Review

주소를 입력하고 엔터를 친다.

웹브라우저는 웹서버에게 a.php를 요청한다.

웹 서버는 php확장자를 보고 자기가 처리할 수 없다는 것을 알고 php엔진에게 위임을 한다.

php엔진은 a.php파일을 읽어서 거기에 있는 php코드를 해석한 다음 그 결과를 웹 서버에게 돌려준다.

웹서버는 그 결과를 웹 브라우저에게 중계해준다.



이제까지는 실제로 존재했던 파일을 사용했다. 

파일들 끼리에는 중복되어있는 부분이 많은데 이것을 재 분류해서 

html은 index.php에만 담아두고 내용은 txt 파일로 만든다.

이 txt파일은 id 값으로 호출한다. 



정보는 txt파일로 꺼내어 놓고

php를 통해 입력받는 값을 가지고 프로그래밍적으로 정보를 보내준다. 

지금 언급한 방법은 과도기적인 방법이고

최종적으로는 DATABASE에 있는 정보를 꺼내오는 것이 바람직하다. 

  • DATABASE 는 소프트웨어. 데이터를 효과적으로 처리하고 보안성이 높다.

이 장점 때문에 대부분 정보를 DATABASE 에 저장하게 된다. 



실습 1. 선행적으로 알고있으면 좋은 것들

$_GET => 값을 가져올 때

<?php
  echo $_GET['id'];
?>

를 php확장자인 파일에 작성하고 

localhost/phptem/1.php?id=1 을 입력하면

1이라는 것이 화면에 나타난다.



만약 id가 아니라 name이란 것 으로 가져오고 싶다.

<?php
    echo $_GET['name'];
?>

으로 작성하고 

localhost/phptem/1.php?name=egoing

을 실행하면 egoing 이 나온다. 



name과 id 둘 다 쓰고 싶다. 

<?php
  echo $_GET['name'].",".$_GET['id'];
?>

라고 작성하고


을 입력하면 egoing,1 이 나온다. 



주소와 값의 구분 => ?

값과 값의 구분 => &



php에서 파일의 내용을 불러오는 방법 1

     1.txt라고 파일을 만들고 내용을 입력한다.

     2.php를 만들어서 안에

file_get_contents("읽어오고 싶은 파일의 이름");
         
      을 사용한 php 코드를 작성한다.

<?php
      file_get_contents("1.txt");
?>
    
        이 file_get_contents 함수는 안에있는 파일의 내용을 return 하는데
        이 return 된 값을 확인하기 위해 앞에 echo를 붙인다.

<?php
      echo file_get_contents("1.txt");
?>

여기서 이제 1.txt라고 하지말고 1을 사용자 입력에 따른 가변적인 값으로 사용하기 위해

코드를

echo file_get_contents(&_GET['id'].".txt");
 
이렇게 작성할 수 있다.



실습 2. 이전에 작성했던 JavaScript 를 사용해서 html 정보는 php로 나머지는 txt로 나누기


<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<body id="target">
  <header>
    <h1><a href="http://localhost/">JavaScript</a></h1>
  </header>
  <nav>
    <ol>
      <li><a href="http://localhost/page_html.html">JavaScript란?</a></li>
      <li><a href="http://localhost/page_vc.html">변수와 상수</a></li>
      <li><a href="http://localhost/page_op.html">연산자</a></li>
    </ol>
  </nav>
  <div id="control">
    <input type="button" value="white" onclick="document.getElementById('target').className='white'"/>
    <input type="button" value="black" onclick="document.getElementById('target').className='black'"/>
  </div>

</body>
</html>

index.php 파일에 이전에 작성했던 JavaScript 코드를 넣는다.

그리고 안에 정보인 부분들을 txt파일로 빼내는 것을 해야한다.

list.txt 파일을 만들어 저장한다. 

(h1의 내용도 정보이긴 하지만 우선 저장하지 않는다)

먼저 li의 내용을 그대로 cut해서 list.txt에 paste한다.

그리고 비어있는 ol 태그 안에

<ol>
      <?php
        echo file_get_contents("list.txt");
       ?>
    </ol>

을 입력해서 list를 참조할 수 있게 한다. 

웹 브라우저 입장해서는 php를 쓰고 있는지 안쓰고 있는지 알 수가 없다. 

만약 조건문이라는 list를 추가하고 싶으면

index.php를 수정할 필요 없이 list.txt만 수정하면 된다. ==> 목적!



실습 이제 index.php?id= 를 이용해서 1,2,3일 때 각각의 항목을 띄울 수 있게 한다. 

index.html 에서

</div> 아래에 

<article>
 <?php
  echo file_get_contents("1.txt");
 ?>
</article>

해서 1.txt 파일에 JavaScript에 대한 설명을 넣으면 된다.

하지만 최종적인 목적은 가변적으로 사용하기 위함. 

<article>
    <?php
      echo file_get_contents($_GET['id'].".txt");
     ?>
  </article>

을 통해서 id값을 통해 제어할 수 있게 한다.

list.txt에 링크되어 있는 주소값을 id 값에 따라 제어할 수 있게 수정한다.

<li><a href="http://localhost/phptem/index.php?id=1">JavaScript란?</a></li>
<li><a href="http://localhost/phptem/index.php?id=2">변수와 상수</a></li>
<li><a href="http://localhost/phptem/index.php?id=3">연산자</a></li>

=> list를 클릭하면 저 id 값을 입력한 것과 거의 비슷한 효과.

제목 부분도 수정

<header>
    <h1><a href="http://localhost/phptem/index.php">JavaScript</a></h1>
  </header>

  •       echo file_get_contents($_GET['id'].".txt"); 여기에서 index.php파일의 id 값은 NULL 이다
  •      => 그러면 .txt 파일을 열려고 시도를 한다
  •      error가 발생 할 수도 있다.

이 예외 case를 처리하기 위해 

<article>
    <?php
    if(empty($_GET['id'])==false){
      echo file_get_contents($_GET['id'].".txt");
    }
     ?>
  </article>

이렇게 코드를 작성할 수 있다. 



웹페이지 h1 태그 아래에 이미지 삽입

<img src="원하는 이미지가 있는 주소" alt="값이름">

이것도 모든 페이지에 적용하기 위해서 css에 넣는다 .

style.css 코드 안에

header img{
    float:right;
    height:100px;
}



데이터베이스를 활용하는 것이 최종 목표

'웹 프로그래밍' 카테고리의 다른 글

데이터베이스 MYSQL 실습  (0) 2017.12.28
데이터베이스 MYSQL 이론  (0) 2017.12.23
JavaScript 실습  (0) 2017.12.21
JavaScript 실습  (0) 2017.12.20
UI vs API  (0) 2017.12.19
데이터타입과 연산자

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>javascript</h1>
    <script>
      document.write(10+10);
      document.write("10"+"10");
    </script>
    <h1>php</h1>
    <?php
      echo 10+10;
      echo "10"+"10";
      ?>
  </body>
</html>


결과

javascript

201010

php

2020

-> Javascript 는 문자열 덧셈을 붙이는 것으로 하고 php 는 숫자로 바꿔서 덧셈 연산을 한 다음 출력한다. 

php에서 문자열끼리 더하고 싶다면 . 사용

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>javascript</h1>
    <script>
      document.write(10+10);
      document.write("10"+"10");
    </script>
    <h1>php</h1>
    <?php
      echo 10+10;
      echo "10"."10";
      ?>
  </body>
</html>

'웹 프로그래밍' 카테고리의 다른 글

변수  (0) 2017.12.18
디버그  (0) 2017.12.18
웹 페이지에 코드 삽입하기  (0) 2017.12.18
PHP &amp; JavaScript  (0) 2017.12.18
CSS 실습2  (0) 2017.12.17
웹 페이지에 코드 삽입하기

우선 htdocs에 phpjs 라는 폴더를 만든다. 

그 안에 1.php파일을 만든다.

1.php에 Hello world를 입력하고 

 localhost/phpjs/1.php 에 들어가보면 Hello world 가 출력되는 것을 확인할 수 있다. 

다른 방법으로 기본 형식에 맞춰서 실행시켜 본다. 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">

  </head>
  <body>
    Hello world
  </body>
</html>


크롬에서 출력된 화면에 오른쪽 클릭하고 페이지 소스보기를 클릭하면 

작성한 코드를 그대로 보여준다. 



<?php ... ?> : php에 대한 내용이 들어간다. (HTML 태그는 아니고 php만의 독특한 형식이다.)

php 코드 : echo => 그대로 출력해주는 역할.
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">

  </head>
  <body>
    <?php
      echo "Hello world";
     ?>
  </body>
</html>


이렇게 입력하고 

소스보기를 클릭하면 위와 똑같게 나오지 않는 것을 확인할 수 있다. 

=> <?php 사이에 있는 것들은 php 엔진(=인터프리터) 에 의해 내부 코드가 웹페이지에 포함되게 되기 때문이다. 

또다른 예시

<?php
      echo 10 + 10;
     ?>

소스보기로 본 결과

20

==> 무언가를 더하는 작업. HTML이나 CSS 에서는 불가능한 일이지만 PHP 에서는 가능한 일.



JavaScript를 삽입하기. 

script 태그를 이용해서 삽입 가능하다. 

<script>
       document.write("Hello world");
</script>

JavaScript 는 소스보기를 하면 작성한 내용 그대로 나타나는 것을 확인할 수 있다.



차이가 발생하는 이유

php => Server Side 언어이기 때문에 결과만 출력 (서버)

JavaScript => 웹 브라우저에서 실행되는 언어이기 때문이다. (클라이언트)


'웹 프로그래밍' 카테고리의 다른 글

디버그  (0) 2017.12.18
데이터타입과 연산자  (0) 2017.12.18
PHP &amp; JavaScript  (0) 2017.12.18
CSS 실습2  (0) 2017.12.17
CSS 실습1  (0) 2017.12.17

HTML, CSS, JavaScript =>  웹브라우저 또는 클라이언트에서 동작하는 언어.

웹 브라우저에서 a.php란 파일을 웹 서버로 보낸다.

그러면 php라는 단어를 보고 웹서버 자체가 할 수 없는 일이라고 보고 담당자인 PHP 엔진을 부른다. 

<?php
  데이터 베이스의
  topic에서 수업 제목들을 가져온다.
 ?>

php 문법에 따라서 해석한다. 


서버 쪽에서 동작하는 흐름 



PHP 설정

bitnami -> php -> php.ini 실행 (메모장 또는 Atom)

Ctrl + F 로 display_errors 를 찾는다.

display_errors = Off 를 On으로 바꾼다. 

(Off로 되어있는 이유 = > error 메세지를 공격자가 보면 해킹하는데 유용한 정보를 주게됨)


다음 opcach을 검색해서 opcache.enable = 1인 것을 0으로 바꿔준다.

=> 수정된 내용을 바로바로 최신화해준다. 


manager-windows.exe 실행 => Manage Servers에서 Restart 

=> 재실행해야 변경한 환경설정이 적용된다. 




JavaScript와 PHP

JavaScript는 같은 일을 웹 브라우저에서

PHP는 같은 일을 웹 서버에서

 


HTML, CSS 정적인 언어

JavaScript, PHP 동적인 언어



JavaScript로 할 수 있는 일

 


이렇게 바꿀 수 있다.



PHP로 할 수 있는 일


본래 HTML에 있는 CSS를 하나로 묶어서 사용했다. 

여기서 만족할 수 있을까?

만약 CSS 코드를 바꾸는 것이 아니라 ol로 되어있는 순서가 있는 리스트들을 

순서가 없는 ul로 바꿔달라고 했다면 어떻게 해야 할까

==> 공존하고 있는 HTML과 정보를 분리한다. 

하나의 HTML로 여러개의 정보를 표현할 수 있게 하는 것 => PHP













'웹 프로그래밍' 카테고리의 다른 글

데이터타입과 연산자  (0) 2017.12.18
웹 페이지에 코드 삽입하기  (0) 2017.12.18
CSS 실습2  (0) 2017.12.17
CSS 실습1  (0) 2017.12.17
CSS 이론 - float  (0) 2017.12.17

+ Recent posts