본문 바로가기

PHP

[PHP] get과 post, for과 while 이용한 초보자 실습

저번 시간에는 PHP의 역사와 개념을 공부했더라면

이번 시간에는 전에 설치했던 netbeans을 실행해서 PHP 실습을 해보도록 하겠습니다.

그 전에 xampp도 실행시켜 보겠습니다

엥 근데 파일 어디갔지?? 어딨지? 하시는 분들은

내 PC - xampp - xampp-control.exe 를 누르시면 

 

 xampp 실행시

위와 같은 프로그램이 뜰텐데 저기 그린 화살표 두 개를 눌러서 실행을 시켜줍니다

넷빈을 실행시켜보면 Start Page라고 메인 페이지가 나오는데 X표를 눌러 살포시 꺼주고

 

 

왼쪽에 보면 Project, Files, Services 세 메뉴가 일단 놔두고

상단에 File를 클릭하고 New project를 누릅니다.

나머지 설정은 사진과 같이 따라해주시면 됩니다.

 

 

 

 

요렇게 htdocs를 입력하면 홈 디렉터리로 잡히기 때문에 지워줍니다.

 

 

왼쪽에 보면 htdocs의 초기 문서가 index.php로 잡히기 때문에

화면상에 index.php가 나올거에요

이제 실습을 해보기 위해 일단 폴더 하나를 만들어줍니다.

저는 practice01로 만들고 PHP File을 만들어 주었습니다.

 

 

그리고서 바로 PHP Web Page 파일도 하나 더 만들어주었습니다.

하나는 그냥 PHP파일 다른 건 PHP Web Pade 파일 입니다.

* 상수 (constant)

- 코드가 실행되는 중에 변하지 않는 값을 미리 할당해 두는 것

- "자동차", 1000, -3.14 등...

- 상수는 관습적으로 대문자를 사용

PHP_VERSION PHP의 버전
PHP_OS PHP가 실행 중인 OS
__LINE__ 처리 중인 파일의 현재 줄 번호
__FILE__ 처리 중인 파일의 전체 경로와 이름
__DIR__ 처리 중인 파일의 디렉토리
__FUNCTION__ 함수명
__CLASS__ 클래스명
true
flase 거짓
null 아무 값이 없음

* 변수 (variable)

- 데이터를 메모리에 저장

- PHP 코드가 실행되는 도중 값이 변함

- 반드시 $기호 입력 후 영문이나 숫자 사용

- 변수명에는 숫자가 가장 앞에 올 수 없음

- 올바른 변수명 : $var, $age, $bus1, $_123

- 잘못된 변수명 : $생일, $2day, $email@, $my-school 등등

- 변수에 데이터 할당 : $data = "안녕하세요";, $data = 100;

 

<?

  $kor = 85;

  $math = 85;

  $eng = 85;



  $sum = $kor + $math + $eng;

print "세 과목 점수의 합계 : " . $sum:

?>

 

이렇게 실행 할 시 

localhost에선  [세 과목 점수의 합계 : 255] 로 나올 것이다.

 

* 연산자

산술 + - * / % ++ --
문자열 연결 .            
대입 ==  += -= *= /= %= .=
비교 > < >= <= == !=  
논리 && || !        
<?php

  $num = 80;

  if($num%2 == 0)

    print "$num : 짝수 ";

    else 

    print "$num : 홀수 ";

?>

 

80 : 짝수가 출력된다.

이제 아주 쪼오오금 더 심화과정으로 넘어가서

구구단 과정으로 넘어가겠다. 생각보다 아주 간단 간단

 

 

일단 왼쪽은 while 문으로 만든 구구단이고 오른쪽은 for문으로 변형한 구구단이다.

그걸 토대로 아까 만들었던 helloWeb.php 파일로 들어간다.

그럼 기본적으로 html 뼈대가 만들어져있고 body 안에는 php를 사용 할 수 있도록 되어있다.

 

