php 중복 로그인 방지

php 중복 로그인 방지


몇년전 중복로그인 방지를 해야하는일이 있어 만들었던 소스입니다. 정확히는 A-pc에서 로그인했을때 B-pc에서 로그인이 되지 않는게 아니라, A-pc에서 로그인했을때 B-pc에서 로그인하면 2군데 모두 세션이 없어지고 로그아웃 처리되는 개념입니다. 스쿨에 괴수분들이 많아서 팁아닌 팁 올리는게 부끄럽네요;




 

<?php
/**

CREATE TABLE `avoid_duplication` (
  `idx`         int(11)         NOT NULL AUTO_INCREMENT,
  `mem_idx`     int(11)         DEFAULT NULL, # 회원의 index
  `sess_id`     varchar(100)    DEFAULT NULL, # 세션아이디 (회원의 아이디 아님.)
  `wrt_date`    int(11)         DEFAULT NULL, # 등록일 time()
  `ip`          varchar(255)    DEFAULT NULL, # 아이피.
  PRIMARY KEY (`idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 
 
CREATE TABLE `member_block` (
  `mb_idx`          int(11)         NOT NULL AUTO_INCREMENT,
  `mem_idx`         int(11)         DEFAULT NULL, # 회원의 index
  `mem_wrt_date`    int(11)         DEFAULT NULL, # 차단된 날짜 time()
  `mb_code`         varchar(255)    DEFAULT NULL, # 차단해제 신청시 인증번호 체크
  PRIMARY KEY (`mb_idx`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 
$sess_uidx : 회원의 index를 세션값으로..
 * */
Class AvoidDuplication extends DB
{
    var $TBL = "avoid_duplication";
    
    function __construct()
    {
        $this->ezSQL_mysql(
            DBUSER,
            DBPW,
            DBNAME,
            DBHOST
        );
    }

    function bloackChk($sess_uidx)
    {
        
        $sql = "select count(*) as cnt from member_block where mem_idx = '{$sess_uidx}'";
        $cnt = $this->get_row($sql)->cnt;
        if ($cnt!=0)
        {
            //alert("중복로그인으로 인해 블럭처리된 아이디입니다.\\n관리자에게 문의주시거나, \'중복로그인해지신청\'을 해주세요.");
			//location.href = 'logout.php';
        }
    }

    function processing()
    {
        global $sess_uidx;
        $nowTime    = time();
        $IP         = $_SERVER["REMOTE_ADDR"];
        
        $this->bloackChk($sess_uidx);
        
        $sql = "SELECT * FROM {$this->TBL} WHERE mem_idx = '{$sess_uidx}'";
        $row = $this->get_row($sql);
        
        $resTime    = $nowTime - $row->wrt_date;
        $time       = 60*10;
        
        if ($sess_uidx)
        {
            if ($row->mem_idx=="")
            {
                $sql = "INSERT INTO {$this->TBL} (mem_idx, ip, wrt_date) VALUES ('{$sess_uidx}','{$IP}','{$nowTime}')";
                $this->query($sql);
            }
            else
            {
                if ($row->ip!=$IP)
                {
                    if ($resTime < $time+1)
                    {
                        // 블럭처리
                        $sql ="INSERT INTO member_block (mem_idx, mem_wrt_date) VALUES ('{$sess_uidx}','$nowTime')";
                        $this->query($sql);
                    }
                    else
                    {
                        $sql = "UPDATE {$this->TBL} SET wrt_date = '{$nowTime}',ip = '{$IP}' WHERE mem_idx = '{$sess_uidx}'";
                        $this->query($sql);
                    }
                }
                else
                {
                    // do noting
                }
            }
        }
        else
        {
            // do noting
        }
    }

    function processingStop()
    {
        global $sess_uidx;
        $sql = "delete from {$this->TBL} where mem_idx = '{$sess_uidx}'";
        $this->query($sql);
        
    }
    
    // 인증번호 생성하여 발송하고 '차단'테이블에 인증번호 입력.
    function duplication($mem_id,$mem_pw,$mem_ssn1,$mem_ssn2,$mem_mail1,$mem_mail2)
    {
        global $sess_uidx;
        $sql = "
        SELECT *, count(*) AS cnt FROM member WHERE
        mem_id = '$mem_id' AND
        mem_pw = '$mem_pw' AND
        mem_ssn1 = '$mem_ssn1' AND
        mem_ssn2 = '$mem_ssn2' AND
        mem_mail1 = '$mem_mail1' AND
        mem_mail2 = '$mem_mail2' 
        ";
        $row = $this->get_row($sql);
        if ($row->cnt!=0)
        {
            $key = rand(0,9999);
            $sql = "UPDATE member_block SET mb_code = '$key' WHERE mem_idx = '$row->mem_idx'";
            $res = $this->query($sql);
            
            if ($res)
            {
                // 이곳에서 인증번호를 메일이나 문자로 발송. 인증번호는 $key 변수.
                echo true;
            }
        }
    }

    // 차단 해제.
    function duplicationDel($mem_id, $mb_code)
    {
        global $sess_uidx;
        $sql = "SELECT * FROM member WHERE mem_id = '{$mem_id}'";
        $row = $this->get_row($sql);
        $row->mem_idx;
        
        $sql = "SELECT count(*) AS cnt FROM member_block WHERE mem_idx = '$row->mem_idx'
        AND mb_code = '$mb_code'";
        $cnt = $this->get_row($sql)->cnt;
        
        if ($cnt!=0)
        {
            $sql = "DELETE FROM member_block WHERE mem_idx = '$row->mem_idx'
            AND mb_code = '$mb_code'";
            $res = $this->query($sql);
            echo true;
        }
        else {
            echo false;
        }
    }
}

$aDupli = new AvoidDuplication();
$aDupli->processing();

// 사용시
//$aDupli->bloackChk($sess_idx);
?>







[스크립트] jQuery 기반 숫자관련 플러그인.

- removeText: 숫자제외 텍스트 제거. 

- numberFormat: 3자리 마다 콤마 표시. 

