auto_increment 속성을 주는 컬럼은 항상 기본키(primary key)로 지정되어야 한다.

auto_increment 속성을 부여하는 컬럼에는 primary key 속성도 함께 지정해 주어야 한다. 만약, primary key 속성을 지정하지 않은 상태에서 auto_increment 속성을 부여하면 문법적 오류를 발생시킨다. 이 때 not null 속성은 주지 않아도 문법적 오류를 발생시키지 않지만 primary key 속성은 오류를 발생시킨다.

반응형

'APM' 카테고리의 다른 글

JavaScript 대화상자 - Alert, Confirm, Prompt  (0) 2020.01.30
[Linux] configure, make, make install 개념  (0) 2020.01.30
[PHP] 쿠키와 세션  (0) 2020.01.30
[PHP] PHP 파일 업로드 구현  (0) 2020.01.23
[error] 533 could not create file  (0) 2020.01.23
  • Alert는 단순히 메시지를 전달하는 역할만 합니다. 반환하는 값이 없습니다.

ex) 버튼 클릭 시 메세지 띄우기

<button id="button1" onclick="button1_click();">버튼1</button>


<script>
function button1_click() {
        alert("버튼1을 누르셨습니다.");
}
</script>

 

  • Confirm은 true 또는 false를 반환합니다. (확인을 클릭하면 true, 취소를 클릭하면 false를 반환)

ex) 확인 클릭 페이지 이동

<button id="button1" onclick="button1_click();">버튼1</button>


<script>
function button1_click() {
	var answer;

	answer = confirm("데이터를 삭제하시겠습니까?");
	//확인을 선택한 경우 자바스크립트를 호출할 때 같이 넘어온 url이라는 변수에 들어있는 주소로 페이지 이동

	if(answer == true){
      	 	location = url;
	}
}
</script>

 

  • Prompt는 사용자가 입력한 값을 받아옵니다.
반응형

'APM' 카테고리의 다른 글

[Mysql] auto_increment 사용할 때 주의할 점  (0) 2020.01.30
[Linux] configure, make, make install 개념  (0) 2020.01.30
[PHP] 쿠키와 세션  (0) 2020.01.30
[PHP] PHP 파일 업로드 구현  (0) 2020.01.23
[error] 533 could not create file  (0) 2020.01.23

1. configure

 configure는 소스파일에 대한 환경설정을 해주는 명령어다.(configure뒤에 옵션을 넣음) 서버환경에 맞쳐 makefile을 생성해주는 과정이다.

 컴파일에 필요한 시스템 파일들은 어디에 위치해 있으며, 어떤곳에 설치를 하겠다고 지정을 하는 것이다.

) # ./configure --prefix = /usr/local/mysql 하게 되면 어떤 파일을 /usr/local/mysql 이라는 곳에 설치 하겠다는 뜻.

 

2. make

 make는 소스를 컴파일 하는 것이다.

소스파일을 사용자가 실행 가능한 파일로 만들어 주는 과정을 말한다. make 과정이 끝나고 나면 설치파일(Setup 파일 같은 것)이 생성된 상태라고 볼 수 있다.

 

3. make install

make install make를 통해 만들어진 설치파일(setup)을 설치를 하는 과정이다.

반응형

'APM' 카테고리의 다른 글

[Mysql] auto_increment 사용할 때 주의할 점  (0) 2020.01.30
JavaScript 대화상자 - Alert, Confirm, Prompt  (0) 2020.01.30
[PHP] 쿠키와 세션  (0) 2020.01.30
[PHP] PHP 파일 업로드 구현  (0) 2020.01.23
[error] 533 could not create file  (0) 2020.01.23

DB에서 정보 조회를 경우에는 연결을 하고 쿼리문을 돌리고 연결을 끊게 된다.

이러한 작업보다 간단하게 데이터를 조회하는 방식으로 등장한 것이 쿠키와 세션이다.

클라이언트나 서버 둘 중 어디에 저장할건지에 따라 나뉘게 된다.

 

 

쿠키 클라이언트(ex) 크롬, 익스플로우 등등

브라우져 (크롬 쿠키 따로 / 익스플로우 쿠키 따로)로 저장을 한다.

홈페이지에 중복되는 내용을 쿠키에 저장하게 되면 변경사항만 받아오면 되기 때문에 새로고침할  업로드 속도가 빨라지게 된다. (요청할 때마다 다시 주는 것이 번거로우니까 가지고 있는 )

ex) 자동로그인,  게시글  달라지는 

※ css 변경  적용안되면 쿠키를 삭제해본다.

※ F12 application 탭에 쿠키정보 확인 가능

 

Session(셰션) 서버에 저장을 한다.

