삼항연산자 

//삼항연산자로 if문같이 사용. if문은 넣을 수 없음


import React from 'react';

function App() {

	const name = "리엑트";
    return (
        <div>
            name : {name}

                {name === '리엑트' ? (

                    <h1>리엑트입니다</h1>
                ) : (
                    <h2>리엑트가 아닙니다.</h2>
                )}
         </div>
    );
}


export default App;

 

AND사용

import React from 'react';

function App() {
    const name = "react";
    //not bad 
    // return (
    //     <div>
    //         {name === 'react' ? (<h1>Yes</h1>) : (null)};
    //     </div>
    // )

    //good
    //return 값이 false 일 경우, HTML에서 null 값으로 인식하는 것을 이용,
    //but return 값이 false가 아니라 0이면 0그대로 출력한다.
    return (
        <div>
            {name === 'react' && (<h1>Yes</h1>)};
        </div>
    )
}

OR사용

 

//undefined가 return 되면 웹브라우저에선 에러
// JSX내부에서 랜더링하는 단계에선 괜찮음 return 만 안하면 

import React from 'react';

function App() {
    const name = undefined;
    return (name || 'value is undefined');
    //웹 브라우저로 바로 return 하는 행위. undefined일때 에러
    //return name;

    //JSX 내부에서 return하는 행위
    //return <div>{name}</div>
}

export default App;

인라인 스타일링

import React from 'react';

function App() {
    const name = "React";
    const style = {
        //background-color 같이 문자(-) 포함되면 빼고 camelCase로 작성
        backgroundColor: 'black',
        color: 'aqua',
        fontSize: '48px',
        fontWeight: 'bold',
        padding: 16 //단위 생략시 px단위
    }

    return <div style={style}>{name}</div>;
}

export default App;

className (not class)

import React from 'react';
import './App.css'

// in css file
// .react {
//     background-color: aqua;
//     color: black;
//     font-size: 48px;
//     font-weight: bold;
//     padding: 16px;
//   }
function App() {
    const name = "React";
    return <div className= "react">{name}</div>;
}

export default App;

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

React  (0) 2020.05.27

랜더링을 효율적으로 할 수 있게 돕는 JavaScript 라이브러리

 

MVC모델에서 View에서 일부분만 수정해야 하는 경우 기존 방법으로는 규모가 큰 애플리케이션에선 복잡하고 제대로 관리하지 않으면 성능이 떨어질 수 있다.

 

새로운 아이디어로 데이터가 변하면 기존 View를 날려버리고 새로 랜더링 하는 방식 고안.

 

매번 랜더링한다면 CPU점유율 상승, 메모리도 많이 사용. 이 문제를 효율적으로 처리하기 위한 것이 React

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

[React] JSX basic codes  (0) 2020.05.28
데이터베이스 MYSQL 실습




원래는 php가 file에서 정보를 가져왔지만 

이제는 데이터베이스에서 정보를 가져온다. 

php같이 중간에서 작업하는 언어를 가지고 미들웨어라고도 한다. 

어떻게 프로그래밍 해야하나

=> mysqli (php 내장)



실습

1차원 적인 목표 => file_get~ 이 file에서 정보를 가져오는 php 코드를 MySQL에서 가져오는 것으로 바꾼다. 

MySQL을 다루는 데에서 에러가 많이 발생한다. 에러를 찾는 것을 계속 하면서 만들어야

=> error.log 파일 켜기 => Openfile, bitnami, wampstack, apache2, logs 에 있다. 


mysqli의 코드를 <!DOCTYPE html> 위에 작성한다

<?php
  $conn = mysqli_connect("localhost","root",111111);
  mysqli_select_db($conn,'opentutorials');
?>



조회와 출력


출력에서 

=> 

<?php
    $a = array("About JavaScript","JavaScript is...");
    echo $a[0];

    echo "<br />" // 줄바꿈

    echo "연관배열";

    $b = array("title"=>"About JavaScript","description"=>"JavaScript");
    echo $b["title"];
?>

연관배열 : 어떤 값에 이름을 주는 것 



연관배열의 값을 가져올 때 


result에는 mysql_monitor에 보이는 표 처럼 topic에 있는 정보를 모두 result에 저장한다.

그리고 그 결과를 바로 사용할 수 있는게 아닌 fetch를 해준 다음 return 된 값을 변수에 저장한다.

$row = mysqli_fetch_assoc($result);

여기서 $row 에는 첫번째 행의 데이터만을 저장한다. 

그리고 그 형식은 associative 배열의 형식

ex)
$row = mysqli_fetch_assoc($result);
echo $row['id']; 
echo $row['title'];

---------------
ouput =>
1About JavaScript

이 된다. 

한번 더 fetch를 하면 그 다음 행을 가져온다.

ex)

$row = mysqli_fetch_assoc($result);
echo $row['id']; 
echo $row['title'];

$row = mysqli_fetch_assoc($result);
echo $row['id']; 
echo $row['title'];

---------------
ouput =>
1About JavaScript
2Variable and Constant

계속해서 반복하다 보면 데이터가 없을 때도 실행된다. 그러면 blank가 나오고 

그것을 제대로 확인하기 위해 사용하는 함수는 

var_dump(확인하고 싶은 변수);