- onlyNumber: 위의 모든 기능 포함. 


소스와 예제는 파일첨부하였습니다.

archive.zip



===========================================

http://www.phpschool.com/link/tipntech/64665 

음수와 소수점까지 어느정도 처리하는 버전.

php 함수 모음

php 함수 모음


PHP에는 수많은 함수들이 존재한다. PHP가 웹프로그래밍 언어로서 가장 인기 있는 이유 중에 하나가 바로 풍부한 함수들을 제공하고 있기 때문이다. 프로그래머에게 함수가 풍족하다는 것은 목수가 연장을 다양하게 가지고 있는 것과 같다. 목수에게 적재적소에 맞는 다양한 연장이 있어야 좋은 집을 짓듯이 프로그래머에게는 다양한 함수가 제공 되어야 멋진 홈페이지를 구축 할 수 있다. PHP는 문자열 함수부터 다양한 변수와 연산자, 요즘 많이 사용되고 있는 XML 함수에 이르기까지 충분한 함수를 제공한다.



함수명

함수설명

echo

문자열을 출력한다.

print

문자열을 출력한다.

htmlspecialchars

줄을 바꾸지 않고 HTML 코드를 문자열 그대로 출력한다.

nl2br

개행 문자 앞에 <BR/>태그를 삽입하여 줄을 자동으로 바꾼다.

substr

지정해준 숫자에 따라 문자열 앞뒤 일부를 추출한다.

strstr

찾고자 하는 문자열이 처음으로 나타나는 위치 이후의 문자열을 반환한다.(대소문자 구분한다.)

strchr

찾고자 하는 문자열이 마지작으로 나타나는 위치 이후의 문자열을 반환한다.

trim

문자열의 앞부분과 뒷부분에 있는 공백 문자를 제거한다.

addslashes

작은 따옴표와 큰 따옴표, 역슬래쉬와 같은 문자 앞에 역슬래쉬를 붙인다.

stripslashes

addslashes() 함수로 역슬래쉬가 처리 된 문자를 원 상태로 돌린다.

explode

문자열을 지정한 구분자로 나누어 배열에 저장한다.

strcmp

두 개의 문자열을 비교한다.

date

시간이나 날짜를 지정한 형식에 맞게 출력한다. 

time

현재의 시간을 유닉스 시간(초)으로 얻는다.

mktime

특정날짜와 시간을 유닉스 시간으로 얻는다.

인자가 없다면 time 함수와 같은 결과를 얻는다.

checkdate

주어진 날짜와 시간이 실제로 존재하는지 검사한다.

microtime

유닉스 시간과 마이크로 초 단위의 시간을 얻는다.

getdate

날짜와 시간 정보를 배열의 형태로 얻는다.

file

파일을 읽어 배열로 반환한다.

filesize

바이트 수로 파일의 크기를 반환한다.

file_exists

파일이 존재하는지 검사한다.

fopen

지정한 파일 모드로 연다.

fclose

fopen() 함수로 연 파일을 닫는다.

is_dir

디렉토리인지 검사한다.

is_file

파일인지 검사한다.

copy

파일을 복사한다.

unlink

파일을 삭제한다.

mkdir

디렉토리를 생성한다.

rmdir

디렉토리를 삭제한다.

array

배열을 생성한다.(구문)

list

배열에서 값을 가져와 지정된 변수에 할당함(구문)



날짜 및 시간 함수

 

checkdate : 주어진 날짜와 시간이 올바른지 검사한다.

date : 지정한 형식으로 시간이나 날짜를 배열로 반환한다.

getdate : 날짜와 시간의 정보를 배열로 형태로 얻는다.

gettimeofday : 시스템의 현재 시간 자료를 얻는다.

gmmktime : 그리니치표준 시간으로 지정한 날짜의 유닉스 시간(timestamp)을 얻는다.

localtime : 현재 서버의 로컬 타임을 얻는다.

mktime : 지정된 날짜를 유닉스 시간(timestamp)으로 얻는다.(시,분,초,월,일,년)

microtime : 현재시간의 유닉스 시간과 마이크로타임 값을 얻는다.

strftime : 주어진 포맷으로 시간이나 날짜 정보를 출력한다.

time : 현재 시간을 유닉스 시간(timestamp)으로 얻는다.

 

문자열 함수


AddCSlashes C 형식으로 문자열에 슬래쉬를 덧붙인다. 

addslashes 작은따옴표 큰따옴표와 같은 특정문자 앞에 역슬래시 문자를 붙인다. 

bin2hex  바이너리 데이터를 16진수 표현으로 바꾼다. 

chop 문자열의 끝에 있는 공백문자를 제거하고 문자열을 반환한다. 

chr 특정 문자를 반환한다.chr()함수는 아스키함수에 해당하는 문자를 반환한다.ord()함수는 문자열에서 첫번째 문자에 아스키코드값을 반환한다.  

chunk_split 문자열을 작은 조각으로 나눕니다. 

count_chars 문자열 안에 사용한 문자에 대한 정보를 반환합니다. 

crc32 str의 32비트 순환 반복 체크섬 값을 생성합니다. 보통 모든 데이터가 전송되었는지 확인하는 데에 사용합니다.  

crypt 단방향 문자열 암호화(해슁). 

echo 하나 이상의 문자열을 출력합니다. 

explode 문자열을 주어진 문자열을 기준으로 분리합니다. 

fprintf 문자열을 형식화하여 스트림에 기록합니다.  

hebrev 논리 헤브라이어 텍스트를 표시 텍스트로 변환합니다.한 줄에 출력할 최대 문자 수를 지시합니다.  

hebrevc 개행 문자(\n)를 "<br>\n"로 바꾼는 점을 제외하면, hebrev()와 동일합니다. 

html_entity_decode  모든 HTML 엔티티를 해당하는 문자로 변환합니다. 

htmlentities 해당하는 모든 문자를 HTML 엔티티로 변환합니다. 

htmlspecialchars 특수 문자를 HTML 엔터티로 변환합니다.

'&'(앰퍼샌드)는 '&'가 됩니다.

