외우지말고 이해하라.

외우는 것 보단 이해해서 내것으로 만들어 활용하기

Web Back-End 11

PHP 학습 04 - SQL 인젝션

- SQL 인젝션 해킹 기법 학습 - - 비밀번호 가 들어갈 부분에 코드를 넣어 해킹 ex) ' OR '' = '' PW 부분에 입력하면 ''=''는 참이므로 로그인이 된다. - 해결 방법 : SQL 인젝션을 막아주는 PHP 함수를 사용 - mysqli_real_escape_string() ### PHP, DB 학습 02 - SQL 인젝션 해킹 방어 : 다른 방법 stmt 쿼리 - $sql = "SELECT * FROM MEMBER AS M WHERE M.loginId = ? AND M.loginPw = ?" - $stmt -> $dbConn->prepare($sql); - $stmt -> bind_param('ss', $loginId,$loginPw); - $stmt -> $stmt->execut();..

Web Back-End/PHP 2021.06.01

PHP 학습 03 - DB 와 연결하기

% 같은 경우 들어오는 모든 아이피를 수신 하는 것이며, 특정 아이피를 지정하기 위해서는 이부분에 입력하여주면 됩니다. GRANT 로 사용자 생성. 사용자 조회후, 사용자가 만들어졌는지 확인하고 해당 사용자를 사용. - 비밀번호는 암호화 되어있음으로 잘 기억하자. PHP 와 DB 연결 $dbConn = mysqli_connect("주소", "db사용자", "db비밀번호", "db 데이터베이스") - DB 연결 $sql = "" - 변수를 주고 사용하려는 쿼리문을 작성 $rs = mysqli_query($dbConn, $sql); - 담아놓은 변수를 이용해 쿼리문 실행한 값을 rs에 저장 $article = mysqli_fetch_assoc($rs); - rs값을 하나 가져와 article 변수에 저장, ..

Web Back-End/PHP 2021.05.23

PHP 학습 02 - 기본문법, $_GET[], dump, intval , isset

1. php 기본 문법 : php 사용 태그 $var = 1; : 변수 선언 echo $var : echo = 출력 exit; : exit; = 프로그램 종료 (디버깅용) 2. $_GET[] $dan = $_GET['dan']; localhost:8020/dan.php?dan=4 4를 받아 저장 (단, 저장될때 string 으로 저장됌.) 3. var_dump($dan); 변수의 형을 확인 4. intval $dan = intval($_GET['dan']); 변수를 int형으로 변경 5. isset 해당 변수가 null 이면 false 아니면 true if(isset($_GET['dan'])){ $_GET['dan'] = 1; } 단 * =

Web Back-End/PHP 2021.05.23

PHP 학습 01 - PHP 환경 설정 & XAMPP httpd.conf 설정

* http.conf 포트 & Directory 설정 1. 포트 설정 : Listen 8020 , ServerName localhost: 8020 - 80포트는 이미 사용중인 포트일수 있으니 (포트에서 오류가 발생하면) 8020으로 변경 2. Directory 설정 AllowOverride none Require all granted Apache에서 사용되는 모든 파일을 대상으로 접근 제한을 설정할 수 있다. Require all denied 를 all granted 로 변경 3. Include conf/extra/httpd-mpm.conf 를 찾아 주석처리 # Include conf/extra/httpd-mpm.conf * PHP 환경 설정 1. xampp 폴더에 htddocs 파일들 삭제 -> 삭제후..

Web Back-End/PHP 2021.05.23

MySQL 학습 02 - IFNULL, union, TRUNCATE

1. IFNULL( 'TRUE', 'FALSE') 참일시 앞부분, 거짓일시 뒷부분이 출력. 2. union 여러 검색문을 묶어 검색내용을 한번에 처리 - 유니온의 규칙 1. 하나의 ORDER BY만 사용할 수 있다. 2. 각 SELECT의 열수, 표현식가 같아야 한다. 3. SELECT 문들 끼리 순서는 상관없다. 4. 유니온을 한 결과가 중복되면 하나만 나온다. (DEFAULT) 5. 열의 타입은 같거나 반환 가능한 형태여야 한다. 6. 중복값을 나타내고 싶다면 UNION ALL 3. TRUNCATE artcile; article 테이블의 모든 내용을 지운다 # a6 DB 삭제/생성/선택 CREATE DATABASE `a6`; DROP DATABASE IF EXISTS `a6`; USE `a6`; # ..

Web Back-End/MySQL 2021.05.21

MySQL 학습 01 - UNSIGNED, AUTO_INCREMENT , INNER JOIN

1. UNSIGNED 모든 Integer타입들은 속성으로 UNSIGNED를 가지고 있는데 이타입은 칼럼내에서 음수를 포함하지 않거나 혹은 수의 range를 양수쪽으로 더 넓게 가지고싶을때 사용한다. 쉽게 이해하기위해서 예를 들어보겠다. 위에테이블처럼 Type이 INT에 속성값이 UNSIGNED이면 컬럼의 range는 UNSIGNED없을때와 같지만 엔드포인트가 -2147483648 부터 2147483647 에서 --> 0 부터 4294967295. 로 늘어나게된다. 출처: https://donggu1105.tistory.com/28 [인생은 속도가 아니라 방향이다] 2. AUTO_INCREMENT 테이블 컬럼에 AUTO_INCREMENT 를 지정하기 위한 조건 : 기본키여야 적용된다. 이미 만들어진 테이블..

Web Back-End/MySQL 2021.05.18

MySQL 연습장 02

# 기존에 a2 데이터베이스가 존재 한다면 삭제 DROP DATABASE IF EXISTS `a2`; # 새 데이터베이스(`a2`) 생성 CREATE DATABASE `a2`; # 새 데이터베이스(`a2`) 선택 USE a2; # article 테이블 생성(id, regDate, title, body) CREATE TABLE article( id VARCHAR(100), regDate DATETIME, title VARCHAR(100), BODY VARCHAR(100) ); ALTER TABLE article MODIFY regDate DATETIME; DELETE FROM article WHERE BODY = '네용'; # article 테이블 조회(*) SELECT * FROM article; # a..

Web Back-End/MySQL 2021.05.18