이다. 내용이 없을 때 함수를 실행하면 NULL이 나온다. 

  • php에서 NULL은 곧 false라는 것을 암시적으로 알아두기.



작성한 코드는 중복이 있다. 

중복 없애기


while($row = mysqli_fetch_assoc($result)){
    echo $row['id'];
    echo $row['title'];
    echo "<br />";
  }


이런식으로 작성 가능

while 바로 옆의 괄호의 의미는 php에서 어떤 것이 값을 가질때, 또는 false가 아닌 상황은 모두 true로 간주하는 특성이 있다.

그래서 row 가 값을 가질때는 true, null 일때는 false이므로 이를 이용해서 while 문을 위와 같이 작성할 수 있다. 



배운 것 활용하기 

배운 내용으로 ol의 내용을 php에서 불러오자. 

위에서 사용한 while문은 ol태그 안에 집어넣는다. 

<ol>
      <?php
        while($row = mysqli_fetch_assoc($result)){
          echo $row['id'];
          echo $row['title'];
          echo "<br />";
        }
       ?>
    </ol>

li태그를 추가하고 "\n"을 통해 줄 바꿈을 하면

<ol>
      <?php
        while($row = mysqli_fetch_assoc($result)){
          echo '<li><a>'.$row['title'].'</a></li>'."\n";
        }
       ?>
</ol>

이 된다.

링크까지 걸면

  <ol>
      <?php
        while($row = mysqli_fetch_assoc($result)){
          echo '<li><a href="http://localhost/phptem/index.php?id='.$row['id'].'">'.$row['title'].'</a></li>'."\n";
        }
       ?>
</ol>



만든 것 깔끔하게 보이게 수정하기 



왼쪽에 보이는 여백은 너무 크고 

내용이 많아질 경우 오른쪽 여백에 내용이 출력되는 것이 아닌, 아래쪽에 출력이 된다. 

여백 조정하기

구글 개발자 도구를 켜서 ol태그에 마우스를 가져다 대면 초록색으로 여백이 나온다.

박스 모델에서 오른쪽 40px의 여백이 있다는 것을 알 수 있는데 이것을 조정해 보자.

초록색 박스의 40 숫자를 더블 클릭해서 40을 0으로 바꿔보자

마음에 든 다면 style.css 파일에서 수정한다. 

style.css 에서

nav ol{
  list-style:none;
  padding:0;
}

아래쪽 컨텐츠가 내려간 것 수정하기

우선 실습하기 위해 2.txt안에 충분히 많은 내용의 텍스트를 입력하고 

개발자 도구에서 오른쪽 상단의 점 세개를 누르고 아래쪽으로 개발자 도구 위치하기를 누르면 좀더 원활하게 확인 가능하다.
 
article 부분에 마우스를 가져대 대 보면 article 상단이 윗 여백보다 많은 공간을 차지하고 있어 아래로 내려간 것을 확인할 수 있다. 

=> article의 width를 수정하면 해결될 것으로 보이는 문제이다. 

style.css 에서

article{
    ...
    width:500px;
}

article의 내용을 불러오는 것을 데이터베이스의 id 값을 이용해서 불러오기 

SELECT*FROM topic WHERE id=

이 코드를 이용해서 topic의 값을 id를 통해 얻을 수 있다. 

<?php
    $sql = 'SELECT*FROM topic WHERE id='.$_GET['id'];
?>

(SELECT * FROM topic; => topic에서 데이터를 가져오겠다. ) - 데이터베이스 이론에서 

여기서 이 값을 데이터베이스로 전송하기 위해서 

mysqli_query($conn, $sql); 여기서 conn 은 connet의 약자. 맨위의 php문에서 정의했다. 

$result = mysqli_query($conn, $sql);
$row = mysqli_fetch_assoc($result);
echo '<h2>'.$row['title'].'</h2>';

을 바로아래에 추가해서 가져온 값을 바로 출력할 수 있다. 

=> 실행시켜보면 id값이 존재하는 경우 ex) 1,2,3 은 잘 작동하지만 h1 태그를 클릭했을때 나오는 index.php에서는 제대로 작동하지 않는 것을 알 수 있다.

이를 해결하기 위해

