>  기사  >  백엔드 개발  >  후배 PHP 개발자들이 자주 묻는 5가지 질문

후배 PHP 개발자들이 자주 묻는 5가지 질문

怪我咯
怪我咯원래의
2017-01-16 11:34:501285검색

1. 파일 업로드 시 주의해야 할 사항은 무엇인가요? 지정된 디렉토리에 파일을 저장하는 방법은 무엇입니까? 이름이 중복된 파일을 업로드하는 문제를 피하는 방법은 무엇입니까?

1) 먼저 php.ini에서 파일 업로드를 활성화해야 합니다.

2) php.ini에 허용되는 최대 업로드 값은 2MB입니다. 필요에 따라 변경될 수 있습니다.

3) 양식 업로드 시 반드시 양식 태그에 enctype="multipart/form-data"를 적어주세요.

4) 필수입니다.

5) type="file"로 양식 컨트롤을 설정하고 이름 속성 값이 있어야 합니다.

6) 업로드한 파일의 크기가 기준을 초과하는지, 파일 형식이 요구 사항을 충족하는지, 업로드 후 저장될 경로가 있는지 확인해야 합니다

7). 페이지, 수신 페이지는 $_FILES를 사용하여 업로드된 파일을 수신합니다. $_FILES는 다차원 배열입니다.

1차원 아래 첨자는 업로드 컨트롤의 이름이고, 2차원 아래 첨자는 이름/유형/tmp_name/size/error입니다.

은 각각 파일명, 파일 형식, 임시 디렉터리에 업로드된 임시 파일 이름, 파일 크기, 오류 유무를 나타냅니다.

일괄 업로드인 경우 2차원 첨자는 문자열이 아닌 배열입니다.

8) 파일이 업로드된 후, 업로드된 파일을 지정된 디렉터리에 저장하려면 move_uploaded_file() 함수를 사용해야 합니다.

9) 중복된 이름의 파일 업로드를 방지하려면 업로드된 파일 이름에서 파일 접미사를 가져온 다음 타임스탬프 + 파일 접미사를 사용하여 파일 이름을 바꿀 수 있습니다.

2. $_REQUEST, $_GET, $_POST 및 $_COOKIE의 관계 및 차이점:

  1. 관계: $_REQUEST에는 $_GET, $_POST, $_COOKIE가 포함됩니다. 모든 내용은 그 내용의 모음입니다.

  2. $_GET, $_POST, $_COOKIE 모두 $_REQUEST에 복사본이 있습니다. $_REQUEST 값을 변경해도 $_GET 등에 영향을 주지 않으며 그 반대도 마찬가지입니다.

  3. GET과 POST의 이름이 같은 경우 $_REQUEST는 POST의 값을 사용합니다. COOKIE가 GET 또는 POST와 동일한 이름을 갖는 경우 $_REQUEST는 COOKIE 값을 사용합니다. COOKIE가 가장 높은 우선순위를 갖습니다. 실수.

3. SQL 인젝션이란? SQL 주입을 방지하는 방법은 무엇입니까?

SQL 인젝션 공격은 해커가 데이터베이스를 공격하기 위해 사용하는 일반적인 수단 중 하나입니다. 일부 프로그래머는 코드를 작성할 때

사용자 입력 데이터의 적법성을 판단하지 않고 인젝터가 양식에 데이터베이스 쿼리 코드를 입력하여 제출하면

프로그램이 이를 제출한다는 정보를 제공합니다. 완전한 SQL 문을 생성하기 위해 함께 뭉쳐지고, 서버는 속여 악성 SQL 명령을 실행하게 됩니다. 프로그램에서 반환된 결과를 바탕으로 인젝터

는 일부 민감한 데이터를 성공적으로 획득하고 심지어 전체 서버를 제어합니다. 이것이 바로 SQL 인젝션입니다.

제출된 정보를 필터링하려면 작은따옴표를 이스케이프 처리하세요.

먼저, 제출 후 모든 작은따옴표가 이스케이프되도록 php.ini에서 설정할 수 있습니다. 아니면 addlashes()를 사용하세요.

4. MVC의 개념은 무엇인가요?

MVC(Model-View-Controller)는 1980년대에 발명된 소프트웨어 디자인 패턴 또는 프로그래밍 아이디어입니다.

M은 (모델) 모델 레이어, V는 (뷰) 뷰 레이어(표시 레이어 또는 사용자 인터페이스), C는 (컨트롤러) 컨트롤 레이어를 의미합니다.

mvc를 사용하는 목적은 M과 V를 분리하여 하나의 프로그램이 서로 다른 사용자 인터페이스를 쉽게 사용할 수 있도록 하는 것입니다.

C의 존재 목적은 M과 V 사이의 조절 역할을 수행하여 M과 V의 동기화를 보장하는 것입니다. M이 변경되면 V도 동시에 업데이트되어야 합니다.

M과 V를 분리하면 동일한 웹페이지가 다른 휴일이 올 때 다른 페이지 스타일을 표시할 수 있습니다. 이는 미리 여러 ​​뷰 레이어 템플릿 페이지를 만들기만 하면 됩니다.

M 레이어를 변경할 필요가 없습니다. 프로그램.

MVC는 프로그래밍에 있어 분업과 협력을 실현하고, 코드 재사용성을 극대화하며, 프로그램 로직을 보다 명확하고 체계화하여 향후 유지 관리가 더 쉬워집니다.

웹사이트 개발에서

모델 레이어는 일반적으로 데이터베이스 테이블 정보의 추가, 삭제, 수정, 확인을 담당하고,

뷰 레이어는 페이지 콘텐츠 표시를 담당합니다. ,

컨트롤 컨트롤러 계층은 M과 V 사이에서 조절 역할을 합니다. 컨트롤러 계층은

이 실행된 후 어떤 모델 클래스를 호출할지 결정합니다. 결과를 할당할 뷰 레이어입니다.

5. $this, self, parent는 각각 무엇을 의미하나요? 사용 시기

$this는 현재 객체를 나타냅니다. self는 현재 클래스를 나타냅니다. parent는 현재 클래스의 상위 클래스를 나타냅니다.

사용 사례:

$this만 가능합니다. 현재 클래스에서 사용되며, 현재 클래스의 속성과 메소드는 $this->를 통해 호출할 수 있습니다.

self는 현재 클래스에서만 사용할 수 있으며 다음을 통해 현재 클래스에서 액세스할 수 있습니다. 범위 연산자:: 클래스 상수, 현재 클래스의 정적 속성 및 현재 클래스의 메서드

부모는 부모 클래스와 함께 현재 클래스에서만 사용할 수 있으며 부모 클래스의 클래스 상수에 액세스합니다. 범위 연산자:: , 상위 클래스의 정적 속성, 상위 클래스의 메서드를 통해.

은 연산자를 사용할 때 사용됩니다.

a) 이 클래스에서는:

i.self:: 클래스 상수

ii.self:: 정적 속성

iii.self::method() parent::method()

b) 하위 클래스:

i.parent::class 상수

ii.parent::정적 속성(공개 또는 보호)

iii.parent::Method ()(공개 또는 보호)

c) 클래스 외부:

i .클래스 이름::클래스 상수

ii. 클래스 이름:: 정적 속성(공개)

iii. 클래스 이름:: 정적 메서드(공개)


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:PHP의 쿠키와 세션다음 기사:PHP의 쿠키와 세션