html/php 학습

Simcurity·2023년 4월 26일
0

html/css/javascript/php

목록 보기
1/4

오늘부터 html, css, javascript, php를 배워보려고 합니다.
학습을 시작한 이유는 웹에 대한 매커니즘을 더 알고싶고 보안기사 공부하며 php언어를 진짜 많이 봤었는데 보면 볼수록 재밌어서 언젠가 꼭 한번 배워보고 싶었기 때문입니다 ㅎㅎ
일단 웹 서버는 우분투 GUI로 설정하였습니다.
책은 즐겨보는 유튜버 생활코딩의 PHP+MYSQL 책을 구매하였습니다. 이 분 정말 잘 가르치십니다 ㅎㅎ

책에서는 윈도우에서 php 환경을 구축하였지만 저는 우분투에 구축을 하였습니다.

ln /etc/php/8.1/apache2/php.ini /etc/php.ini

php 설정파일 심볼릭 링크 생성
php.ini파일에서

display_errors = Off
opcache.enable=0

보안기사 때 배운것들을 실제로 해보니 신기하고 감회가 새롭다 ㅎㅎ
display_errors=Off는 오류 반환 시 어떠한 정보도 주지 않는다는 설정으로 Off로 비활성화
opcache.enable=0은 파일 수정 시 바로 수정을 반영하기 위한 설정

웹 서버는 사용자의 .html 요청의 경우 자신이 처리할 수 있으므로 해당 요청 데이터를 전송해주지만 .php의 요청의 경우 자신이 처리할 수 없고 php프로그램이 처리할 수 있으므로 php프로그램에게 요청을 전달해 해당 응답을 사용자에게 전달

1. 연산자 및 문자열

/var/www/html 위치에 index.php 파일 생성

<!DOCTYPE html>
<html>
	<body>
    	<?php
        	echo date('Y-m-d H:i:s');
        ?>
    </body>
</html>

동작 과정은 웹 서버는 php프로그램에게 요청을 하면 php프로그램은 사이의 내용을 실행한 후 (날짜와 시간으로 출력) 다시 웹 서버에게 반환한다 그리하면 웹 서버는 오직 html언어만을 인식하고 그래도 사용자에게 출력해준다.

1-1) php의 연산자

<!DOCTYPE html>
<html>
        <body>
                <h1>Number and Arithmetic Operator</h1>

                <h2>1+1</h2>
                <?php
                        echo 1+1;
                ?>
                <h3>2-1</h3>
                <?php
                        echo 2-1;
                ?>
                <h4>2*2</h4>
                <?php
                        echo 2*2;
                ?>
        </body>
</html>

페이지 소스코드에는 php코드가 보이지 않습니다. 왜냐하면 <?php?>의 사이에 있는 php코드들은 php 프로그램이 정적인 문자로 바꿔준 후 웹 서버에게 다시 전달함으로써 웹 서버는 있는 그대로 문자만을 보여주기 때문

1-2) php의 문자열

' (single quoted), " (double quoted)
. (문자 결합 연산자)

<!DOCTYPE html>
<html>
        <body>
                <h1>string and operator</h1>
                <?php
                        echo "hello \"w\"orld";
                ?>
                <h2>concatenation</h2>
                <?php
                        echo 'hello'.'world';
                ?>
        </body>
</html>

문자열 길이 체크 함수

strlen()

echo strlen('hello'.'world');

2. 변수

변수는 항상 앞에 $를 붙입니다.

<!DOCTYPE html>
<html>
        <body>
                <?php
                $a=1;
                echo $a+1;
                ?>
        </body>
</html>

만약 sim이라는 단어가 여러번 쓰이고 그 줄의 길이가 몇 천줄의 경우 우리는 sim을 수정하려 할 때 엄청난 고통을 받을것입니다. 그렇기에 $name이라는 변수에 "sim"을 넣어 $name변수로 대체시킨다면 $name의 값만 바꿔주어도 쉽게 수많은 "sim"값을 바꿀 수 있습니다.

3. URL 파라미터

hello sim을 출력하는 페이지를 만들었지만 만약 수 많은 사람들의 이름에게 인사하는 페이지를 만들려면 수 많은 페이지를 만들어야 하지만 php를 이용해 하나의 페이지로 파라미터 값을 받아 수많은 사람들에게 인사를 할 수 있습니다

<!DOCTYPE html>
<html>
        <head>
                <meta charset="utf-8">
        </head>
        <body>
        hello <?php echo $_GET["name"];?>
        </body>
</html>


URL을 보면 name이라는 파라미터에 nam이라는 값을 넣은 경우

4. URL 파라미터 활용

<!DOCTYPE html>
<html>
	<head>
    	<meta charset="utf-8">
        <title></title>
    </head>
    <body>
    	<h1>WEB</h1>
        <ol>
        	<li><a href="index.php?id=HTML">HTML</a></li>
            <li><a href="index.php?id=CSS">CSS</a></li>
            <li><a href="index.php?id=JavaScript">JavaScript</a></li>
        </ol>
    </body>
</html>


태그 클릭 시 밑에 h2 변환

다음 시간엔 함수에 대해 공부하겠습니다

참고 : 생활코딩 PHP+MySQL

0개의 댓글