if(empty($_GET['id]===false){
    $sql = 'SELECT*FROM topic WHERE id='.$_GET['id'];
    $result = mysqli_query($conn, $sql);
      $row = mysqli_fetch_assoc($result);
      echo '<h2>'.$row['title'].'</h2>';
    echo $row['description'];
}

  • 여기서 === 인 것은 오타가 아니라 더 자세히 체크한다는 뜻 여기서는 자세히 몰라도 된다. 



사용자가 입력한 내용을 데이터베이스로 보내기 => form

html 파일을 만들어서
 
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text">

  </body>
</html>


이러한 코드를 입력하면


이런 칸이 나온다. 

입력해야 할 정보가 많을 때는

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    제목 : <input type="text">
    본문 : <textarea></textarea>
  </body>
</html>


본문과 같은 textarea의 코드를 작성하면


이러한 칸이 나타나게 된다. 

각각 칸에 같은 줄에 있다.

하나의 단락이라는 것을 알려주기 위해 p태그 사용

그리고 아래에 제출하는 버튼을 만들기 위해 코드 추가.

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <p>제목 : <input type="text"></p>
    <p>본문 : <textarea></textarea></p>
    <input type="submit">
  </body>
</html>

제출을 눌렀을 때 서버로 전송

=> 그 때 사용하는 태그 => form 태그

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <form action="https://localhost/phptem/3.php" method="GET" >
    <p>제목 : <input type="text"></p>
    <p>본문 : <textarea></textarea></p>
    <input type="submit">
    </form>
  </body>
</html>


form action 뒤의 링크의 의미

=> submit 버튼을 눌렀을 때 form안에 들어있는 control들을 (제목과 본론같이 안에 있는 것들을 control이라고 한다. )

=> control들에 입력된 정보를 action 속성에 지정된 에플리케이션에게 전송한다.


submit을 눌러 실행하면

=> 결과창


정보를 받게 하기 

3.php파일을 만들어서 안에

<?php
  echo $_GET['title'];
  echo $_GET['description'];
?>

이러한 코드를 넣는다.

상당히 큰 내용 넣어보기

description 안에 엄청 긴 내용을 넣어보자. 

다른 방법으로 전송해야 한다.

    <form action="https://localhost/phptem/3.php" method="POST" >

action에서 받는 method를 POST 방식으로 한다. 

그리고 3.php에서는 받는 것을 GET에서 POST로 바꿔준다.

<?php
  echo $_POST['title'];
  echo $_POST['description'];
?>



이전시간 form => 사용자의 정보를 서버로 전송하는 수단

데이터베이스를 직접 수정하지 않고 이 정보를 수정, 삭제 등등 관리하는 것을 배운다.

 

 

white black 버튼 아래에 write 버튼을 넣고 누르면 글을 작성하는 페이지로 가도록 만들고 싶다. 

그 페이지는 위의 영역을 그대로 유지하고 오른쪽 아래부분에 글을 작성하도록 하고 싶다.

=> 버튼 아래에 a href로 시작하는 코드 넣기 

  <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>
  <a href="http://localhost/phptem/write.php">쓰기</a>

그리고 형식을 똑같이 하고 싶으므로 write.php는 index.php를 duplicate 해서 생성한다. 

write.php 수정하기

<article>
    <form action="process.php" method="post">
      <p>
        제목 : <input type="text" name="title">
      </p>
      <p>
        작성자 : <input type="text" name="author">
      </p>
      <p>
        본문 : <textarea name="description"></textarea>
      </p>
        <input type="submit" name="name">
    </form>
  </article>

정보를 받기위해 process.php 만들기

<?php
  echo $_POST['title'];
  echo "<br>";
  echo $_POST['author'];
  echo "<br>";
  echo $_POST['description'];
  echo "<br>";
?>

데이터베이스(MySQL 에 저장하기)

먼저 저장할 데이터베이스 확인

=> sql monitor 켜서 DESC topic; 을 치면 topic의 상황을 보여준다.




현재상황 => 보면서 title, description, author, created 에 정보를 저장할 것이다. 


<?php
  $sql = "INSERT INTO topic(title,description,authormcreated) VALUES(".$_POST['title'].",".$_POST['description'].",".$_POST['author'].",now())";
  echo $sql;
?>


  • ,  를 " " 로 감쌀 때 shift + 방향키로 ,를 감싸고 "키를 누르면 자동으로 감싸게 입력해준다.  


출력결과

INSERT INTO topic(title,description,authormcreated) VALUES(123,12345678942,456789,now())

VALUES 안의 값 사이의 ' ' 가 필요한 것을 확인

<?php
  $sql = "INSERT INTO topic(title,description,authormcreated) VALUES('".$_POST['title']."','".$_POST['description']."','".$_POST['author']."',now())";
  echo $sql;
?>

출력결과

INSERT INTO topic(title,description,authormcreated) VALUES('123','12345678942','456789',now())

now()의 정체 => MySQL이가지고 있는 함수

지금 now의 위치 => created => created 는 Datetime 을 저장하는 곳

=> 현재시간을 저장하는 곳

값 이용하기 

우선 process.php 위에 mysql에 접속하는 코드를 넣는다

<?php
  $conn = mysqli_connect("localhost","root",17691769);
  mysqli_select_db($conn,'opentutorials');
  $result = mysqli_query($conn,'SELECT*FROM topic');
?>

그리고 이전에 작성한 php 코드와 합친다.

<?php
  $conn = mysqli_connect("localhost","root",17691769);
  mysqli_select_db($conn,'opentutorials');
  $sql = "INSERT INTO topic(title,description,author,created) VALUES('".$_POST['title']."','".$_POST['description']."','".$_POST['author']."',now())"; // 생성한 쿼리를 담음
  $result = mysqli_query($conn,$sql);
?>



실행하기 전에 database에 어떤 정보가 있는지 확인

mysql monitor에서 

SELECT id,title,author FROM topic; 입력


현재 들어있는 내용이고

process.php를 실행시키고 나면


데이터베이스에 추가가 된다. 


process.php 작업이 끝나면 원래의 창으로 보낼 수 있는 것 => Redirection

process.php 에

header('Location:http://localhost/phptem/index.php'); 를 추가한다

최종 process.php 코드 

<?php
  $conn = mysqli_connect("localhost","root",17691769);
  mysqli_select_db($conn,'opentutorials');
  $sql = "INSERT INTO topic(title,description,author,created) VALUES('".$_POST['title']."','".$_POST['description']."','".$_POST['author']."',now())"; // 생성한 쿼리를 담음
  $result = mysqli_query($conn,$sql);
  header('Location:http://localhost/phptem/index.php');
?>

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

외부에서 Mysql 접속을 위해 고려해야 할 것들  (0) 2020.09.15
데이터베이스 MYSQL 이론  (0) 2017.12.23
PHP 실습  (0) 2017.12.22
JavaScript 실습  (0) 2017.12.21
JavaScript 실습  (0) 2017.12.20
데이터베이스 MYSQL



데이터베이스 : 정보를 관리하는 전문 에플리케이션

File과 DATABASE



File 
 가장 기본적이고 원시적인 형태의 데이터 관리 수단
 어느 시스템에서나 쓸 수 있고 무언가를 설치할 필요도 없는 매우 심플하다.

DATABASE
  공부해야, 여러가지를 설치해야 쓸 수 있다.
  궁극적으로 웹에플리케이션을 만들기 위해서는 DATABASE가 필수적이다. 
  가장 큰 장점 : 안전하다. 
  또 장점 : 빠르다(index) 정보를 잘 정리해둬서 빠르게 찾을 수 있다. 
  프로그래밍적으로 제어가능하다 (SQL 이용)
  



데이터베이스 분류

현재 가장 성공적인 데이터베이스 : 관계형 데이터베이스 




MYSQL : opensource

웹과 매우 깊게 얽혀있다.

MySQL의 주인 변천사

MySQL AB -> SUN -> 'Oracle'



Database를 이해하는데 가장 핵심적인 키워드

"Structured"

데이터베이스 MYSQL


글로된 정보를 표로 정리할 수 있다. 

왼쪽 정보보다 오른쪽 정보가 더 정돈된 느낌이다 => 구조화 되었다.

표 = > table

=> 대표적인 프로그램 EXCEL

장점 => 나이순으로, 성별로 등등 정렬이 용이하다. 

EXCEL도 일종의 데이터베이스

but 진짜 데이터베이스와의 가장 중요한 차이점

=> SQL

Structured Query Language

Structured : 표와 같은 정보들로 여기서 해석하면 됌

Query : 질의하다. 질문하다 

컴퓨터에게 구조화된 정보를 질의하는 프로그래밍 언어 => SQL




Client 컴퓨터에서 Server 컴퓨터에게 

명령을 하면 전달이 된다. 이 전달할 때 사용하는 언어 => SQL

Server컴퓨터는 그 응답으로 Client 컴퓨터에게 표로 된 정보를 전달한다. 



한번 더 복습



MySQL 사용법

MySQL에서 가장 핵심적인 기술 => 서버쪽 기술

이번 수업에서 쓸 프로그램

MySQL Client 쪽 => MySQL monitor



MySQL monitor

MySQL 을 설치하면 자동으로 설치되어 있다.

단점. 명령어를 줘서 작동하는 방식으로 조금 어려울 수도 있다. 

장점. 작동하는 과정을 투명하게 보여줘서 교육적인 가치가 높다. 



Window에서 MySQL monitor 실행

Window키 + R => cmd실행

MySQL monitor의 위치 ==> C, bitnami, wamp, mysql, bin, mysql.exe

cd C:\Bitnami\wampstack-7.1.12-0\mysql\bin 입력
mysql -hlocalhost -uroot -p 입력

Enter password: 에 bitnami설치할 때 입력했던 비밀번호 입력



mysql -hlocalhost -uroot -p 의 의미

mysql => mysql monitor라는 프로그램을 실행시키겠다는 의미

-hlocalhost => -h 뒤에적은 주소에 접속한다. => 여기서는 mySQL이 설치되어있는 그 폴더에 접속한다. 

-uroot => -u 뒤에따라오는 것이 비밀번호라는 것이다. => localhost에 접속할 수 있는 비밀번호가 root라는 뜻

-p => 비밀번호를 입력받아라 라는 뜻 => -p 뒤에 바로 password를 입력할 수 있지만 그러면 해킹의 위험이 크기 때문에 권장되지 않는 방식




DATABASE => Table들을 묶어주는 일종의 디렉토리

하나의 서버 => 여러개의 데이터베이스

하나의 데이터베이스 => 여러개의 테이블



mySQL 사용

데이터베이스가 존재하고 있는지 확인
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)
이런식으로 나온다. 지금은 데이터베이스가 4개 있다는 것을 확인할 수 있다.

지금있는데 데이터베이스는 MySQL이 필요해서 만든 것. 건들면 안된다.

새로운데이터베이스 만들기

tip. 문법적인 것은 대문자로, 아닌것은 소문자로 적어서 헛갈림을 방지한다. 

CREATE DATABASE opentutorials CHARACTER SET utf8 COLLATE utf8_general_ci;

=> Query OK, 1 row affected (0.46 sec) 이렇게 나오면 성공

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| opentutorials      |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.00 sec)