'"'(큰 따옴표)는 ENT_NOQUOTES를 지정하지 않았을 때 '"'가 됩니다.

'''(작은 따옴표)는 ENT_QUOTES를 지정했을 때만 '''가 됩니다.

'<'(보다 작음)는 '<'가 됩니다.

'>'(보다 큼)는 '>'가 됩니다.

 

implode 모든 배열 원소를 순서대로, 각각의 원소 사이에 glue 문자열을 덧붙인 문자열 표현을 반환합니다.  

localeconv 숫자 형식화 정보를 얻습니다.  

ltrim  문자열 시작 부분의 공백을 제거합니다. 

md5_file 주어진 파일명의 md5 해쉬를 계산합니다.  

md5 문자열의 md5 해쉬를 계산합니다.해쉬는 16진수의 32문자입니다.  

nl2br 문자열의 모든 줄바꿈 앞에 HTML 줄바꿈 태그를 삽입합니다. 

number_format 숫자를 천 단위로 구분하여 포맷합니다. 

ord  문자의 아스키 값을 반환합니다. 

print 문자열을 출력합니다.  

printf 형식화한 문자열을 출력합니다. 

quotemeta 메타 문자를 인용합니다.문자 앞에 백슬래쉬(\)를 덧붙인 str을 반환합니다. 

rtrim 문자열 끝 부분의 공백을 제거합니다. 

similar_text 두 문자열 간의 유사성을 계산합니다.  

sprintf 형식화한 문자열을 반환합니다.  

str_ireplace 대소문자를 구별하지 않는 str_replace().  

str_pad 문자열을 어떠한 길이가 되도록 다른 문자열로 채웁니다. 

str_repeat 문자열을 반복합니다. 

str_replace 발견한 모든 검색 문자열을 치환 문자열로 교체합니다. 

str_shuffle 문자열을 랜덤하게 섞습니다. 

str_split  문자열을 배열로 변환합니다. 

strip_tags 문자열에서 HTML과 PHP 태그를 제거합니다.  

stripcslashes addcslashes()로 처리한 문자열을 되돌립니다. 

stripos 대소문자를 구별하지 않고 문자열이 처음 나타나는 위치를 찾습니다.  

stripslashes addslashes()로 처리한 문자열을 되돌립니다. 

strlen 문자열의 길이를 구합니다.  

strpos 문자열이 처음 나타나는 위치를 찾습니다.  

strrchr 문자열에서 문자가 마지막으로 나오는 부분을 찾습니다. 

strrev 문자열을 뒤집습니다.  

strripos 문자열에서 대소문자 구별 없이 문자열이 나타나는 마지막 위치를 찾습니다. 

strrpos 문자열에서 마지막 문자의 위치를 찾습니다 

strstr 문자열이 처음으로 나타나는 부분을 찾습니다 

strtolower 문자열을 소문자로 만듭니다.  

strtoupper 문자열을 대문자로 만듭니다. 

strtr 특정 문자를 번역한다.  

substr_count 부분문자열의 수를 센다 

substr_replace 문자열의 일부를 치환한다. 

substr 문자열의 일부를 반환한다. 

trim 문자열의 처음과 끝에 있는 공백을 제거한다. 

ucfirst 문자열의 처음 글자를 대문자로 만든다. 

ucwords 문자열에 있는 각 단어의 처음 글자를 대문자로 바꾼다.  

wordwrap 정지문자를 이용해 주어진 수 만큼의 문자를 래핑한다.

 

파일 함수

 

basename : 경로명에서 파일명만을 반환한다.

chgrp : 파일 그룹을 변환한다.

chmod : 파일의 모드를 변경한다.

chown : 파일의 소유자를 변경한다.

clearstartcache : 파일의 통계 캐시를 삭제한다.

copy : 파일을 복사하고 제대로 수행이 되면 true를 반환한다.

dirname : 경로의 구성요소에서 디렉토리 이름만 반환한다.

fopen : 파일이나 url경로의 파일을 읽기나 쓰기 모드로 연다.

fclose : fopen() 함수로 열린 파일 포인터를 닫는다.

feof : 현재 포인터의 위치가 파일 끝에 있는지 테스트한다.

fflush : 출력결과를 파일로 보낸다.

fgetc : 파일 포인터로부터 문자를 읽어들인다.

fgets : 파일을 한줄씩 읽어들인다.

file : 파일 전체 읽어서 배열(줄단위)로 반환한다.

fileatime : 파일에 접근한 최근 시간을 반환한다.

filesize : 파일의 크기를 바이트수로 반환한다.

file_exists : 지정한 파일이 존재하는지 체크한다.

fpassthru : 파일포인터에 남아 있는 데이타를 모두 출력한다.

fputs : 특정 바이트 수 만큼을 파일에 기록한다.

fread : 지정한 수만큼 파일을 읽어 들인다.

fwirte : 파일을 기록한다. is_dir : 지정한 이름이 디렉토리인지 아닌지 검사하여 반환한다.

is_executable : 지정한 이름이 실행가능한 것인지 아닌지 검사하여 반환한다.

is_file : 지정한 이름이 일반적인 파일인지 아닌지 검사하여 반환한다.

is_link : 지정한 이름이 심볼릭 링크인지 아닌지 검사하여 반환한다.

is_readable : 지정한 파일이 읽기 가능한지 검사하여 반환한다.

is_writeable : 지정한 파일이 쓰기 가능한지 검사하여 반환한다.

mkdir : 디렉토리를 생상한다.

move_uploaded_file : 업로드된 파일을 다른 곳으로 이동한다.

readfile : 파일을 읽어들여 출력한다.

rename : 파일 이름을 바꾼다.

rmdir : 디렉토리 삭제

unlink : 파일을 삭제한다.

 

 

디렉토리 함수


chdir : 디렉토리를 바꾼다.

chroot : 루트 디렉토리를 변경한다.

closedir : 디렉토리 핸들을 닫는다.

dir : 관련 함수를 사용할 수 있는 디렉토리 클래스

opendir : 지정한 디렉토리에 대한 핸들을 연다