왼쪽에 동그라미 친 부분은 오른쪽에 uri 부분과 같습니다.

내려오다보면 form에 method= get  

 

** 여기서 get 과 post에 대해 잠깐 알아보고 가겠습니다.

1. 폼(form)

- 폼이란 사용자의 데이터를 서버에 전송하는 방법입니다. 

 

2. 문법

- <form    method="데이터를 전송하는 방법"     action="서버로 전송한 데이터를 수신할 URL"  </form>

 

method 에는 get과 post 두 가지가 있다.

get post
URL에 정보가 담겨서 전송된다 header의 body에 담겨서 전송된다
전송할 수 있는 정보의 길이가 제한되어 있다 URL 상에 전달한 정보가 표시되지 않는다

퍼머링크로 사용될 수 있다.

정보를 식별하는 고유한 식별자 (고유 주소체계)

전송할 수 있는 데이터의 길이 제한이 없다

퍼머 링크로 사용할 수 없다.

서보 쪽에서 어떤 작업을 명령할 때 사용한다.

URL을 보면서 정보 확인이 가능하고

- '?' 앞 뒤로 구분하여 앞은 URL 뒤는 파라미터

- 각각의 파라미터는 '&'로 구분한다.

- '=' 을 사용해서 파라미터와 파라미터 값을 구분한다

개발자 도구를 열어 network 탭을 통해 확인이 가능하고

서버간의 데이터 전달 과정도 알 수 있다.

 

다시 돌아와서 method = get 이렇게 사용했기 때문에 오른쪽에 URL에서 정보를 확인 할 수 있다.

action은 <php ?> 과정을 서버로 전송하기 위한 과정이 helloWeb.php 안에 있으므로 적어준다.

( 새로운 페이지를 만들고 처리를 해도 된다.)  

 

 required 는 <input> 태그의 required 속성은 폼 데이터(form data)가 서버로 제출되기 전 반드시 채워져 있어야 하는 입력 필드를 명시합니다.

 

required 속성이 제대로 동작하는 <input> 요소의 type 속성값은 다음과 같습니다.

- checkbox, date, email, file, number, password, pickers, radio, search, tel, text, url

 

required 속성은 불리언(boolean) 속성입니다.

불리언 속성은 해당 속성을 명시하지 않으면 속성값이 자동으로 false 값을 가지게 되며, 명시하면 자동으로 true 값을 가지게 됩니다.

 

그리고 위에 사진에서 뭔가 틀린게 하나가 있어요(아주 쉬움)

찾아보시고

 

두번째로는 별 만들기에요

우리는 이렇게 내려오는 도형을 만들건데 어떻게 만들까요. 한번 같이 고민을 해봅시다.

 

첫 번째 줄엔 하나니까

두 번째 줄엔 두 개

세 번째 줄엔 세 개

.

.

총 갯수가 10개니까 

 start를 1로 잡고 limit을 10으로 잡아봅시다. 이러면 1개씩 플러스가 되는거 아시겠죠?

for문을 사용해 보겠습니다.

<?php
	for ($a = 1; $a = 10; $a++)
    {
      for ($b = 1; $b<=$a; $b++)
      {
        print "* ";
      }
      print "<br>";
    }
 ?>

우리가 말했던 과정은 첫 번째 줄 for ($a = 1; $a = 10; $a++) 여기에 담겨 있습니다.

그런데 $b는 왜생겼고, $b<=$a는 무슨 의미를 나타낼까요

 

만약 for ($b = 1; $b<=$a; $b++)이 없다면 

*

**

***

이렇게 * 검정 별만 세로로 나열 됐을거에요. 이거 알고리즘을 풀어보시면 쉽게 이해 될텐데,,

빠르게 설명하려니까 못하겠다....간단한건데.. 아무튼 도형 만들기 끝

아니 오늘은 여기까지

'PHP' 카테고리의 다른 글

[PHP] 개념과 역사 특징과 방법  (0) 2020.02.12