쿠키에 저장하기에 보안적으로 문제가 만한것을 저장한다. 창을 닫으면 셰션이 파괴 된다. 파괴되면 다시 쓰지 못한다. (마치 자유이용권을 잘라버리는 것과 같다.)

ex) 로그인 유무 판별, 로그인, 로그아웃 

세션은 쿠키와 달리 보안상 로그인 정보를 서버에 저장하여 사용자들의 로그인 정보에 대한 보안을 한층 업그레이드 할 수 있게 해줍니다.

 

PHP 세션에 사용자 정보를 저장하기 전에, 먼저 세션을 시작해야 합니다.

Note: session_start() 함수 <html> 태그 앞에 와야 합니다.

<?php session_start(); ?>



<html>

  <body>



  </body>

</html>

 

세션을 등록하기 위해서는 가장먼저 세션을 초기화 하여 세션을 생성하고, 현재의 세션 아이디를 활성화시키기 위해 session_start()함수를 사용한다.

PHP에서는 session_start() 함수를 이용하여 새로운 세션을 시작하거나, 기존의 세션을 다시 시작할 수 있습니다. session_start() 함수는 세션 아이디가 이미 존재하는지를 확인하고, 존재하지 않으면 새로운 아이디를 만듭니다. 만약 이미 존재하는 세션 아이디가 있을 때는 원래 있던 세션 변수를 다시 불러와서 사용할 수 있도록 합니다.

 

 

반응형
  1. php.ini -> file_upload=On; 변경
  2. file_upload_form.php
<html>
<head>

<title>FileUploadForm</title>

</head>

<body>

	<h1>FileUploadExample</h1>

	<form action="./file_upload.php"enctype="multipart/form-data"method='post'>

	<inputtype='file'name='myfile'>

	<button>보내기</button>

	</form>

</body>

</html>

 

   3. file_upload.php

<?php

//설정시작

$uploads_dir='./uploads';

$allowed_ext=array('jpg','jpeg','png','gif');

$field_name='myfile';

//uploads디렉토리가없다면생성

if(!is_dir($uploads_dir)){

if(!mkdir($uploads_dir,0777))

{

die("업로드디렉토리생성에실패했습니다.");

};

}



if(!isset($_FILES[$field_name]))

{

die("업로드된파일이없습니다.");

}

//변수정리

$error=$_FILES[$field_name]['error'];

$name=$_FILES[$field_name]['name'];

//오류확인

if($error!=UPLOAD_ERR_OK){

switch($error){

caseUPLOAD_ERR_INI_SIZE:

caseUPLOAD_ERR_FORM_SIZE:

echo"파일이너무큽니다.($error)";

break;

caseUPLOAD_ERR_PARTIAL:

echo"파일이부분적으로첨부되었습니다.($error)";

break;

caseUPLOAD_ERR_NO_FILE:

echo"파일이첨부되지않았습니다.($error)";

break;

caseUPLOAD_ERR_NO_TMP_DIR:

echo"임시파일을저정할디렉토리가없습니다.($error)";

break;

caseUPLOAD_ERR_CANT_WRITE:

echo"임시파일을생성할수없습니다.($error)";

break;

caseUPLOAD_ERR_EXTENSION:

echo"업로드불가능한파일이첨부되었습니다.($error)";

break;

default:

echo"파일이제대로업로드되지않았습니다.($error)";

}

exit;

}



$upload_file=$uploads_dir.'/'.$name;//저장될디렉토리및파일명

$fileinfo=pathinfo($upload_file);//첨부파일의정보를가져옴

$ext=strtolower($fileinfo['extension']);



$i=1;



while(is_file($upload_file))

{

$name=$fileinfo['filename']."-{$i}.".$fileinfo['extension'];

$upload_file=$uploads_dir.'/'.$name;

$i++;

}



if(!in_array($ext,$allowed_ext)){//확장자확인

echo"허용되지않는확장자입니다.";

exit;

}



if(!move_uploaded_file($_FILES[$field_name]['tmp_name'],$upload_file)){//파일이동

echo"파일이업로드되지않았습니다.";

exit;

}



?>

<html>

<head>

<title>FileUpload</title>

</head>

<body>

  <h1>FileUploadExample</h1>

  <h2>파일정보</h2>

  <ul>

  <li>파일명:<?phpecho$name;?></li>

  <li>확장자:<?phpecho$ext;?></li>

  <li>파일형식:<?phpecho$_FILES[$field_name]['type'];?></li>

  <li>파일크기:<?phpechonumber_format($_FILES[$field_name]['size']);?>바이트</li>

  </ul>

  <ahref="./file_download.php?file=<?phpecho$name;?>">다운로드</a>

</body>