readdir : 디렉토리에서 디렉토리 및 파일들의 이름을 읽는다.

rewinddir : 디렉토리 핸들을 제일 처음으로 되돌린다.

scandir : 지정 경로 내의 파일과 디렉토리 목록을 반환한다.

 

 

URL 함수


base64_decode : base64 인코드 데이터를 원상태로 디코드한다.

base64_encode : 데이터를 base64로 인코드한다.

get_meta_tags : 메타 태그 내용을 배열로 반환한다.

http_build_query : 인코드한 쿼리 문자열을 생성한다.

parse_url : url 정보를 배열로 저장하여 구성요소를 반환한다.

rawurldecode : url 인코드 문자열을 디코드 한다.

rawurlencode : RFC 1738에 따라 url을 인코드 한다.

urldecode : 인코딩된 url 문자열을 디코드한다.

urlencode : 문자열을 url 인코드 한다.

 

 

변수 함수


doubleval : 변수의 실수형 값을 얻는다.

empty : 변수 값이 존재 하는지 검사한다.

get_definde_vars : 정의된 변수의 배열을 반환한다.

gettype : 변수 형을 반환한다.

import_request_variables : GET/POST/쿠키 변수를 전역으로 가져온다.

intval : 변수의 정수형 값을 반환한다.

is_array : 변수가 배열형인지 확인한다.

is_double : 변수가 실수형인지 확인한다.

is_int : 변수가 정수인지 확인한다.

is_null : 변수가 null인지 확인한다.

is_numeric :  변수가 숫자나 숫자형인지 확인한다.

is_object : 변수가 객체인지 확인한다.

is_string : 변수가 문자열인지 확인한다.

isset : 변수가 존재하는지 확인한다.

print_r : 변수의 정보를 사람이 읽기 쉽게 출력한다.

settype : 변수형을 설정한다.

strval : 변수를 문자형 값으로 변환한다.

unserialize : PHP 값으로 변환한다.

unset : 변수를 삭제한다.


 

 

수학 함수


abs : 절대값을 반환한다.

cos :  아크 코사인

base_convert : 수를 임의의 진수로 변환한다.

bindec : 2진수를 10진수로 변환한다.

ceil : 소수점 이하를 올림하여 값을 구한다.

decbin : 10진수를 2진수로 변환한다.

dechex : 10진수를 16진수로 변환한다.

decoct : 10진수를 8진수로 변환한다.

floor : 소수점 이하를 내림하여 값을 구한다.

fmod : 나눗셈에서 소수점 나머지를 반환한다.

getrandmax : 랜덤 값의 가장 큰 값을 반환한다.

hexdec : 16진수를 10진수로 변환한다.

is_finite : 허용 범위의 수인지 검사한다.

is_nan : 값이 수가 아닌지 검사한다.

log : 자연로그

max : 최대값을 반환한다.

min : 최소값을 반환한다.

mt_rand : 난수를 생성한다.

pow : 거듭제곱의 값을 반환한다.

rand : 정수형의 난수를 생성한다.

round : 변수의 반올림한 값을 구한다.

sin : 아크 사인

tan : 아크 탄젠트

 

#########################################################

날짜 및 시간 함수

함수명함수설명상세정보
checkdate인자로 주어진 날짜가 유효한지 검사한다.상세정보
date지정한 형식에 맞게 날짜와 시간을 출력한다.

a : 오전과 오후, 소문자 am, pm
A : 오전과 오후, 대문자 AM, PM 
B : 스왓치 인터넷 시간 000부터 999 
c : ISO 8601 날짜 (PHP 5에서 추가) 2004-02-12T15:19:21+00:00 
d : 일, 앞에 0이 붙는 2자리 01부터 31 
D : 요일, 3글자 문자 Mon부터 Sun 
F : 월, January, March 등의 완전한 문자 표현 January부터 December 
g : 시, 0이 붙지 않는 12시간 형식 1부터 12 
G : 시, 0이 붙지 않는 24시간 형식 0부터 23 
h : 시, 0이 붙는 12시간 형식 01부터 12 
H : 시, 0이 붙는 24시간 형식 00부터 23 
i : 분, 0이 붙는 형식 00부터 59 
I : (대문자 i) 일광 절약 시간 여부 일광 절약 시간이면 1, 아니면 0 
j : 일, 0이 붙지 않는 형식 1부터 31 
l : (소문자 'L') 요일, 완전한 문자 표현 Sunday부터 Saturday 
L : 윤년인지 여부 윤년이면 1, 아니면 0 
m : 월, 숫자 표현, 0이 붙는 형식 01부터 12 
M : 월, 짧은 문자 표현, 3문자 Jan부터 Dec 
n : 월, 숫자 표현, 0이 붙지 않는 형식 1부터 12 
O : 그리니치 시간(GMT)과의 차이 예: +0200 
r : RFC 2822 형식 날짜 예: Thu, 21 Dec 2000 16:01:07 +0200 
s : 초, 0이 붙는 형식 00 부터 59 
S : 일 표현을 위한 영어 서수 접미어, 2문자 st, nd, rd나 th. j와 잘 작동합니다. 
t : 주어진 월의 일수 28부터 31 
T : 이 기계의 표준 시간대 설정 예: EST, MDT ... 
U : 유닉스 Epoch(January 1 1970 00:00:00 GMT)로부터의 초 time() 참고 
w : 요일, 숫자형 0(일요일)부터 6(토요일) 
W : ISO-8601 연도의 주차, 주는 월요일에 시작 (PHP 4.1.0에서 추가) 예: 42 (연도의 42번째 주) 
Y : 연도, 4 자리수 표현 예: 1999, 2003 
y : 연도, 2 자리수 표현 예: 99, 03 
z : 연도의 일차 (0부터 시작) 0부터 365 
Z : 표준 시간대의 오프셋 초. UTC로부터 서쪽의 오프셋은 항상 음수이고, UTC로부터 동쪽의 오프셋은 항상 양수. -43200부터 43200 

상세정보
getdatetimestamp 형태로 받은 날짜 정보를 연,월,일,시,분,초 등의 정보로 반환한다.