생성되었다. 

데이터베이스 사용하기

use opentutorials

=> Database changed 이렇게 나오면 성공

데이터베이스에 테이블 만들기


이런 엑셀에서 표를 꾸미는 것과 같은 것을 데이터베이스에서 해보자

MySQL monitor에서는 SQL로 데이블을 작성한다.

` 그레이브 엑센트 <- 물결표시 밑에 있는 기호 => 약속되어 있는 문법적인 요소의 이름을 사용하고 싶을때
CREATE TABLE `create` ( (여기서 엔터를 치면)
-> 이런 화살표 기호가 나오는데 이것은 더 작성할 게 남았다는 뜻이다.

-> `id` int(11) NOT NULL AUTO_INCREMENT,      => col의 이름, id에는 숫자가 와야한다는 것을 강조 not null 은 반드시 id 값이 입력되어야 한다는 것이고 
auto_increment는 행을 추가할 때 자동으로 1씩 증가하라는 뜻

-> `title` varchar(100) NOT NULL,=> title에 들어가는 정보가 100보다 작은 정보라는 뜻

-> `description` text NOT NULL,=> description 에 들어오는 정보는 긴 텍스트를 받을 수 있어야 한다라는 뜻

-> `author` varchar(30) NOT NULL,     

-> `created` datetime NOT NULL, 시간과 날짜를 의미하는 데이터 형식

-> PRIMARY KET(id) => 성능을 위해 사용하는 옵션

-> ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 
=> 세미콜론 : 이렇게 작성하고 enter을 치면 작성한 명령들이 데이터베이스 서버에 전송되서 명령을 실행한다.

Query OK, 0 rows affected (0.08 sec) 이렇게 나오면 성공

테이블 만든것을 확인

show tables

+-------------------------+
| Tables_in_opentutorials |
+-------------------------+
| topic                   |
+-------------------------+
1 row in set (0.00 sec)

성공






엑셀은 아무거나 집어넣어도 아무말을 안한다.

but database는 잘못 입력하면 작동 안한다. (엄격함)

약간 불편하게 사용하지만 큰 신뢰를 가지고 사용할 수 있는 커다란 장점

행이 추가되는 것 => 정보의 추가

열이 추가되는 것 => 구조를 추가

INSERT INTO `topic` (title, description, author, created)  VALUES('about javascript', 'javascript is ~', 'egoing', '2015-4-10 12:20:5');

정보를 테이블에 추가한다. 어디 테이블에 추가할 것이냐면 토픽에 => id를 제외한 네가지에 정보를 추가한다.

VALUES 안에 값 입력. 순서대로 입력

INSERT INTO `topic` (title, description, author, created)  VALUES('about javascript', 'javascript is ~', 'egoing', '2015-4-10 12:20:5');
Query OK, 1 row affected (0.03 sec) 이렇게 나오면 성공



데이터베이스에서 데이터 가져오기

SELECT * FROM topic; => topic에서 데이터를 가져오겠다. 

mysql> SELECT * FROM topic;
+----+------------------+-----------------+--------+---------------------+
| id | title            | description     | author | created             |
+----+------------------+-----------------+--------+---------------------+
|  1 | about javascript | javascript is ~ | egoing | 2015-04-10 12:20:05 |
+----+------------------+-----------------+--------+---------------------+
1 row in set (0.00 sec)

이렇게 나오면 성공

만약 알고 싶은 정보가 title과 author 만이라면

SELECT title, author FROM topic;

데이터를 하나 더 추가

INSERT INTO `topic` (title, description, author, created)  VALUES('about variable and constant', 'variable is ~', 'pkiop', '2015-4-10 12:30:50');

mysql> SELECT * FROM topic
    -> ;
+----+-----------------------------+-----------------+--------+---------------------+
| id | title                       | description     | author | created             |
+----+-----------------------------+-----------------+--------+---------------------+
|  1 | about javascript            | javascript is ~ | egoing | 2015-04-10 12:20:05 |
|  2 | about variable and constant | variable is ~   | pkiop  | 2015-04-10 12:30:50 |
+----+-----------------------------+-----------------+--------+---------------------+
2 rows in set (0.00 sec) 성공

id값은 자동으로 증가하는 것을 알 수 있다. 

행 삭제 => 여러 정보들 중 하나를 이용하면 되는데 가장 명확한 것이 id

select id,title,author,created from topic WHERE id=2;

+----+-----------------------------+--------+---------------------+
| id | title                       | author | created             |
+----+-----------------------------+--------+---------------------+
|  2 | about variable and constant | pkiop  | 2015-04-10 12:30:50 |
+----+-----------------------------+--------+---------------------+
1 row in set (0.00 sec)

id가 2인 행을 가져온다는 뜻

select id,title,author,created FROM topic ORDER BY id DESC;

id값을 내림차순으로 정렬시킨다. 

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

외부에서 Mysql 접속을 위해 고려해야 할 것들  (0) 2020.09.15
데이터베이스 MYSQL 실습  (0) 2017.12.28
PHP 실습  (0) 2017.12.22
JavaScript 실습  (0) 2017.12.21
JavaScript 실습  (0) 2017.12.20
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
JavaScript 실습



만들 웹 페이지.

while를 누르면 화면이 하얗게

black을 누르면 화면이 검게 



실습 1. 버튼넣기

버튼을 넣기 위해 필요한 코드

    <input type="button" value="while" />

  • 여기서 마지막 / => 끝나는 태그가 없는 태그에서는 닫는 괄호에 /를 붙여도 되고 안 붙여도 된다. 

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="button" value="white" />
  </body>
</html>

type을 text로 바꾸면


type을 checkbox로 바꾸면




prompt와 alert

<script>
alert("hello world");
</script>

prompt는 입력을 받는 것 까지 포함이지만 alert는 창만 보여준다. 



prompt와 alert는 script 코드 안에서 사용되지만 HTML 코드에서 사용할 수도 있다.

<input type="button" value="white" onclick="alert('Hello world')/>

==> white를 누르면 Hello world가 나온다. 



text 타입에서 활용

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="button" value="white" onclick="alert('Hello world')"/>
    <input type="text" onfocus="alert('focus')" onblur="alert('blur')"/>
  </body>
</html>

text창을 눌러 입력이 시작되기 전에 focus 라고 나오고 입력이 끝나면 blur 라고 나온다 .



실습 2. 왼쪽 빈칸에 입력한 내용이 white 버튼을 누르면 alert 창으로 나오게 하기


<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text" />
    <input type="button" value="white" onclick="alert('Hello world')"/>
  </body>
</html>

alert 괄호 안에 들어가야 할 내용은 ? 

위의 input에 id 값을 정해주고 

괄호 안에는 id값을 나타내는 태그를 입력하면 된다. 

=> getElementById 이용 (Element == 태그와 같은 의미로 사용된다)

getElementById => document안에 들어가 있다.

작성해야 하는 코드

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text" id="user_input" />
    <input type="button" value="white" onclick="alert(document.getElementById('user_input'))"/>
  </body>
</html>




이렇게 나온다. 

끝에 .value를 추가하면

추가한 코드 

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text" id="user_input" />
    <input type="button" value="white" onclick="alert(document.getElementById('user_input').value)"/>
  </body>
</html>


제대로 출력된다. 




  • Ctrl + Alt + 우 화살표 => 편집하는 곳으로 바로 이동한다. 

복습겸

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <style>
      li{
        color:blue;
      }
      ul li{
        font-size:40px;
      }
    </style>
  </head>
  <body>
    <ol>
      <li>html</li>
      <li>css</li>
      <li>javascript</li>
  </ol>
  <ul>
    <li>최진혁</li>
    <li>최유빈</li>
    <li>한이람</li>
    <li>한이은</li>
  </ul>
  </body>
</html>

여기서 html과 최유빈 에만 밑줄을 긋고 싶다면?

=> 그 두 개의 것을 그룹핑(class로 지정하는 것) 하면 된다. 

  <ol>
      <li class="em">html</li>
      <li>css</li>
      <li>javascript</li>
  </ol>
  <ul>
    <li>최진혁</li>
    <li class="em">최유빈</li>
    <li>한이람</li>
    <li>한이은</li>
  </ul>

여기서 em은 임의로 지정한 것이다. 

CSS에서 설정은

  <style>
      li{
        color:blue;
      }
      ul li{
        font-size:40px;
      }
      .em{
        text-decoration:underline;
      }
    </style>

.은 class를 선택할 수 있게 해주는 것.



실습 3. 강조 버튼을 가장 아래에 만들어서 강조 버튼을 누르면 ol부분에 밑줄이 그어지게 만들기

  1. ol에 id값을 준다.

  1. input에서 이전에 배웠던 것처럼 document.getElementById('id값')을 작성한다.

  1. 그 바로 뒤에 .classname='em'을 작성한다. 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <style>
      li{
        color:blue;
      }
      ul li{
        font-size:40px;
      }
      .em{
        text-decoration:underline;
      }
    </style>
  </head>
  <body>
    <ol id="target">
      <li>html</li>
      <li>css</li>
      <li>javascript</li>
  </ol>
  <ul>
    <li>최진혁</li>
    <li>최유빈</li>
    <li>한이람</li>
    <li>한이은</li>
  </ul>
  <input type="button" value="강조" onclick="document.getElementById('target').className"/>
  </body>
</html>


  • 개발자도구는 F12



실습4. 오른쪽 맨 위에 버튼 넣기

위치는 맨 위의 그림에서 JavaScript가 있는 list와  변수와 상수 라는 h2 태그 사이에 있어야 그림과 같은 위치에 넣을 수 있다. 

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <link rel="stylesheet" type="text/css" href="http://localhost/style.css">
</head>
<body>
  <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>
  <input type="button" value="white" />
  <input type="button" value="black" />
  <article>
    <h2>JavaScript란?</h2>
    JavaScript는 웹페이지를 프로그래밍적으로 제어하는 언어입니다.
  </article>
</body>
</html>


버튼 넣기 까지 실습.

두 버튼을 둘다 오른쪽 끝으로 옮기기 위해 하나의 태그로 묶는다 -> div라는 태그 (태그와 태그를 grouping 해서 css적인 효과를 주기 위한 태그.

div의 id값을 주고 그 id값으로 제어한다.

그리고 css 에서 #id값 으로 하면 된다. 




실습 5. 완성


CSS에서 body{ 의 의미 => 화면 전체

body{
  background-color:white;
  color:black;
}
body{
  background-color:black;
  color:white;
}

위의 값은 default 값

black을 누르면 위의 값 실행

white를 누르면 아래 값 실행

=> 위의 코드에서 body.white, body.black 과 같이 해서 지정 가능

=> .은 class 값의 의미

<body class="black"> 으로 body.black 실행 

버튼을 누르면 이 값을 바꾸도록 하게 하자.

input ... onclick = 자바스크립트 문법에 따라 실행시킬 내용

onclick="document.getElementById('target').className='white'

의미해석 : 버튼을 클릭하면 태그 id값이 target인 것의 className을 white로 지정한다. 라는 뜻이다. 



추가

"document.getElementById('target').className='white'

이 코드는 너무 길어서 HTML의 가치를 현저히 떨어뜨릴 가능성이 있다. 

위의 코드를 지우고 거기에 id 값을 준다

  <input type="button" value="white" id = "while_btn"/>
  <input type="button" value="black" id = "black_btn"/>

그리고 닫히는 바디 위쪽에 script 태그를 만들고 그 정보를 넣는다. 

wbtn = document.getElementById('white_btn');
wbtn.addEventListener('click',function(){
    document.getElementById('target).className='white';
})

white_btn이 가리키는 태그를 wbtn이라는 변수에 담고

그 변수에 EventListener를 설치한다. => 이 것은 클릭이 일어나면 function이 포함하고 있는 구문을 실행하라는 의미이다.

마찬가지로 black도 가능

bbtn = document.getElementById("black_btn');
bbtn.addEventListener('click',function(){
    document.getElementById('target').className='white';
})

이런 코드를 모든 파일에 복사 붙여넣기 하면 되는데

중복의 냄새가 난다.

=> CSS처럼 script 파일을 만들어서 저장할 수 있다.

<script src="http://localhost/script.js"></script>
로 쓰고 다 지우고 

이 파일을 생성해서 위의 코드를 넣으면 된다.




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

데이터베이스 MYSQL 이론  (0) 2017.12.23
PHP 실습  (0) 2017.12.22
JavaScript 실습  (0) 2017.12.20
UI vs API  (0) 2017.12.19
함수  (0) 2017.12.19


만들 웹 페이지.

while를 누르면 화면이 하얗게

black을 누르면 화면이 검게 



실습 1. 버튼넣기

버튼을 넣기 위해 필요한 코드

    <input type="button" value="while" />

  • 여기서 마지막 / => 끝나는 태그가 없는 태그에서는 닫는 괄호에 /를 붙여도 되고 안 붙여도 된다. 

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="button" value="white" />
  </body>
</html>

type을 text로 바꾸면


type을 checkbox로 바꾸면




prompt와 alert

<script>
alert("hello world");
</script>

prompt는 입력을 받는 것 까지 포함이지만 alert는 창만 보여준다. 



prompt와 alert는 script 코드 안에서 사용되지만 HTML 코드에서 사용할 수도 있다.

<input type="button" value="white" onclick="alert('Hello world')/>

==> white를 누르면 Hello world가 나온다. 



text 타입에서 활용

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="button" value="white" onclick="alert('Hello world')"/>
    <input type="text" onfocus="alert('focus')" onblur="alert('blur')"/>
  </body>
</html>

text창을 눌러 입력이 시작되기 전에 focus 라고 나오고 입력이 끝나면 blur 라고 나온다 .



실습 2. 왼쪽 빈칸에 입력한 내용이 white 버튼을 누르면 alert 창으로 나오게 하기


<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text" />
    <input type="button" value="white" onclick="alert('Hello world')"/>
  </body>
</html>

alert 괄호 안에 들어가야 할 내용은 ? 

위의 input에 id 값을 정해주고 

괄호 안에는 id값을 나타내는 태그를 입력하면 된다. 

=> getElementById 이용 (Element == 태그와 같은 의미로 사용된다)

getElementById => document안에 들어가 있다.

작성해야 하는 코드

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text" id="user_input" />
    <input type="button" value="white" onclick="alert(document.getElementById('user_input'))"/>
  </body>
</html>




이렇게 나온다. 

끝에 .value를 추가하면

추가한 코드 

<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <input type="text" id="user_input" />
    <input type="button" value="white" onclick="alert(document.getElementById('user_input').value)"/>
  </body>
</html>


제대로 출력된다. 




  • Ctrl + Alt + 우 화살표 => 편집하는 곳으로 바로 이동한다. 

복습겸

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <style>
      li{
        color:blue;
      }
      ul li{
        font-size:40px;
      }
    </style>
  </head>
  <body>
    <ol>
      <li>html</li>
      <li>css</li>
      <li>javascript</li>
  </ol>
  <ul>
    <li>최진혁</li>
    <li>최유빈</li>
    <li>한이람</li>
    <li>한이은</li>
  </ul>
  </body>
</html>

여기서 html과 최유빈 에만 밑줄을 긋고 싶다면?

=> 그 두 개의 것을 그룹핑(class로 지정하는 것) 하면 된다. 

  <ol>
      <li class="em">html</li>
      <li>css</li>
      <li>javascript</li>
  </ol>
  <ul>
    <li>최진혁</li>
    <li class="em">최유빈</li>
    <li>한이람</li>
    <li>한이은</li>
  </ul>

여기서 em은 임의로 지정한 것이다. 

CSS에서 설정은

  <style>
      li{
        color:blue;
      }
      ul li{
        font-size:40px;
      }
      .em{
        text-decoration:underline;
      }
    </style>

.은 class를 선택할 수 있게 해주는 것.



실습 3. 강조 버튼을 가장 아래에 만들어서 강조 버튼을 누르면 ol부분에 밑줄이 그어지게 만들기

  1. ol에 id값을 준다.

  1. input에서 이전에 배웠던 것처럼 document.getElementById('id값')을 작성한다.

  1. 그 바로 뒤에 .classname='em'을 작성한다. 

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8"/>
    <style>
      li{
        color:blue;
      }
      ul li{
        font-size:40px;
      }
      .em{
        text-decoration:underline;
      }
    </style>
  </head>
  <body>
    <ol id="target">
      <li>html</li>
      <li>css</li>
      <li>javascript</li>
  </ol>
  <ul>
    <li>최진혁</li>
    <li>최유빈</li>
    <li>한이람</li>
    <li>한이은</li>
  </ul>
  <input type="button" value="강조" onclick="document.getElementById('target').className"/>
  </body>
</html>


  • 개발자도구는 F12















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

PHP 실습  (0) 2017.12.22
JavaScript 실습  (0) 2017.12.21
UI vs API  (0) 2017.12.19
함수  (0) 2017.12.19
자바스크립트, PHP로 로그인 기능 구현하기  (0) 2017.12.19

UI : User Interface

vs

API : Application Programming Interface




Interface

사람과 사람이 교류할 때 사용하는 가장 기본적인 도구 : 언어

PC 와 키보드 : USB 인터페이스

웹 어플리케이션과 웹 브라우저의 접점


앞에서 배웠던 prompt 같이 유저가 직접 입력하는 것 : UI

prompt("비밀번호를 입력해주세요") 같이 프로그래밍 적으로 문법에 따라 웹브라우저에게 전달한 명령 : API

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

JavaScript 실습  (0) 2017.12.21
JavaScript 실습  (0) 2017.12.20
함수  (0) 2017.12.19
자바스크립트, PHP로 로그인 기능 구현하기  (0) 2017.12.19
변수  (0) 2017.12.18
함수 정의와 실행



실습 코드

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <script type="text/javascript">
      function a(){
        document.write("a를 실행 ");
      }
      a();
    </script>
    <?php
      function b(){
        echo "b를 실행 ";
      }
      b();
      ?>
  </body>
</html>




함수의 입출력

입출력 기본
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <script type="text/javascript">
      function a(input){
        document.write(input+1);
      }
      a(1);
    </script>
    <?php
      function b($num){
        echo $num+1;
      }
      b(5);
      ?>
  </body>
</html>


return 이용 
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <script type="text/javascript">
      function a(input){
      return input+1;
      }
      document.write(a(1));
    </script>
    <?php
      function b($num){
        return $num+1;
      }
      echo b(5);
      ?>
  </body>
</html>







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

JavaScript 실습  (0) 2017.12.20
UI vs API  (0) 2017.12.19
자바스크립트, PHP로 로그인 기능 구현하기  (0) 2017.12.19
변수  (0) 2017.12.18
디버그  (0) 2017.12.18
자바스크립트로 로그인 기능 구현하기

prompt라는 것이 있다.

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

  </head>
  <body>
      <script type="text/javascript">
        prompt("비밀번호");
      </script>
  </body>
</html>

결과




사용자가 입력할 정보를 받기위한 방법은

password = propmt("비밀번호");

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
      <script type="text/javascript">
        password = prompt("비밀번호");
        document.write(password);
      </script>
  </body>
</html>


사용자가 입력한 정보를 자바스크립트가 알 수 있게 된다. 



로그인 기능 구현

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
      <script type="text/javascript">
        password = prompt("비밀번호");
        if(password == 1111) {
          document.write("안녕하세요 주인님");
        }else{
          document.write("뉘신지?");
        }
      </script>
  </body>
</html>




PHP로 로그인 기능 구현하기


위의 화면은 8-1.php 이다.

제출 버튼을 누르면

8-2.php/password=111111 창으로 간다. 

뒤에있는 password 값에 따라 나타나는 화면이 달라진다. 



구현 1

form, p, input 태그

input type = "text" text 입력

input type = "submit" => 제출 버튼
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
      <form action="8-2.php">
        <p>비밀번호를 입력해주세요.</p>
        <input type="text" name="password">
        <input type="submit">
      </form>
  </body>
</html>

8-1.php 코드
코드 해석

=> 첫 번째 input에서 name에 password 를 입력받고 그 것을 8-2.php에 보낸다.



구현 2

입력받는 것을 사용하기 위해 필요한 특수한 코드

$_GET["password"];

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
  </head>
  <body>
    <?php
      $password = $_GET["password"];
      if($password == "1111"){
        echo "주인님 환영합니다.";
      } else {
        echo "뉘신지?";
      }
     ?>
  </body>
</html>



  • HTML 줄바꿈 태그 => <br />

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

UI vs API  (0) 2017.12.19
함수  (0) 2017.12.19
변수  (0) 2017.12.18
디버그  (0) 2017.12.18
데이터타입과 연산자  (0) 2017.12.18

+ Recent posts