</html>

 

※ move_uploaded_file($_FILES['attachment']['tmp_name'], $file)

: move_uploaded_file는 서버 파일을에 업로드해주는 함수

: $_FILES['input']에서 가져온 ['name값']['tmp_name'] 여기서 'tmp_name'는 임시파일명을 지정해주는것이다. 꼭 'tmp_name'를 쓸것

: $file에는 업로드할 경로와 업로드할 파일명을 합쳐 올린다.

ex) 업로드할 경로는 uploads/ 이고, 업로드할 파일명은 test.txt일경우

uploads/test.txt를 만들어올린다. (따라서 'uploads/test.txt' 이렇게 쓰라는 말임)


 

[error] 업로드 디렉토리 생성에 실패했습니다.

=> 서버에 업로드 파일 생성해줘야한다.

root@choi-VirtualBox:/usr/local/apache24/htdocs# mkdir uploads

 

[error] 파일이 업로드 되지 않습니다. move_uploaded_file

=> 파일 권한을 부여해야한다.

root@choi-VirtualBox:/usr/local/apache24/htdocs# chmod 777 uploads   // 권한 부여

/// 777 : 사용자, 그룹, 다른 사용자의 모든 권한을 추가한다.

root@choi-VirtualBox:/usr/local/apache24/htdocs# ls -l                      // 권한 확인

-> 적용되려면 아파치 재시작해야함

 

 

 

반응형

'APM' 카테고리의 다른 글

[Linux] configure, make, make install 개념  (0) 2020.01.30
[PHP] 쿠키와 세션  (0) 2020.01.30
[error] 533 could not create file  (0) 2020.01.23
[error] 아파치 재시작 시 오류  (0) 2020.01.23
VM(Virtual Machine)이란?  (0) 2020.01.22

원인

업로드되는 폴더에 허용 권한이 없어서 생기는 문제이다.

 

해결

root 권한 계정으로 들어가서, 아래와 같이 명령어로 권한 문제를 해결해준다.

username은 ftp에서 사용할 계정명이다.

 

username@username:/$ sudo chown -R username /경로.../폴더명

반응형

'APM' 카테고리의 다른 글

[PHP] 쿠키와 세션  (0) 2020.01.30
[PHP] PHP 파일 업로드 구현  (0) 2020.01.23
[error] 아파치 재시작 시 오류  (0) 2020.01.23
VM(Virtual Machine)이란?  (0) 2020.01.22
리눅스 서버 시간이 이상할 때  (0) 2020.01.21

ob for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details.

구동중인 httpd 데몬을 전부 종료하고 다시 시작한다.

종료:

killall -9 httpd

구동:

/usr/local/apache2/bin/apachectl start

 

그래도 정상 구동이 되지 않을 시 해당 httpd.pid 파일을 삭제하고 재시작한다.

해당 파일은 구동 시 자동 생성 되는 파일이므로 삭제 후 재시작을 하여도 무방하다.

반응형

'APM' 카테고리의 다른 글

[PHP] PHP 파일 업로드 구현  (0) 2020.01.23
[error] 533 could not create file  (0) 2020.01.23
VM(Virtual Machine)이란?  (0) 2020.01.22
리눅스 서버 시간이 이상할 때  (0) 2020.01.21
[error] data dictionary initialization utf8 문제  (0) 2020.01.21
  • VM(Virtual Machine)이란?

:  일반적으로 시스템 VM에서 VM이 설치되는 기본 OS를 호스트 OS라고 정의하고, 호스트OS 위에 설치되는 가상 OS를 게스트 OS로 정의 한다.

   - 멀티 부팅 : 하나의 물리적인 H/W에 동일 레벨의 OS가 여러개 설치된 것으로 한 시점에서 하나의 OS밖에 사용할 수가 없지만 하나의 컴퓨터에서 여러 OS를 사용이 가능하다.

  - VM 부팅 : 하나의 물리적인 H/W위에 호스트 OS 있고 호스트 OS위에 여러 게스트 OS 올릴 있으며 하드웨어의 성능에 따라 동시에 여러 OS 운영할 있는 장점이 있다.

 

  • VirtualBox
    • : Oracle에서 개발하는 가상화 소프트웨어다. 상업적인 목적이 아니라면 무료로 사용할 수 있다.
    • 스냅샷 제공 / 무료
  • VMware Player
    • : VMware로 많이 알려져 있는데, 고급 기능을 빼고 개인 사용자에게 무료로 배포되는 소프트웨어다.
    • 스냅샷 유료 / 고급 기능 사용 유료

스냅샷이란? :  PC 상태를 저장하고 언제든지 복구할  있다. ( 백업 기능 )

 

반응형

+ Recent posts