seconds : 초의 숫자 표현 0 부터 59 
minutes : 분의 숫자 표현 0 부터 59 
hours : 시간의 숫자 표현 0 부터 23 
mday : 일의 숫자 표현 1 부터 31 
wday : 요일의 숫자 표현 0 (일요일) 부터 6 (토요일) 
mon : 월의 숫자 표현 1 부터 12 
year : 연도의 숫자표현, 4 자리 Examples: 1999 또는 2003 
yday : 연도의 일차 0 부터 366 
weekday : 요일, 완전한 문자 Sunday 부터 Saturday 
month : 월, 완전한 문자, January 나 March January 부터 December 
0 : 유닉스 Epoch (January 1 1970 00:00:00 GMT)로부터의 초, time()에 의해 반환되는 값과 유사하고, date()에 의해서 사용된다. 시스템 의존적이다, 일반적으로 -2147483648 부터 2147483647.

상세정보
gettimeofday현재 시간을 얻는다.상세정보
gmmktimeGMT(Greenwich Mean Time) 시간으로 지정한 날짜의 Unix timestamp을 얻는다.상세정보
localtime현재 서버 로컬 타임을 표시상세정보
microtime현재시간에 해당하는 Unix timestamp 값과 마이크로타임을 반환한다.상세정보
mktime지정된 날짜를 timestamp(초단위 유닉스시간)값으로 변환한다.
예)mktime(시,분,초,월,일,년)
상세정보
strftime특정한 포맷으로 날짜 정보를 출력하는데 언어를 지정할수 있다.상세정보
time현재 시각을 timestamp값으로 구한다.상세정보

문자열 함수

함수설명상세정보
AddCSlashesC 형식으로 문자열에 슬래쉬를 덧붙인다.상세정보
addslashes작은따옴표 큰따옴표와 같은 특정문자 앞에 역슬래시 문자를 붙인다.상세정보
bin2hex바이너리 데이터를 16진수 표현으로 바꾼다.상세정보
chop문자열의 끝에 있는 공백문자를 제거하고 문자열을 반환한다.상세정보
chr특정 문자를 반환한다.chr()함수는 아스키함수에 해당하는 문자를 반환한다.ord()함수는 문자열에서 첫번째 문자에 아스키코드값을 반환한다.상세정보
chunk_split문자열을 작은 조각으로 나눕니다.상세정보
count_chars문자열 안에 사용한 문자에 대한 정보를 반환합니다.상세정보
crc32str의 32비트 순환 반복 체크섬 값을 생성합니다. 보통 모든 데이터가 전송되었는지 확인하는 데에 사용합니다.상세정보
crypt단방향 문자열 암호화(해슁).상세정보
echo하나 이상의 문자열을 출력합니다.상세정보
explode문자열을 주어진 문자열을 기준으로 분리합니다.상세정보
fprintf문자열을 형식화하여 스트림에 기록합니다.상세정보
hebrev논리 헤브라이어 텍스트를 표시 텍스트로 변환합니다.한 줄에 출력할 최대 문자 수를 지시합니다.상세정보
hebrevc개행 문자(\n)를 "<br>\n"로 바꾼는 점을 제외하면, hebrev()와 동일합니다.상세정보
html_entity_decode모든 HTML 엔티티를 해당하는 문자로 변환합니다.상세정보
htmlentities해당하는 모든 문자를 HTML 엔티티로 변환합니다.상세정보
htmlspecialchars특수 문자를 HTML 엔터티로 변환합니다.
'&'(앰퍼샌드)는 '&'가 됩니다.
'"'(큰 따옴표)는 ENT_NOQUOTES를 지정하지 않았을 때 '"'가 됩니다. 
'''(작은 따옴표)는 ENT_QUOTES를 지정했을 때만 '''가 됩니다. 
'<'(보다 작음)는 '<'가 됩니다. 
'>'(보다 큼)는 '>'가 됩니다. 
상세정보
implode모든 배열 원소를 순서대로, 각각의 원소 사이에 glue 문자열을 덧붙인 문자열 표현을 반환합니다.상세정보
localeconv숫자 형식화 정보를 얻습니다.상세정보
ltrim문자열 시작 부분의 공백을 제거합니다.상세정보
md5_file주어진 파일명의 md5 해쉬를 계산합니다.상세정보
md5문자열의 md5 해쉬를 계산합니다.해쉬는 16진수의 32문자입니다.상세정보
nl2br문자열의 모든 줄바꿈 앞에 HTML 줄바꿈 태그를 삽입합니다.상세정보
number_format숫자를 천 단위로 구분하여 포맷합니다.상세정보
ord문자의 아스키 값을 반환합니다.상세정보
print문자열을 출력합니다.상세정보
printf형식화한 문자열을 출력합니다.상세정보
quotemeta메타 문자를 인용합니다.문자 앞에 백슬래쉬(\)를 덧붙인 str을 반환합니다.상세정보
rtrim문자열 끝 부분의 공백을 제거합니다.상세정보
similar_text두 문자열 간의 유사성을 계산합니다.상세정보
sprintf형식화한 문자열을 반환합니다.상세정보
str_ireplace대소문자를 구별하지 않는 str_replace().상세정보
str_pad문자열을 어떠한 길이가 되도록 다른 문자열로 채웁니다.상세정보
str_repeat문자열을 반복합니다.상세정보
str_replace발견한 모든 검색 문자열을 치환 문자열로 교체합니다.상세정보
str_shuffle문자열을 랜덤하게 섞습니다.상세정보
str_split문자열을 배열로 변환합니다.상세정보
strip_tags문자열에서 HTML과 PHP 태그를 제거합니다.상세정보
stripcslashesaddcslashes()로 처리한 문자열을 되돌립니다.상세정보
stripos대소문자를 구별하지 않고 문자열이 처음 나타나는 위치를 찾습니다.상세정보
stripslashesaddslashes()로 처리한 문자열을 되돌립니다.상세정보
strlen문자열의 길이를 구합니다.상세정보
strpos문자열이 처음 나타나는 위치를 찾습니다.상세정보
strrchr문자열에서 문자가 마지막으로 나오는 부분을 찾습니다.상세정보
strrev문자열을 뒤집습니다.상세정보
strripos문자열에서 대소문자 구별 없이 문자열이 나타나는 마지막 위치를 찾습니다.상세정보
strrpos문자열에서 마지막 문자의 위치를 찾습니다상세정보
strstr문자열이 처음으로 나타나는 부분을 찾습니다상세정보
strtolower문자열을 소문자로 만듭니다.상세정보
strtoupper문자열을 대문자로 만듭니다.상세정보
strtr특정 문자를 번역한다.상세정보
substr_count부분문자열의 수를 센다상세정보
substr_replace문자열의 일부를 치환한다.상세정보
substr문자열의 일부를 반환한다.상세정보
trim문자열의 처음과 끝에 있는 공백을 제거한다.상세정보
ucfirst문자열의 처음 글자를 대문자로 만든다.상세정보
ucwords문자열에 있는 각 단어의 처음 글자를 대문자로 바꾼다.상세정보
wordwrap정지문자를 이용해 주어진 수 만큼의 문자를 래핑한다.상세정보

 

