php 4

PHP로 할 수 있는 것

PHP 는 처음에 웹을 위한 템플릿 언어였지만 현재는 범용 언어로서 웹 뿐만아닌 CLI , GUI 앱을 제작하는 것도 가능합니다. 또한 PHP 4.4 부터는 객체지향이 도입되어 5.3 에서는 패키지를 구분짓는 네임스페이스가 생겼고요 어떤 이는 pygame 처럼 C 의 SDL 을 래핑하여 게임을 만들거나 에뮬레이터를 제작하기도 하죠 https://www.youtube.com/watch?v=A1wWRXh6kwY php 와 sdl 로 제작된 닌텐도 nes 에뮬레이터 PHP 를 cli 즉 터미널용으로 실행할때는 cron을 통한 배치작업이나 컴포저같은 라이브러리 관리툴을 제작할 수있고 주력으로 널리쓰이는 곳은 웹서버 제작입니다. PHP 의 대표적인 프레임워크는 라라벨, 심포니가 있으며 CMS 로는 그누보드, 워드..

PHP 2022.11.20

PHP 동작방식 - 생명주기

PHP 재단 소식 보다가 PHP internals Book을 정리한다고 해서 보게 되었습니다. 생명주기: 프로그램은 시작되고 어떤 것이 로딩되고 실행 후 끝나고 하는 생명주기가 있습니다. PHP The internals Book (PHP 내부 동작에 관한문서) 에 관련 내용이 자세하게 나와있습니다. PHP로 작성한 코드를 실행하는 환경은 크게 두 가지가 있습니다. 1) CLI (터미널에서 실행) 하나의 요청을 처리하는 환경, 2) 웹 서버와 SAPI 인터페이스를 통해 여러 웹 요청을 처리하는 환경입니다. 1. 의 경우 간단한데요 php -s 로 시작하는 php내장 개발 서버도 여기에 해당하죠 PHP 엔진에서 해당 프로그램을 실행 후 종료합니다. 2. 웹서비스를 하려면 PHP를 nginx , 아파치등 웹서..

PHP 2022.03.27

코드이그나이터 3 REST api 라이브러리 문제들

코드이그나이터3에서 기본적인 URL라우팅 구조는 다음과 같습니다. 폴더/컨트롤러 클래스이름/함수이름 이런구조인데요 ci3 에서 restful api를 지원하는 라이브러리들은 저기 함수를 변형하여 login_post() / login_get() 이런식으로 함수이름 뒤에 http메서드를 넣습니다. 이제 api를 만들어보면 api폴더하위에 Reservation 컨트롤러에서 이런일이 생기죠 class Reservation extends RestController { public function __construct() { parent::__construct(); $this->load->library('ReservationService'); $this->load->library('session'); } //예약확..

PHP 2020.12.31

PHP SQL인젝션과 mysqli bind_param

예전에 작성한 PHP코드를 살펴보니 mysqli 로만 되어있을 뿐 쿼리에 변수를 그대로 대입해서 SQL인젝션 공격에 취약했습니다. $query = "insert into parktable (total,big,mid,small,date) values ($total,$big,$md,$sm, $today)"; $result = mysqli_query($dbConnect,$query); 공격자가 변수에 다른 SQL문을 보내서 테이블을 지우거나 계정을 바꿀 수도있는 보안에 심각한 상황입니다. https://modernpug.github.io/php-the-right-way/#mysql_extension PHP: The Right Way 한국어판 쉽게 읽을 수 있는 PHP의 베스트 프랙티스, 코딩 표준, 권위있는 ..

PHP 2020.04.06