PHP v1.0 </doc>
mm2800.dothome.co.kr
mm2800.dothome.co.kr
PHP는 서버측에서 실행되는 스크립트 언어입니다.
PHP 서버사이드 스크립트 언어입니다. 자바스크립트는 웹 브라우저에서 내장된 인터프리터에 의해 해석되는 언어입니다. 즉 웹브라우저에서 이용할 수 있는 프로그램입니다. 반면에 PHP는 서버에 설치된 PHP에 의해 해석됩니다. 이러한 처리를 가능하게 해주는 프로그램은 php, jsp, asp등이 있으며, 워드프레스, 줌라, XE, 카페24, tistroy 등의 플램폼 역시 PHP을 긱반으로 하고 있습니다.
<?php
//실행코드
?>
//한줄
/* 여러줄 */
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
echo "hello php"
?>
</body>
</html>
변수는 여러가지 값으로 변할 수 있는 수를 의미합니다.
$변수명 = 값;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>php</title>
<script>
//변수명에 javascript를 저장하고 출력하세요!
var x = "javascript";
document.write(x);
document.write("<br>");
document.write("나는" + x + "를 배우고 있습니다.");
document.write("<br><br>");
</script>
</head>
<body>
<?php
$php = "php";
echo $php;
echo "<br>";
echo "나는" . $php . "를 배우고 있습니다.";
echo "<br>";
echo "나는 {$php}를 배우고 있습니다.";
echo "<br>";
echo "나는 \"{$php}\"를 배우고 있습니다.";
echo "<br>";
echo "나는 \$15를 사용했습니다.";
?>
</body>
</html>
배열은 여러개의 값을 변수에 저장 할 수 있습니다.
$변수명 = array();
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script>
var korea = new Array();
korea[0] = "seoul";
korea[1] = "busan";
document.write(korea[0]);
document.write("<br>");
document.write(korea[1]);
</script>
</head>
<body>
<?php
$korea = array();
$korea[0] = "seoul";
$korea[1] = "busan";
echo $korea[0];
echo "<br>";
echo $korea[1];
echo "<br>";
$korea['city'] = 'gangnam';
echo $korea['city'];
?>
</body>
</html>
array_push(변수명, 배열에 드어갈 값, 배열에 들어갈 값,.....)
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>array_push</title>
</head>
<body>
<?php
$fruit = array();
array_push($fruit, 'apple', 'banana', 'grape', 'coconut', 'melon');
echo $fruit[0]."<br>";
echo $fruit[1]."<br>";
echo $fruit[2]."<br>";
echo $fruit[3]."<br>";
echo $fruit[4]."<br>";
?>
</body>
</html>
$변수명[인덱스1] [인덱스2] = 값;
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?
$earth = array();
$earth['nation'][0] = 'korea';
$earth['nation'][1] = 'america';
$earth['nation'][2] = 'canada';
$earth['nation'][3] = 'japan';
$earth['nation'][4] = 'china';
$earth['nation'][5] = 'france';
//배열의 내용을 보여줍니다.
var_dump($earth);
echo "<br><br>";
echo $earth['nation'][4];
?>
</body>
</html>
연산자 | 예시 | 설명 |
---|---|---|
+ |
$x + $y | 더하기 |
- |
$x - $y | 뻴셈 |
* |
$x * $y | 곱하기 |
/ |
$x / $y | 나누기 |
% |
$x % $y | 나머지 |
연산자 | 설명 | 표현 |
---|---|---|
++ |
++ $x / $x ++ | 선 증가 연산자 / 후 증가 연산자 |
-- |
-- $x / $x -- | 선 감소 연산자 / 후 감소 연산자 |
연산자 | 예시 | 설명 |
---|---|---|
== |
$x == $y | 좌변과 우변이 값이 같을 경우 true |
=== |
$x === $y | 좌변과 우변이 값이 같거나 데이터형도 같을 경우 true |
!= |
$x != $y | 좌변과 우변의 값이 같지 않을 경우 true |
!== |
$x !== $y | 좌변과 우변의 값이 같지 않을 경우, 또는 데이터형이 다른 경우 true |
> |
$x > $y | 좌변이 우변보다 클 경우 ture |
< |
$x < $y | 좌변이 우변보다 작을 경우 true |
>= |
$x >= $y | 좌변이 우변보다 크거나 같을 경우 ture |
<= |
$x <= $y | 좌변이 우변보다 작거나 같을 경우 true |
연산자 | 예시 | 설명 |
---|---|---|
&& |
$X && $Y | (AND)둘다 true인 경우 true |
|| |
$X || $Y | (OR)둘 중의 하나 이상이 true이면 true |
! |
!$X | (NOT)식이 false인 경우 true |
변수에 사용되는 값이 숫자인지, 문자열인지, 논리값인지를 구분하는 것을 데이터 형이라고 합니다.
데이터 | 값 |
---|---|
int or interger | 숫자 - 정수 |
double/td> | 숫자 - 소수 |
string | 문자열 |
boolen | 논리값(true, false) |
Null | 없는 값 |
array | 배열 |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>데이터 형</title>
</head>
<body>
<?
$num = 12;
echo "변수 \$num 데이터형(값: {$num})은 ".gettype($num)." 입니다.<br>";
$greeting = "안녕";
echo "변수 \$greeting 데이터형(값: {$greeting})은 ".gettype($greeting)." 입니다.<br>";
$numStr = "454512";
echo "변수 \$numStr 데이터형(값: {$numStr})은 ".gettype($numStr)." 입니다.<br>";
$fruit = "array()";
echo "변수 \$fruit 데이터형(값: {$fruit})은 ".gettype($fruit)." 입니다.<br>";
$nu = "null()";
echo "변수 \$nu 데이터형(값: {$nu})은 ".gettype($nu)." 입니다.<br>";
$bloolean = "true()";
echo "변수 \$bloolean 데이터형(값: {$bloolean})은 ".gettype($bloolean)." 입니다.<br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "문자열";
echo "데이터형 변경 전의 데이터형 ".gettype($str)." 값은 : {$str} <br>";
$str = (int) $str;
echo "데이터형 변경 후의 데이터형 ".gettype($str)." 값은 : {$str} <br>";
$str2 = "1243문자열";
echo "데이터형 변경 전의 데이터형 ".gettype($str2)." 값은 : {$str2} <br>";
$str2 = (int) $str2;
echo "데이터형 변경 후의 데이터형 ".gettype($str2)." 값은 : {$str2} <br>";
echo "<br><br>";
$str3 = "21564.564";
echo "데이터형 변경 전의 데이터형 ".gettype($str3)." 값은 : {$str3} <br>";
$str3 = (int) $str3;
echo "데이터형 변경 후의 데이터형 ".gettype($str3)." 값은 : {$str3} <br>";
echo "<br><br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//변수의 값이 짝수인지 홀수인지 판단하는 조건문을 완성하세요!
$num = 100;
if( $num % 2 == 0){
echo "짝수입니다. <br><br>";
} else {
echo "홀수입니다.";
}
$data = "문자";
if( gettype($data) == 'string'){
echo "데이터형은 문자열입니다.";
} else if ( gettype($data) == 'integer' ){
echo "데이터형은 정수형입니다.";
} else {
echo "데이터형은 문자열도 정수형도 아닙니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//변수의 값이 짝수인지 홀수인지 판단하는 조건문을 완성하세요!
$num = 100;
if( $num % 2 == 0){
echo "짝수입니다. <br><br>";
} else {
echo "홀수입니다.";
}
$data = "문자";
if( gettype($data) == 'string'){
echo "데이터형은 문자열입니다.";
} else if ( gettype($data) == 'integer' ){
echo "데이터형은 정수형입니다.";
} else {
echo "데이터형은 문자열도 정수형도 아닙니다.";
}
?>
</body>
</html>
foreach(대상변수 as 변수의 대체 이름){
//코드입력
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$member = array();
//member 배열에 0 인덱스를 생성하고 0 인덱스도 배열로 선언
$member[0] = array();
$member[0]['name'] = '양아름';
$member[0]['useID'] = 'mm2800';
$member[0]['email'] = 'ooo.ooo.oo010@daum.net';
$member[1] = array();
$member[1]['name'] = '김지호';
$member[1]['useID'] = 'ddaad';
$member[1]['email'] = 'ddaad010@naver.com';
$member[2] = array();
$member[2]['name'] = '김동현';
$member[2]['useID'] = 'love';
$member[2]['email'] = 'love@naver.com';
// for ($i=0; $i <count($member); $i++) {
// echo $member[$i]['name']."<br>";
// }
//foreach 문이 많이 사용
foreach ($member as $data) {
echo $data['name']."<br>";
}
?>
</body>
</html>
function 함수명(){
//실행 함수
}
함수명(); //함수 호출
function 함수명(파라미터){
//실행 함수
}
함수명(아규먼트); //함수 호출
시간 함수는 리눅스 시간을 출력해주는 함수입니다. 여기서 리눅스 시간이란? 1970년 1월 1일 00시 00분 00초부터 세기 시작하는 시간입니다. 시간 함수는 1970년 1월 1일 00시 00분 00초부터 몇 초가 지났는지를 반환합니다. 이 리눅스 시간을 "타임스탬프" 라고 합니다.
종류 | 설명 |
---|---|
checkdate |
주어진 날짜가 실제 존재하는 날짜인지 판단합니다. |
date |
날짜와 시간을 지정한 형식에 맞추어 반환합니다. |
getdate |
날짜와 시간을 배열로 반환합니다. |
microtime |
유닉스 형식의 시간으로 반환합니다. |
mktime |
주어진 시간을 유닉스 형식의 시간으로 반환합니다. |
time |
현재의 시간을 유닉스 형식의 시간으로 반환합니다. |
인자 | 자료형 | 설명 |
---|---|---|
format |
string | 시간과 날짜의 반환 형식을 지정합니다. |
timestamp |
int | 특정 시간을 지정합니다. |
분류 | 문자 | 설명 | 예 |
---|---|---|---|
일 | d |
일자를 두 자리로 반환합니다. | 01~31 |
D |
요일을 3글자로 반환합니다. | Mon~Sun | |
j |
일자를 0이 붙지 않는 형식으로 반환합니다. | 1~31 | |
I |
요일을 영문 단어로 반환합니다. | Sunday~Saturday | |
S |
영문 서수 접미사를 반환합니다. | st, nd, rd, th | |
w |
요일을 순자로 반환합니다. | 0(일)~6(토) | |
Z |
해당 연도의 몇 번째 날인지 반환합니다. | 0~364 | |
주 | W |
해당 연도의 몇 번째 주인지 반환합니다. | 12(연도의 12번째 주) |
월 | F |
월을 영문 단어로 반환합니다. | January~December |
m |
월을 두자리 숫자로 반환합니다. | 01~12 | |
M |
월을 영문 3글자로 반환합니다. | Jan~Dec | |
n |
월을 0이 붙지 않는 숫자로 반환합니다. | 1~12 | |
t |
해당 월의 날짜 수를 반환합니다. | 28~31 | |
년도 | L |
윤년인지 여부를 반환합니다. | 윤년이면1, 아니면0 |
Y |
연도를 4자리 수로 반환합니다. | 2018 | |
y |
연도를 2자리 수로 반환합니다. | 18 | |
년도 | a |
오전과 오후를 영문 소문자로 반환합니다. | am, pm |
A |
오전과 오후를 영문 대문자로 반환합니다. | AM, PM | |
g |
시간을 12시간 형식으로 반환하며, 0이 붙지 않습니다. | 1~12 | |
G |
시간을 24시간 형식으로 반환하며, 0이 붙지 않습니다. | 0~24 | |
h |
시간을 12시간 두 자리 형식으로 반환합니다. | 01~12 | |
H |
시간을 24시간 두 자리 형식으로 반환합니다. | 00~23 | |
i |
분을 두자리 형식으로 반환합니다. | 00~59 | |
s |
초를 두자리 형식으로 반환합니다. | 00~59 | |
날짜/시간 | c |
ISO 8601 형식의 날짜로 반환합니다. | 2017-01-01T12:00:00+09:00 |
r |
RFC 2822 형식의 날짜로 반환합니다. | Sun, 09, Jan 2019 12:00:00+09:00 | |
U |
유닉스 형식 시간을 반환합니다. | 1136041200 |
explode('나눌 문자','대상 문자열');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$email = "princess4001@naver.com";
$emailArray = explode("@", $email);
echo "<pre>";
var_dump($emailArray);
echo "이메일의 호스트 출력<br>";
echo $emailArray[1];
?>
</body>
</html>
mktime(시, 분, 초, 월, 일, 년);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
ini_set('date.timezone', 'Asia/Seoul');
echo '1970년 1월 1일 0시 0분 0초로부터' .time(). '초가 지났습니다.';
echo '<br>';
echo "현재시간은".date("Y년 m월 d일 H시 i분 s초", time());
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
ini_set('date.timezone','Asia/Seoul');
echo "2019년 4월 4일 10시 25분 50초의 타임스탬프는? <br>";
echo mktime(10, 27, 50, 4, 4, 2019);
//시작 시간 설정
$startTime = mktime(10, 28, 50, 4, 4, 2019);
//종료 시간 설정
$endTime = mktime(10, 33, 10, 4, 4, 2019);
if ( $startTime <= time() && $endTime > time() ) {
echo "이벤트를 참여하세요";
} else {
echo "이벤트 시작 전이거나 종료되었습니다.";
}
?>
</body>
</html>
함수 | 기능 |
---|---|
basename |
경로에서 파일 이름만을 반환합니다. |
chmod |
파일의 모드를 변겨합니다. |
copy |
파일을 복사합니다. |
dirnmae |
경로에서 디렉토리 이름만 반환합니다. |
dirnmae |
경로에서 디렉토리 이름만 반환합니다. |
fclose |
열려 있는 파일 포인터를 종료합니다. |
feof |
파일 포인터가 파일의 끝에 있는지 검사합니다. |
fgetc |
파일로부터 하나의 문자를 가져옵니다. |
fgets |
파일로부터 한줄의 문자를 가져옵니다. |
file_exists |
파일이 존재하는지 여부를 확인합니다. |
file |
파일 전체를 배열로 읽어들입니다. |
filesize |
파일의 크기를 반환합니다. |
filetype |
파일의 형식을 반환합니다. |
fopen |
파일의 URL을 엽니다. |
fpassthru |
파일 포인터로부터 파일의 끝까지의 모든 데이터를 출력합니다. |
fputs, fwrite |
파일 포인터에 지정한 크기의 문자열을 씁니다. |
함수 | 기능 |
---|---|
crypt |
단방향으로 문자열을 암호합니다. |
echo |
문자열을 출력합니다. |
explode |
문자열을 특정 문자열을 기준으로 분리합니다. |
htmlentities |
해당하는 모든 문자를 HTML 엔티티로 변환합니다. |
implode/join |
배열의 원소를 문자열로 연결합니다. |
ltrim |
문자열 왼쪽의 공백을 제거합니다. |
md5 |
문자열의 MD5 해시값을 반환합니다. |
nl2br |
문자열의 모든 줄 바꿈 앞에 <br/>태그를 삽입합니다. |
print |
문자열을 출력합니다. |
printf |
형식화된 문자열을 출력합니다. |
rtrim/chop |
문자열 오른쪽의 공백을 제거합니다. |
sprintf |
형식화된 문자열로 반환합니다. |
sscanf |
문자열을 형식에 따라 처리합니다. |
str_replace |
문자열을 찾아서 치환합니다. |
strip_tags |
문자열에서 HTML과 PHP 태그를 제거합니다. |
strlen |
문자열의 길이를 반환합니다. |
strpos |
문자열이 처음 나타나는 위치를 반환합니다. |
strstr/strchr |
문자열이 처음으로 나타나는 위치를 반환합니다. |
substr |
문자열의 일부를 반환합니다. |
trim |
문자열의 처음과 끝에 있는 공백을 제거합니다. |
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = " 안녕하세요. ";
//trim 사용하지 않고 출력
echo "trim 사용하지 않고 출력 <br>";
echo "|".$str."|";
echo "<br><br>";
//trim 사용
echo "trim 사용 <br>";
echo "|".trim($str)."|";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "Hello World"
echo "원문<br>";
echo $str;
echo "<br><br>";
echo "대문자로 출력<br>";
echo strtoupper($str);
echo "<br><br>";
echo "소문자로 출력<br>";
echo strtolower($str);
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "php수업입니다. php를 배웁니다.";
echo $str."의 문자열 길이는" .strlen($str)."입니다.";
?>
</body>
</html>
set_replace('치환할 문자','대처할 문자', '대상 문자열');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$str = "Hello World";
$changeStr = str_replace("World", "php", $str);
echo $changeStr;
?>
</body>
</html>
substr('대상문자열','자르기 시작할 위치','자를 문자열 수');
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$fileName = "imgm.jpg";
$execute = substr($fileName, -4, 4);
if ($execute == '.jpg' || $execute == '.png' || $execute == '.gif') {
echo "업로드한 파일은 이미지 파일입니다.";
} else {
echo "업로드한 파일은 이미지 파일이 아닙니다.";
}
?>
</body>
</html>
함수 | 기능 |
---|---|
mail |
메일을 보냅니다. |
abs |
절대값을 나타냅니다. |
ceil |
소수점 이하를 올림합니다. |
floor |
소수점 이하를 내림합니다. |
pow |
수를 거듭제곱합니다. |
rand |
정수형 난수를 생성합니다. |
mt_rand |
향상된 정수형 난수를 생성합니다. |
round |
실수를 반올림합니다. |
base64_encode |
MIME 규약에 따라 데이터를 base64로 인코딩합니다. |
base64_decode |
MIME 규약에 따라 인코딩된 데이터를 디코딩합니다. |
urlencode |
문자열을 URL 인코딩합니다. |
urldecode |
문자열을 URL 디코딩합니다. |
empty |
변수가 비어 있는지 확인합니다. |
isset |
변수가 설정되 있는지 확인합니다. |
unset |
주어진 변수를 제거합니다. |
is_array |
주어진 변수가 배열인지 확인합니다. |
post는 HTTP 프로토콜 통신 시에 전달되는 방식이고, get은 데이터를 URL에 붙여 전달하는 방식입니다.
https://webstorybody.co.kr?type=first&mobile=ok
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//http://mm2800.dothome.co.kr/php/php19.php?type=first&mobile=ok
echo "GET['type']는" .$_GET['type']. "<br>";
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>로그인</h1>
<form action="php20_post.php" method="post">
<label for="email">Email</label>
<input type="email" name="email" id="email" placeholder="이메일 주소 입력">
<label for="password">password</label>
<input type="password" name="password" id="password" placeholder="비밀번호 입력">
<input type="submit" value="전달">
</form>
</body>
</html>
//php20_post.php
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
echo "이메일 주소 입력값" .$_POST['email']. "<br>";
echo "패스워드 입력값" .$_POST['password']. "<br>";
?>
</body>
</html>
class 클래스 명 {
기능 구현
}
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
class people {
//생성자
function __construct(){
echo "사람들은 돈을 좋아합니다.<br>";
}
//말하기
function speak($word){
echo $word. "라고 말했다.<br>";
}
//달리기
function run($km){
echo $km."을 달린다. <br>";
}
//걷기
function walk($km){
echo $km."을 걷다. <br>";
}
//소멸자
function __destruct(){
echo "힘들다 <br>";
}
}
//인스턴스 생성
$people = new people;
//메소드 사용
$people ->speak('나는 인간이다.');
$people ->walk('산');
$people ->run('바다');
?>
</body>
</html>
<?php
$host = "localhost";
$user = "mm2800";
$pw = "wlszltm1517";
$dbName = "mm2800";
$dbConnect = new mysqli($host, $user, $pw, $dbName);
$dbConnect->set_charset("utf8");
if(mysqli_connect_errno()){
echo "데이터베이스 접속 실패";
echo mysqli_connect_errno();
} else {
// echo "데이터베이스 접속 성공";
}
?>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//데이터 입력
// 아이디 : mm2800
// 이름 : 양아름
// 패스워드 : dkfma1234
// 휴대전화 번호 : 010-7663-2800
// 이메일 : dddd1234@naver.com
// 생일 : 1994-01-30
// 성별 : 여성
$useID = "mm2800";
$uname = "양아름";
$upassword = "dkfma1234";
$phone = "010-7663-2800";
$email = "princess4001@naver.com";
$birthDay = "1994-01-30";
$gender = "w";
//쿼리문
$sql = "INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES";
$sql .= "('{$useID}','{$uname}','{$upassword}','{$phone}','{$email}','{$birthDay}','{$gender}',NOW())";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
echo "yes";
} else {
echo "no";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>회원가입</h1>
<form action="php23_insert.php" method="post" name="signUp">
<label for="useName">이름</label>
<input type="input" id="useName" name="useName" placeholder="이름"><br>
<label for="useID">ID</label>
<input type="input" id="useID" name="useID" placeholder="ID"><br>
<label for="usePW">비밀번호</label>
<input type="input" id="usePW" name="usePW" placeholder="비밀번호"><br>
<label for="useGender">성별</label>
<select name="useGender" id="useGender">
<option value="m">남성</option>
<option value="w">여성</option>
</select><br>
<label for="useEmail">이메일</label>
<input type="email" id="useEmail" name="useEmail" placeholder="이메일 입력"><br>
<input type="submit" value="가입하기">
</form>
</body>
</html>
<?php
//mysql 접속 소스를 include
include_once "../connectDB.php";
//post 방식으로
echo "<pre>";
var_dump($_POST);
//이름 인증
if ($_POST['useName'] == '' || $_POST['useName'] == null) {
echo "이름이 잘못되었습니다. 1.name";
exit;
}
$unam = $_POST['useName'];
//공백제거
$unam = trim($unam);
//쿼리문의 따움표 처리를 위해 real_escape_string 메소드 사용
$unam = $dbConnect->real_escape_string($uname);
//아이디 검증
if ($_POST['useID'] == '' || $_POST['useID'] == null) {
echo "아이디가 잘못되었습니다. 2.ID";
exit;
}
$useID = $_POST['useID'];
$useID = trim($useID);
$useID = $dbConnect->real_escape_string($useID);
//비밀번호 검증
if ($_POST['usePW'] == '' || $_POST['usePW'] == null) {
echo "비밀번호가 잘못되었습니다. 3.PW";
exit;
}
$upassword = sha1("Yang".$POST['usePW']);
//성별 검증
if ($_POST['useGender'] == 'm' || $_POST['useGender'] == 'w'){
$gender = $_POST['useGender'];
} else {
echo "해당 값을 사용할 수 없습니다. 4.useGender";
exit;
}
//이메일 유효성 검색
$emailCheck = filter_var($_POST['useEmail'], FILTER_VALIDATE_EMAIL);
if ($emailCheck == false) {
echo "해당 이메일을 사용할 수 없습니다. 5.email";
exit;
}
$email = $_POST['useEmail'];
//쿼리문 작성
$sql = "INSERT INTO myMember(useID, uname, upassword, phone, email, birthDay, gender, regTime) VALUES";
$sql .= "('{$useID}','{$uname}','{$upassword}','{$phone}','{$email}','{$birthDay}','{$gender}',NOW())";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
echo "yes";
} else {
echo "no";
}
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
$myMemberID = 1;
$sql = "SELECT * FROM myMember WHERE myMemberID = {$myMemberID}";
$result = $dbConnect->query($sql);
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "<pre>";
var_dump($memberInfo);
echo "회원 번호가 {$myMemberID}번인 회원의 이름은 ".$memberInfo['uname'];
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
$sql = "SELECT uname, useID FROM myMember";
$result = $dbConnect->query($sql);
//레코드 수를 가져오는 명령어
$numResult = $result->num_rows;
if($numResult != 0){
for($i=0; $i<$numResult; $i++){
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원 이름은 : ".$memberInfo{'uname'}."회원 ID : ".$memberInfo{'useID'}."<br>";
}
} else {
echo "회원이 아리마셍";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
//SELECT uname, useID FROM myMember ORDER BY uname ASC;
$sql = "SELECT uname, useID FROM myMember ORDER BY uname ASC";
$result = $dbConnect->query($sql);
$numResult = $result->num_rows;
if($numResult != 0){
for($i=0; $i<$numResult; $i++){
$memberInfo = $result->fetch_array(MYSQLI_ASSOC);
echo "회원이름 : ".$memberInfo['uname']." 회원 ID: ".$memberInfo['useID']."<br>";
}
} else {
echo "회원이 아리마셍.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
//성 배열
$familyName = array();
$familyName = ['김','이','박','최','전','황','강','손','하','송','조','노','윤','정','송','서'];
//이름 배열
$lastName = array();
$lastName = ['동현','인영','지호','종성','정아','지헌','지현','지원','혜인','한비','세희','선미','지우','정','준희','준','동훈','윤','윤호','민구','현빈','민영','정민','시율'];
//성별 배열
$useGender = array();
$useGender = ['m','w'];
//테이블에 회원 정보 입력 성공 카운트
$successCount = 0;
$failCount = 0;
//insert문을 500회 작동시키기
for($i=1; $i<=500; $i++){
//랜덤으로 성을 받아오기
$numRandomFN = rand(0,count($familyName) - 1);
//랜덤으로 이름 받아오기
$numRandomLN = rand(0,count($lastName) - 1);
//랜덤으로 성별 받아오기
$gender = $useGender[rand(0,1)];
//랜덤으로 비밀번호 받아오기
$upassword = sha1("web".rand(1,1000));
//성과 이름을 합치기
$uname = $familyName[$numRandomFN].$lastName[$numRandomLN];
//랜덤으로 아이디 가져오기
$useID = "drexqq".rand(1,999999);
//랜덤으로 이메일 가져오기
$email = "tktktk".rand(1,9999)."@gmail.com";
//쿼리문 작성
$sql = "INSERT INTO myMember(useID, uname, upassword, email, gender, regTime) VALUES";
$sql .= "('{$useID}','{$uname}','{$upassword}','{$email}','{$gender}', now())";
//쿼리문 전송 및 전송값을 result 변수에 대입
$result = $dbConnect->query($sql);
if($result){
$successCount++;
} else {
$failCount++;
}
}
echo "입력성공수 : {$successCount}";
echo "<br>";
echo "입력실패수 : {$failCount}";
?>
</body>
</html>
<?php
include_once "../connectDB.php";
//페이지값 구하기
if(isset($_GET['page'])){
$page = (int) $_GET['page']; //$_GET['page']를 숫자 형태로 변환하여 저장
} else {
$page = 1;
}
//페이지에 출력할 레코드 수
$numView = 50;
//변수 page값에 따른 LIMIT의 첫 번째 값 계산
$firstLimitValue = ($numView * $page) - $numView;
$sql = "SELECT * FROM myMember LIMIT {$firstLimitValue}, {$numView}";
$result = $dbConnect->query($sql);
?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
table {width: 100%; border-spacing: 0; border-collapse:collapse;}
table tr {}
table tr th {border: 1px solid #999; background: #f1f1f1; padding: 10px;}
table tr td {border: 1px solid #999; padding: 5px; text-align: center;}
</style>
</head>
<body>
<h1>고객리스트</h1>
<table>
<tr>
<th>번호</th>
<th>ID</th>
<th>이름</th>
<th>이메일</th>
<th>성별</th>
<th>가입일자</th>
</tr>
<?php
for($i=0; $i < $result->num_rows; $i++){
$member = $result->fetch_array(MYSQLI_ASSOC);
?>
<tr>
<td><?=$member['myMemberID']?></td>
<td><?=$member['useID']?></td>
<td><?=$member['uname']?></td>
<td><?=$member['email']?></td>
<td><?=(($member['gender'] == 'w') ? '여성' : '남성')?></td>
<td><?=$member['regTime']?></td>
</tr>
<?php } ?>
</table>
</body>
</html>
<?php
include_once "../connectDB.php";
$sql = "SELECT * FROM myMember";
$res = $dbConnect->query($sql);
$numView = 50;
$totalRecord = $res->num_rows;
$numPage = ceil($totalRecord / $numView) +1;
for($i=1; $i < $numPage; $i++){?>
<a href="http://won03048.dothome.co.kr/php/php28.php?page=<?=$i?>">
<?=$i?>
</a>
<?php } ?>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>회원 이름 변경하기</title>
</head>
<body>
<form action="php30_update.php" method="post" name="update">
<label for="memberID">회원번호</label>
<input type="number" name="memberID" id="memberID">
<label for="changeName">변경할 이름</label>
<input type="text" name="changeName" id="changeName">
<input type="submit" value="변경하기">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
$myMemberID = (int) $_POST['memberID'];
if($myMemberID == 0){
echo "멤버 회원 아이디 값이 없습니다.";
exit;
}
if($_POST['changeName'] == '' || $_POST['changeName'] == null){
echo "회원 이름이 올바르지않습니다.";
exit;
} else {
$changeName = $dbConnect->real_escape_string($_POST['changeName']); //공백제거
}
$sql = "UPDATE myMember SET uname = '{$changeName}' WHERE myMemberID = {$myMemberID}";
$res = $dbConnect->query($sql);
if($res){
echo "회원번호 {$myMemberID}번의 이름이 {$changeName}으로 변경되었습니다.";
} else {
echo "이름 변경을 실패하였습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
$sql = "DELETE FROM myMember WHERE myMemberID = 14";
$res = $dbConnect->query($sql);
if($res){
echo "14번 회원의 정보가 삭제되었습니다.";
} else {
echo "삭제를 실패하였습니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
include_once "../connectDB.php";
$sql = "DELETE FROM myMember WHERE myMemberID = 14";
$res = $dbConnect->query($sql);
if($res){
echo "14번 회원의 정보가 삭제되었습니다.";
} else {
echo "삭제를 실패하였습니다.";
}
?>
</body>
</html>
데이터를 입력했을 때 이 값이 한글로만 구성되어 있는지 영어로만 구성되어 있는지 또는 어떤 패턴으로 입력이 되었는지를 체크하는 방법을 정규 표현식이라고 합니다.
preg_match(패턴, 검사할 텍스트, 반환할 패턴 일치 결과를 받을 변수)
$pattern = '/패턴 입력할 곳/';
^
'$
'[]
'-
'을 사용합니다. |
'입니다.
한글의 간격
가-힣 정규 표현식 [가-힣]
영어 소문자
a-z 정규 표현식 [a-z]
영어 대문자
A-Z 정규 표현식 [A-Z]
한글, 영어소문자, 영어대문자 모두를 간격을 지정하려면
가-힣a-zA-Z 정규 표현식 [가-힣a-zA-Z]
처음부터 끝까지 한글로만 이루어진 값을 찾는다고 가정하면
^[가-힣]$
1회만 검사할 경우
^[가-힣]$ 또는 ^[가-힣]${1}$
1회이상 검사할 경우
^[가-힣]+$ 또는 ^[가-힣]${1},$
3회에서 5회까지 검사할 경우
^[가-힣]{3,5}+$
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^[가-힣]+$/';
$myName = '드루킹';
if (preg_match($pattern, $myName, $matches)) {
echo "값 {$myName}은 정규식 표현에 적합합니다.";
echo "<br>";
var_dump($matches);
} else {
echo "이름에 특수문자, 영문, 숫자를 사용할 수 없습니다.";
}
?>
</body>
</html>
$pattern = '/^[a-zA-Z0-9_]+$/';
+
r가 있으므로 1회 이상 패턴을 검사합니다.$pattern = '/^[^_]/';
^
가 '[]'의 밖에서 사용되면 처음 오는 글자를 의미합니다.^
가 '[]'의 안에서 사용되면 어떤 문자가 와서는 안된다는것을 의미합니다.$pattern = '/^[^_][a-zA-Z0-9_]+$/';
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^[a-zA-Z0-9_]+$/';
$myID = "mm2800";
if (preg_match($pattern, $myID, $matches)) {
echo "값 {$myID}은 정규식 표현에 적합한 값입니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용할 수 없는 아이디 입니다.";
}
?>
</body>
</html>
휴대폰 번호가 010-으로 시작하는 규칙을 체크하는 패턴
$pattern = '/^(011|011|016|017|018|019)-/';
^
는 처음 오는 패턴을 의미합니다. -
를 의미합니다.휴대폰 번호의 가운데에 위치하는 숫자가 3자리 또는 4자리인 숫자를 체크하는 패턴
$pattern = '/^(011|011|016|017|018|019)-[0-9]{3,4}/';
[0-9]{3,4}-
는 0에서부터 9까지의 숫자를 3회에서 4회 검사한다는 것을 의미합니다.마지막 패턴
$pattern = '/^(011|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}$/';
[0-9]{4}$
는 0에서부터 9까지의 숫자가 있는지 4회 검사한다는 것을 의미합니다.<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^(010|011|016|017|018|019)-[0-9]{3,4}-[0-9]{4}$/';
$myPhone = '010-7663-2800';
if(preg_match($pattern, $myPhone, $matches)){
echo "휴대폰 번호로 입력한 값 {$myPhone}은 사용할 수 있습니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용할 수 없는 번호입니다.";
}
?>
</body>
</html>
$pattern = '/^[a-zA-Z0-9_\-\.]+/';
\-
처럼 앞에 역 슬래시를 사용하는 이유는 -
가 정규표현식에서 간격을 조정하는 기능을 담고 있습니다. 이것을 기능으로 사용하는 것이 아니라 문자로 사용하기 위해서는 \
를 앞에 붙입니다. \
를 앞에 붙이면 문자로 사용하겠다는 것을 의미합니다.
\.
는 .
도 맡고 있는 기능이 있기 때문에 앞에 역슬래시를 붙여 사용합니다. .
은 모든문자를 의미합니다.
$pattern = '/^[a-zA-Z0-9_\-\.]+@/';
@를 기준으로 앞에는 아이디 정규식 뒤에는 호스트 정규식을 작성합니다.
$pattern = '/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[\.a-zA-Z]+$/';
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$pattern = '/^[a-zA-Z0-9_\-\.]+@[a-zA-Z0-9\-]+\.[\.a-zA-Z]+$/';
$myEmail = "ooo.ooo.oo010@daum.net";
if (preg_match($pattern, $myEmail, $matches)) {
echo "입력한 이메일 주소 {$myEmail}는 사용 가능한 이메일 주소입니다.";
echo "<pre>";
var_dump($matches);
} else {
echo "사용 불가한 이메일 주소입니다.";
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>파일 업로드</h1>
<form action="php37_file.php" name="fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="myImage">
<input type="submit" value="파일 등록">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
echo "<pre>";
var_dump($_FILES);
// $_FILES['myImage']['name'];
// $_FILES['myImage']['type'];
// $_FILES['myImage']['tmp_name'];
//임시 저장된 정보
$myTempFile = $_FILES['myImage']['tmp_name'];
//파일 타입 및 확장자구하기
$fileTypeExtension = explode("/", $_FILES['myImage']['type']);
//파일 타입
$fileType = $fileTypeExtension[0];
//파일 확장자
$extension = $fileTypeExtension[1];
//이미지 파일이 맞는지 확인
if ($fileType == 'image') {
//확장자가 jpg, bmp, gig, png
if ($extension == 'jpeg' || $extension == 'bmp' || $extension == 'gif' || $extension == 'png') {
//임시 파일 옮길 저장 및 파일명
$myFile = './img/web.{$extension}';
//임시 저장된 파일을 우리가 저장할 장소 및 파일명으로 옮김
$imageUpload = move_uploaded_file($myTempFile, $myFile);
//업로드 성공 여부 확인
if ($imageUpload == true) {
echo "파일이 정상적으로 업로드 되었습니다.";
echo "<img src='{$myFile}' width='300' />";
} else {
echo "파일이 업로드에 실패 했습니다.";
}
}
//확장자가 jpg, bmp, gif, png 가 아닌 경우
else {
echo "허용하는 확장자 이미지 파일ㄹ이 아닙니다.";
exit;
}
}
//type이 image가 아닌경우
else {
echo "이미지 파일이 아닙니다.";
exit;
}
?>
</body>
</html>
$dirCheck = is_dir("./images/");
해당 위치에 images 폴더가 있다면 true를 반환
해당 위치에 images 폴더가 없다면 false를 반환
$opendir = opendir("./images/");
해당 위치에서 images 폴더를 여는데 성공했다면 true를 반환
해당 위치에서 images 폴더를 여는데 실패했다면 false를 반환
//폴더 안에 파일을 읽을 때 사용합니다.
$readFile = readdir($opendir) 또는 readdir(opendir("./images"));
//열었던 디렉터리를 닫을 때 사용합니다.
close($opendir);
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
$dir = "http://mm2800.dothome.co.kr/php/img/";
//폴더가 있는지 확인
if(is_dir($dir)){
$opendir = opendir($dir);
if($opendir == true){
while(($file == readdir($opendir)) != false){
echo $file."<br>";
}
}
//폴더를 열지 못했을 때
else {
echo "해당 폴더를 열지 못했습니다.";
exit;
}
}
//폴더가 없는 경우
else {
echo "해당 폴더가 없습니다.";
exit;
}
?>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>파일 업로드</h1>
<form action="php39_file.php" name="fileUpload" method="post" enctype="multipart/form-data">
<input type="file" name="myImage">
<input type="submit" value="파일 등록">
</form>
</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<?php
//임시 저장된 정보
$myTempFile = $_FILES['myImage']['tmp_name'];
//파일 유형 및 확장자 정보
$fileTypeExtension = explode("/", $_FILES['myImage']['type']);
//파일 유형
$fileType = $fileTypeExtension[0];
//파일 확장자
$extension = $fileTypeExtension[1];
//1. 이미지 파일 확인 -> 이미지 확장자 확인 -> 이미지 파일명 생성 -> 이미지 경로 저장
//2. 폴더 여부 확인 -> 폴더 열기 -> 파일 읽기 -> 파일 위치 옮김 -> 파일 업로드 확인
//이미지 파일이 맞는지 확인
if($fileType == 'image'){
//이미지 확장자 파일이 맞는 확인
if($extension == 'jpeg' || $extension == 'jpg' || $extension == 'bmp' || $extension == 'gif' || $extension == 'png'){
//저장할 파일명 생성
$makingFileName = "myImage".time().rand(1,99999)."."."{$extension}";
//이미지 경로 설정
$myFile = "./images/{$makingFileName}";
$dir = "./images/";
//폴더 존재 여부 확인
if(is_dir($dir)){
//폴더 열기
$opendir = opendir($dir);
if($opendir == true){
$checkFile = true;
//파일 읽기
while(($readFile = readdir($opendir)) != false){
//해당 파일이 있다면 변수 $checkFile에 false를 대입
if($makingFileName == $readFile){
$checkFile = true;
echo "해당 파일명은 이미 사용되고 있습니다.";
break;
}
}
if($checkFile == true){
//임시 저장된 파일을 우리가 저장할 위치 및 파일명으로 옮김
$imageUpload = move_uploaded_file($myTempFile, $myFile);
//업로드 성공 여부 확인
if($imageUpload == true){
echo "중복된 파일명이 없어 정상적으로 업로드 되었습니다.";
echo "<img src='{$myFile}' width='200'/>";
} else {
echo "파일 업로드가 실패했습니다.";
}
}
} else {
//폴더를 열지 못했을 때
echo "해당 폴더를 열지 못했습니다.";
}
}
} else {
//이미지 확장자 파일이 아닌 경우
echo "이미지 확장자 파일이 아닙니다.";
exit;
}
} else {
//이미지 유형이 이미지가 아닌 경우
echo "이미지 파일이 아닙니다.";
exit;
}
?>
</body>
</html>
PHP는 서버측에서 실행되는 스크립트 언어입니다.
파일 함수를 사용하면 파일을 생성한 후 텍스트 파일에 내용을 입력 할 수 있으며 파일 내용을 읽어들일 수 있습니다.
fopen("파일 경로 및 파일명", 파일을 여는 옵션);
$fp = fopen("파일 경로 및 파일명");
$fw = fwrites($fp, "파일 쓸 내용");
fclose("열린 파일");
옵션 | 설명 |
---|---|
f |
파일을 읽기 전용으로 열기(이 옵션으로 파일을 열면 쓰기 불가) |
w |
파일을 쓰기 전용으로 열기(기존 파일이 있을 경우 내용이 삭제되고 처음부터 다시 씀) |
a |
파일을 쓰기 전용으로 열기(기본 파일이 있을 경우 내용 뒤에 덧붙힘) |
r+ |
파일을 읽고 쓸 수 있게 열기(기본에 파일이 있을 경우, 내용이 삭제되고 처음부터 다시 씀) |
a+ |
파일을 읽고 쓸 수 있게 열기(기본에 파일이 있을 경우, 내용뒤에 덧붙힘) |
<?php
//파일에 쓸 내용
$content = "Hello PHP";
//저장할 파일 명
$fileName = "HelloWorld.txt";
//파일 열기
$fp = fopen('./myFiles/'.$fileName, 'w');
//파일 쓰기
$fw = fwrite($fp, $content);
//파일 쓰기 성공 여부
if ($fw == false) {
echo "파일 쓰기가 실패했습니다.YES";
} else {
echo "파일 쓰기 완료 NO";
}
//파일 닫기
fclose($fp);
?>
$fp = fopen("파일 경로 및 파일명", 'r+');
$fr = fread($fp, "불러올 용량");
filesize("파일 경로 및 파일명");
file_exists("파일 경로 및 파일명");
<?php
$filePathName = "./myFiles/HelloWorld.txt";
//1.파일 존재 여부
if (file_exists($filePathName)) {
//2.파일 열기
$fp = fopen($filePathName, 'r');
if ($fp) {
//3.파일 읽기
$fr = fread($fp, filesize($filePathName));
if ($fr) {
//4. 내용 출력
echo $fr;
fclose($fp);
} else {
echo "파일 읽기에 실패했습니다.";
}
} else {
echo "파일 열기에 실패했습니다.";
}
} else{
echo "파일이 존재 하지 않습니다.";
}
?>
$fp = fopen("파일 경로 및 파일명", 'r+');
$fr = fgets($fp, "불러올 용량");
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<h1>할말이 있으면 적어주세요. 언제든지 연락주세요.</h1>
<form action="php42_makingFile.php" name="myText" method="post">
<textarea name="myInputText" id="myInputText" cols="30" rows="10"></textarea>
<input type="submit" value="전송">
</form>
</body>
</html>
<?php
$filePathName = "./myFiles/largeRow.php";
$content = $_POST['myInputText'];
$fp = fopen($filePathName, 'w');
if ($fp) {
$fw = fwrite($fp, $content);
if ($fw) {
echo "파일 쓰기 완료 yes";
}
}
?>
<?php
$filePathName = "./myFiles/largeRow.php";
//데이터 넣고 불러오기 (게시판만들때)
if (file_exists($filePathName)) {
$fp = fopen($filePathName, 'r');
$readByte = 512;
if ($fp) {
while (($fr = fgets($fp, $readByte)) != false) {
echo $fr."<br>";
}
}
}
?>
Ajax(Asynchronous JabaScript and XML, 에이잭스)는 비동기적인 웹 애플리케이션의 제작을 위해 사용하는 웹 개발 기법이다.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>화면 전환 없이 아이디 중복 체크</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$("#idCheckBtn").click(function(){
//AJAX 통신 시작
$.ajax({
type: 'post', //post 방식으로 전달
dataType: 'json', //json 언어로 전달
url: './php44_idCheck.php',
data: {userId: $('#userId').val()}, //전달할 데이터
async: false, //값을 전달받은 후 실행
success: function(data){
var word = "이미 존재하는 아이디입니다.";
if(data.result == 'good'){
word = "아이디를 사용해도 좋습니다.";
}
$("#idCheckComment").text(word);
},
error : function(reqeust, status, error){
console.log('reqeust'+reqeust);
console.log('status'+status);
console.log('error'+error);
}
})
});
});
</script>
</head>
<body>
<input type="text" name="userId" id="userId" placeholder="아이디 입력">
<input type="button" id="idCheckBtn" value="중복 확인">
<div id="idCheckComment"></div>
</body>
</html>
<?php
// echo json_encode(array('result'=>'good'));
include_once "../connectDB.php";
//중복확인 요청받은 아이디
$userId = $dbConnect->real_escape_string(trim($_POST['userId']));
//쿼리문 생성
$sql = "SELECT useID FROM myMember WHERE useID = '{$userId}'";
//쿼리문 질의
$res = $dbConnect->query($sql);
//전달할 데이터
$jsonResult = "bad";
//해당하는 레코드 수가 0이라면 중복되는 ID가 없다는 뜻
if($res->num_rows == 0){
$jsonResult = "good";
}
echo json_encode(array('result'=>$jsonResult));
?>
쿠키와 세션은 어떠한 상태를 유지하는 기술입니다. 쿠키는 사용자의 컴퓨터에 상태를 저장하며 세션은 서버에 상태를 저장합니다.
쿠키를 사용할 때 주의할 점은 용량이(4kb)이기 때문에 그 이상의 데이터를 담으려면 다른 방법을 사용해야 하고 쿠키를 생성하기 전에 어떠한 문구가 있어서는 안됩니다. 쿠키 생성문은 가장 위에 위치해야 합니다. 세션도 동일
setcookie("쿠키이름", "쿠키값", 유지시간, "쿠키 적용 경로");
1분 동안 유지 : 1분 1초 60개 : time()+60
1시간 동안 유지 : 1시간 1분 60개 : time()+(60*60)
24시간 동안 유지 : 1시간 24개 : time()+(60*60*24)
<?php
setcookie('myCookie', 'itIsMyCookie',time()+10000,'/');
if (isset($_COOKIE['myCookie'])) {
echo "Cooking completed";
} else {
echo "Cooking creation failed";
}
?>
<?php
setcookie('myCookie',null,time()-10000,'/');
if(isset($_COOKIE['myCookie'])){
echo "Cooking Presence";
} else {
echo "Cooking Delect";
}
?>
$_SESSION['세션 이름'] = 세션 값;
<?php
session_start();
//세션 생성
$_SESSION['useId'] = 'mm2800';
if(isset($_SESSION['useId'])){
echo "Session Creation complete : {$_SESSION['useId']}";
} else {
echo "Session Creation false";
}
?>
ini_get("값을 확인할 php 설정 항목");
ini_set("값을 변경할 php 설정 항목", 변경할 값);
unset(세션명);
<?php
session_start();
$_SESSION['mySession6'] = 'jiho';
$_SESSION['mySession7'] = 'ddong';
//세션 확인
echo "<pre>";
var_dump($_SESSION);
//세션 파과(삭제)
if (session_destroy()) {
echo "Section Delete successfully";
}
?>
$_SESSION['섹션 이름'] = array();
$_SESSION['섹션 이름']['섹션 시간'] = time();
$_SESSION['섹션 이름']['유지 시간'] = 초 단위();
$_SESSION['섹션 이름']['섹션 값'] = 값();
<?php
session_start();
//섹션을 배열형으로 선언
$_SESSION['mySession10'] = array();
//값을 대입하기 위해 2차원 배열 선언
$_SESSION['mySession10']['value'] = 'mm2800';
//섹션 생성 시간 대입
$_SESSION['mySession10']['generation'] = time();
//섹션 지속 시간 대입
$_SESSION['mySession10']['duration'] = 10;
echo "<pre>";
var_dump($_SESSION['mySession10']);
?>
<?php
session_start();
//현재 시간에서 섹션 생성 시간을 빼서 차이를 구함
$time = time() - (int) $_SESSION['mySession10']['generation'];
//차이의 값이 섹션 유지 시간보다 크면 섹션 삭제
echo "{$time} Has passed since the section was created.<br>";
if ($time > $_SESSION['mySession10']['duration'] ) {
unset($_SESSION['mySession10']);
}
//섹션 존재 여부 확인
if ( isset($_SESSION['mySession10'])) {
echo "Section exists : {$_SESSION['mySession10']['value']}";
} else {
echo "Section does not exists.";
}
?>
class 클래스명 extends 상속 받을 클래스명
<?php
class operation {
function plus($num1, $num2){
$result = $num1 + $num2;
return "{$num1} + {$num2} = ".$result;
}
}
class load extends operation{}
//load 클래스의 인스턴스 생성
$load = new load;
echo $load->plus(1,2);
?>
public : 클래스 안에서든 밖에서든 접근 가능, 상속 가능
protected : 클래스 내부에서 접근 가능, 상속 가능
private : 클래스 내부에서만 접근 가능, 상속불가
<?php
class hello {
protected function say($word){
echo $word;
}
public function say2($word){
$this->say($word);
}
}
$hello = new hello;
$hello->say2("hello class");
?>
<?php
class hello {
protected function say($word){
echo $word;
}
}
class hello2 extends hello {
public function say2($word){
$this->say($word);
}
}
$hello2 = new hello2;
$hello2->say2("hello class");
?>
static function 메소드명(){}
접근 제한자 static function 메소드명(){}
//인스턴스를 생성하지 않고 메소드를 호출하는 방법
접클래스명::메소드명();
<?php
class hello {
//static을 사용하여 메소드 생성
static function output($word){
echo "The method that prints the message
";
echo $word;
}
}
//인스턴스 생성하지 않고 클래스 메소드를 호출
hello::output("hello world");
?>