PHP 프로그래밍 언어에 대해 간략하게 알아보자.

PHP는 서버측 스크립트 언어이다. PHP는 HTML 코드 안이나 바깥에서 자유자재로 작동한다.

PHP 소스는 <? 으로 시작해서  ?> 마무리 되거나, <?php 로 시작해서 ?>으로 마무리 된다. 또 <SCRIPT LANGUAGE="PHP"> 로 시작해서 </SCRIPT>로 마무리해도 된다. 이것은 HTML과 분리하기 위함이다. 그래서 이러한 태그를 Escaping Form HTML(html로부터 탈출)이라 부른다. 그리고 하나의 명령문을 마무리 지을 때는  ‘;’으로 처리한다.


주석처리는 다음과 같다.

//..........한 줄 주석

#...........한 줄 주석

/*

는 여러 줄 주석이 필요할 때 사용한다.

*/

참고 ☞ HTML 주석은 <!-- 으로 시작해서 -->으로 마무리 된다.


예제) test.php 

<? 

echo "php는 정말 훌륭한 ";   

print "프로그래밍 언어이다."; 

?> 

 


이 파일을 서버에 업로드 시켜놓고 연결을 하면 "php는 정말 훌륭한 프로그래밍 언어이다.“가 출력된다. echo 와 print는 문자열을 출력하는 함수이다.

[윈도우8] 정품인증 여부 확인하기 !!

[윈도우8] 정품인증 여부 확인하기 !!


윈도우8을 사용하시는 유저분들 중에서 자신의 OS가 정품인증 여부를 확인하는 방법입니다.

(아~~~~주 쉬워요!!!)

내 컴퓨터아이콘에 오른족클릭 - 속성 들어가주세요

 

 

그럼 다음과 같이 시스템 창이 나오게 되는데요

바로 아래 정품 인증 부분에 '정품인증을 받았습니다' 라는

 문구가 있으면 이미 정품인증을 받으신 거에요!! 

정품 인증이 아닌경우는 '제품 ID 사용할수 없음' 이라는 문구가 있으며 그 경우는 정품인증을 하셔야됩니다.

(OS가 윈도우7 인경우도 위 방법과 동일하게 확인이 가능합니다.)

 

위 창에서 'Windows 정품 인증에서 세부 정보 보기' 부분에 들어가시면

아래 사진과 같이 Windows 사용 라이선스 만료 날짜가 찍힙니다.

기존 OS와 다르게 윈도우8은 기간이 있더군요.

기간이 종료되면 재인증을 하셔야겠죠 ? ㅎㅎ

삼성과 같은 브랜드 업체에서 컴퓨터를 구매시 OS가 윈도우8 버전이면 정품시디키를
컴퓨터에 부착하여 제공을 하며 그 시디키로 사용 하시면 됩니다.
없다면 OS를 구매를 하시는 방법이 있습니다. (좀 많이 비싸요)
복돌이 분들은 크랙으로 하는 경우도 있으나 이번 글에선 제외 하겠습니다. ㅎ 


[컴퓨터] 정품잉크 vs 호환잉크 어떤게 좋을까요?

[컴퓨터] 정품잉크 vs 호환잉크 어떤게 좋을까요?


사실 잉크젯 프린터를 사용하시는 분들이라면,

정품잉크를 사야될지, 호환잉크를 사야될지,

둘다 무엇이 다른지 잘 몰라 고민할때가 많습니다.

오늘 데쓰사이드가 간단하게 정품잉크와, 호환잉크에 대해

설명해 보고자 합니다. ^^*

 

정품잉크

각각 프린터의 회사에서 만들어져 나오는 인증된 제품입니다.

일명 새것 이죠 ㅋㅋ;

정품잉크는 호환잉크보다 인쇄품질이 매우좋으며,

잉크양을 측정하는 기능이 있는 프린터의 경우,

잉크의 양의 예상치를 알 수 있습니다.

그리고 가격이 조금 많이 비싸다는 거죠;;

그리고 유통기한도 있습니다.

 

 

요것은 정품박스의 외부에 적혀있는 품질 보장 기한입니다.

일반적으로 박스에는 년도와 월 까지만 적혀있고,

상세 기한은 포장을 개봉시 알 수 있습니다.

가능한 유통기한 전에 사용하는것을 추천드립니다. 

 

호환잉크

저렴한 가격!!! 가장 좋은점이죠 ㅎㅎ

품질은 정품잉크보다 떨어지지만, 크게 떨어지는게 아니기 때문에,

일반적인 인쇄용도로는 충분합니다.

(코퀄리티의 사진을 뽑는경우는 정품잉크가 좋을수 있어요)

 

호환잉크는 잉크의 양을 측정하지 못합니다.

호환잉크 꼈더니, 프린터의 잉크 잔량표시등이

잉크 없다고 계속 깜박거려 !! 하시는분들 계십니다 ㄷㄷ;

정상인거에요 ㅋㅋ(인쇄는 되요 !!)

 

 

호환잉크는 정품잉크와 다르게 새것이 아닙니다.

정품잉크로 팔려 이미 한번 사용된 제품들을 수거하여,

세척및 잉크충전후 테스트하여 파는 제품입니다.

그래서 위 처럼 유통기한이 찍혀 있으나,

그 유통기한은 정품잉크 시절의 유통기한이므로

유통기한이 지나있다고 따지시면 안됩니다.;;

즉 호환잉크에는 유통기한이라는게 없다고 봐야죠!

 

 

이정도 일까요 ? ㅎㅎ

 

가성비를 고르시면 호환잉크,

품질보장을 원하시면 조금 비싸지만 정품잉크!!

충전하여 사용할 예정이신분들은  정품잉크를 충전하나,

호환잉크를 충전하나 비슷합니다 ㅋㅋ;;

[컴퓨터,모바일] 모바일 백신 카스퍼스키 (안드로이드 4.4 지원)

[컴퓨터,모바일] 모바일 백신 카스퍼스키 (안드로이드 4.4 지원)


이번에 포스팅 하게될 내용은 카스퍼스키 모바일에

새롭게 추가된 사항이 있어서 찾아뵙군요 ㅎㅎ

오늘 진짜 우연히 발견하게 된겁니다 !!

 

기존 모바일 백신 카스퍼스키는 안드로이드 4.2까지 지원했습니다.

하지만 최근에 업데이트가 되어 안드로이드 4.4까지 지원 한다고 합니다.

저는 갤럭시 노트2를 사용중입니다.

노트2가 초창기에는 안드로이드 4.2 버전이라

카스퍼스키 모바일을 사용했습니다.

얼마 있다가 4.3 버전이 되더니... 카스퍼스키의 호환문제로

와이파이가 여러번 꺼졌다 켜졌다 하는 증상이 있어서

사용중단을 했었죠.

(CD키를 절반도 사용 몬했는데 ... 아까버라.)

 

아무튼... 이번에 뉴 버전으로 4.4도 지원이 된다길래

후딱 깔았습니다.~!

모바일 시디키가 하나 남았거든요 ㅎㅎ

음... 역시 ..카스퍼스키의 만족...굳

 

 

아무튼 안드로이드 4.4도 카스퍼스키 모바일 백신 지원합니다!!!

(카스퍼스키랩 홈페이지에서 체험판으로 다운 받으시면

 한국어 버전으로 시디키를 활성화 하실수 있습니다.)







[IT 정보] 휴대폰(스마트폰) MAC 주소 확인하기

[IT 정보] 휴대폰(스마트폰) MAC 주소 확인하기


컴퓨터에대해 조금 자세히 아시는분들이라면,

MAC주소 라는것에 대해 잘 알고 계실꺼라 생각이 듭니다.

 

모르시는분들을 위해 간단하게 설명하자면,

통신 장비만의 고유 주소라고 생각하시면 될것 같아요

어떻게 보면 IP주소와 비슷하지만, 조금 다릅니다.

한 컴퓨터에 유동 IP 주소라면 IP주소를 변경할수도 있습니다.

 

하지만 MAC주소는 IP주소와 별개로 통신장비만의 고유주소를 의미합니다.

하나 예를 들자면,

111.111.111.111 이라는 IP주소를 사용하는 컴퓨터의

통신장비(여기서는 LAN카드를 의미합니다.) MAC주소가

00-00-00-00-00-00 이라고 한다면,

이 사용자가 악의적인 용도로 IP주소를 바꿔가며

511.111.111.116 / 00-00-00-00-00-00

611.111.111.115 / 00-00-00-00-00-00

411.111.111.114 / 00-00-00-00-00-00

311.111.111.113 / 00-00-00-00-00-00

111.111.111.112 / 00-00-00-00-00-00

무언가를해도, MAC주소는 동일하기에 같은 사용자가

악의적인 행위했다고 볼수있죠 ㅎㅎ

이처럼 악의적인 행위를 한것을 추적할때 보통 사용하죠. ㅎㅎ

 

  (조금 어렵죠? ㅋㅋ)

 

이 MAC 주소라는게 휴대폰에도 인터넷 통신을 하기에

주소가 존재합니다.

 

 

서론이 길어졌네요 ;;

 

아무튼 이 맥주소 라고 불르는 것을 폰에서 확인할수 있는방법을

알려드리고자 합니다.

 

참고

설명은 안드로이드 기준이며,

제가 사용하고있는 갤럭시 노트2를 기준으로

스크린샷을 만들었습니다.

 

첫번째 사진에서 WIFI를 들어갑니다.


메뉴 버튼을 눌러줍시다.



해당 박스에서 고급설정을 들어가주세요


아래로 내려보면 사용중인 MAC주소와 IP주소가 찍힙니다.

(참 쉽죠 ? ㅎㅎ)

 

일반적으로 몰라도 되긴하지만,설정작업이나

특정상황에 알아야되는 경우가 있기에,

필요하신분들은 여기서 알아가시면 될듯 싶어요 !!!

파피콘(favicon) 만들기 - 주소표시줄에 사이트를 상징하는 작은 이미지

파피콘(favicon) 만들기 - 주소표시줄에 사이트를 상징하는 작은 이미지


1. 파피콘이란?

 1.1 아래 스크린샷 이미지처럼 우리 사이트(url 홈페이지) 을 상징하는 작은 이미지를 말합니다.

 ※ 상기 파피콘은 "네이버 블로그" 파피콘입니다.

 

2. 만드는 방법

2.1 직접 포토샵 등 이미지 편집 프로그램을 이용해 ico  파일을 만드는 방법(전문가 영역)

2.2. 이미지를 입력하면 자동으로 ico 파일을 만드는 방법(초보자도 생성 가능 영역)

위 같은 경우 ico를 만드는 사이트를 이용하시면 보다 편리하게 가능합니다.

아래 사이트는 ico(파피콘) 만드는 사이트이며, 제가 사용해본곳중 젤 좋아서 추천하는 사이트입니다.

 

사이트명 : Favicon Generator

사이트 url : http://favicon-generator.org/

 

 

 

 

 

 

 

 

 

방법은 아래 스크린샷 확인





 

위와 같이 저장하면 끝!!!

 

이제 원하는 곳에 붙여 넣으세요.

티스토리 파피콘 넣기,

웹페이지 상단 head부분에 넣기

소스 부분은

<link rel="shortcut icon" href="이미지 경로 및 ico 파일명 입력" type="image/x-icon">
<link rel="icon" href="이미지 경로 및 ico 파일명 입력" type="image/x-icon">

 

ex)

<link rel="shortcut icon" href="/img/favicon.ico" type="image/x-icon">
<link rel="icon" href="/img/favicon.ico" type="image/x-icon">

 

 

이상 몇자 적어봤습니다.

필요한 곳에 적어주세요.

 

댓글 좀 남겨주시고. 많이 퍼가주세요~

[마우스 우클릭 해제]구글 크롬 오른쪽 마우스 해제 pig toolbox 편리하게 마우스 오른쪽 우클릭 해제 안내 - 네이버 동영상 다운로드, 네이버 동영상 저장

[마우스 우클릭 해제]구글 크롬 오른쪽 마우스 해제 pig toolbox 편리하게 마우스 오른쪽 우클릭 해제 안내 - 네이버 동영상 다운로드, 네이버 동영상 저장

----------------------------------------------------------------------

 

안녕하세요

이번엔 마우스 우클릭 해제에 대해서 소개하겠습니다

 

크롬에 확장기능인 pig toolbox입니다.

 

이제 크롬을 사용하시는 유저분들이 많으시죠

그래서 편리하게 사용하시라고 확장기능을 소개합니다.

 

마우스 우클릭 뿐만이 아니고 네이버 동영상 다운로드도 쉽게 가능합니다.

 

먼저 크롬이 없으신 이웃님들은 아래에서 다운로드 받으시기 바랍니다.

https://www.google.com/intl/ko/chrome/browser/features.html

 

 

 

1. 아래와 같은 아이콘이 크롬 우측 상단에 표시됩니다.

 

2. alt + F7 번 혹은 상단 아이콘을 클릭하셔서 마우스 해제를 진행하시면 됩니다.

 

우클릭 막힘 풀기 외에도 짧은 url 생성 부터 많은 기능이 해당 확장프로그램에 들어가있습니다. 많은 도움되시길 바랍니다.

 

그럼 이제 설치 방법에 대해서 작성하겠습니다.

 

1. 아래 url로 들어가시기 바랍니다.

https://chrome.google.com/webstore/detail/pig-toolbox-super-gesture/oiplkfaidhjklglajdpfehoagkmlcakh/related?utm_source=chrome-ntp-icon

 

 

2. 아래 이미지 처럼 추가하시기 바랍니다.

 

3. 클릭이후 confirm창에서 추가 버튼 클릭

 

4. 정상적으로 설치된거 확인

 

 

그외에도 아래와 같이 네이버 동영상 다운로드 가능합니다

아래 이미지를 참고하시기 바랍니다.

 

이상입니다

즐거운 인터넷하시기 바랍니다 ^^

LG G3 공개, 구글글래스 때문에 두통?

LG G3 공개, 구글글래스 때문에 두통?


--------------------------------------------

 

LG전자 G3 공개하는 초대장 발송

 

LG 전자가 오는 28일에 스마트폰 ‘G3’를 언론에 공개한다고 밝혔습니다.

G3는 G2의 후속 제품으로서 5.5인치의 화면에 2560×1440의 해상도와

퀄컴의 스냅드래곤 801 프로세서, 1천 300만 화소 카메라 등으로 알려졌습니다.

LG전자는 27일에 런던과 뉴욕, 샌프란시스코, 싱가포르 등

6개 도시에서 G3 공개 행사를 연다고 합니다.

 

 

 

 

 

구글 글래스 착용으로 눈이 피로해?

 

구글의 웨어러블 기기 구글 글래스를 체험한 사람들 중에

눈이 피로해지고 두통으로까지 이어진다는 이야기들이 나왔습니다.

구글 글래스 체험자들 중 일부가 눈앞에서 계속 새로운 정보가 나타나

눈이 점점 피로해지고 나중에는 두통까지 생긴다며

눈의 피로와 통증을 호소했습니다.

 

이는 일부 전문가들이 처음에 우려했던 부분과 일치하기도 합니다.

미국의 IT 전문지들은 구글글래스의 착용으로 인한 안구 통증 사례를 소개했는데요,

구글글래스를 장시간 착용했을 시에 어느 순간부터인지 눈이 가늘게 떠지면서

두통이 생기는 증상이 발생했다고 하네요.

또한 이런 증상은 유리 액정의 문제 때문이라기보다는 눈앞에 바로

정보 등이 표시되는 데 있어서의 시각적인 문제라는 반응이 나왔습니다.

 

 

 

눈의 피로와 통증 등 구글 글래스 착용에 따른 증상을 겪은

구글 그래스 체험단 중 한 명은 두통 때문에 구글글래스 사용시간을

줄여야 했다고 했으며 다른 한 명은 구글글래스에 익숙해지려면

시간이 필요할 것이라고 말했다고 합니다.

 

하지만 애초에 구글도 처음부터 구글글래스를 무리하게 사용하진 말라는

견해를 밝힌 것으로 보아 이런 문제를 이미 인식하고 있었던 것으로 보입니다.

구글글래스는 올해 하반기부터 대량 생산에 들어갈 계획인데요,

본격적인 출시 전에 사용에 관한 불편함들을 줄이려고 하고 있습니다.

 


최근 웨어러블 기기에 대한 관심이 많아지고 있습니다.

그 중에서도 가장 주목받는 웨어러블 기기는 단연 구글글래스 일겁니다.

구글글래스가 일반에 보급된 후에도 눈의 피로나 두통 같은 증상이 생기는지는

조금 더 지켜봐야 알 것 같습니다.