[MySQL] limit , offset

Database
게시판을 만들거나 혹은 전체 목록에서 페이지를 나누다 보면은 항상 사용하게 되어 있습니다. 조금은 형태를 바꾼 방식이라고 보시면 됩니다. /* 1번 query */ SELECT * FROM Orders LIMIT 10 OFFSET 15 /* 2번 query */ SELECT * FROM Orders LIMIT 15, 10 위에 쿼리에 보이듯이 1번, 2번은 동일한 결과물이 나오도록 합니다.정확하게 설명은 못하겠지만은 쿼리의 성능을 올리기 위해라고 저는 이해 하고 있습니다. 좀 더 설명을 잘하지 못해서 제가 검색한 사이트인 "http://crystalcube.co.kr/163" 의 링크를 걸어 놓겠습니다. 참조 http://www.w3schools.com/php/php_mysql_select_limit.asphttp://ralf79.tistory.com/722
Read More

[PHP] PHP MySQL PDO Class 파일 Ver. 2

PHP
[PHP] PHP MySQL PDO Class 파일 Ver. 2 기존에 동일한 게시물이 있습니다. 물론 크게 변하지는 않았지만 요구하는 조건이 서로 다르기에 글을 하나더 늘리는 방향으로 잡았습니다.다소 중복된 글이 있더라도 양해해주시기 바랍니다.이전 게시물을 보기 위해서는 이곳(PHP MySQL PDO Class 파일)을 클릭해주십시오. 이렇게 변경한 이유는 게시판에 사용을 하기 위해서 하다보니 매일 limit 를 사용하고 전체 게시물을 구하는 작업을 좀 줄여 보기 위해서 입니다.실제적으로는 MySQL에 쿼리를 2번 조회하지만 실행 파일에서는 1번만 하면은 모든것이 됩니다.limit , offset을 조합해서 사용할 수 있도록 수정을 한 버전입니다. <?php class DbMysqlLocal { private $host = 'localhost'; private $user = 'user '; private $pass = 'pass '; private $dbname = 'dbname '; private $port = '3306'; private $dbh; private $error; private $stmt; private $stmt1; private $foundrow; public function __construct() { // Set DSN $dsn = 'mysql:host='.$this->host.';port='.$this->port.';dbname='.$this->dbname; // Set options //…
Read More

[PHP] class 자동 로딩(autoload)

PHP
[PHP] class 자동 로딩(autoload) 지속적으로 class 파일이 늘어 남으로 인해서 include, require 를 사용하기도 힘들어지기도 합니다.그래서 최상단에 모든 파일이 1개 파일을 호출 하면은 class 파일은 자동으로 로딩하도록 하기 위해서 PHP에서 제공하는것을 사용해서 사용을 하고 있습니다. /* 편의상 comm.php 라고 해당 파일을 명명하겠습니다. */ define('_CLASSPATH_', '/home/user/class'); spl_autoload_register(function ($class) { require_once (_CLASSPATH_.'/class/'.$class.'.class.php'); }); 위에 파일을 하나 만들고 사용하고 싶은곳은 파일에서 위의 파일을 include, require 하면 됩니다. 이렇게 하면은 class 파일간에 상속이 필요하지 않습니다.제가 만들다가 알게 된것이라서 100% 공식적인 기능이라고 생각 하지 않지만 저는 잘 사용하는 편입니다. class 파일은 welcome.class.php , getout.class.php 파일입니다.실제 실행되는파일은 main.php 파일입니다. main.php 파일은 welcome.class.php 을 선언하고 사용을 하지만은 올바르지 않으면은 쫒아 내려고 합니다.welcome.class.php 파일은 일단 환영을 하도록 되어 있지만 쫒아내는 기능은 없습니다. 저는 예전에는 main.php 파일에서 welcome.class.php 도 포함하고 getout.class.php 도 포함해서 사용을 했지만은 지금은 이렇게 사용을 하고…
Read More

[PHP] SSH2 함수들

PHP
SSH2 함수들 . ssh2_auth_agent - ssh agent를 사용하여 SSH를 인증합니다. 2. ssh2_auth_hostbased_file - 공용 hostkey를 사용하여 인증합니다. 3. ssh2_auth_none - "none"으로서 인증합니다. 4. ssh2_auth_password - 일반적은 비밀번호를 사용하여 SSH를 인증합니다. ssh2_auth_password(컨넥션, 아이디, 비밀번호) 5. ssh2_auth_pubkey_file - 공용 키를 사용하여 인증합니다. 6. ssh2_connet - SSH 서버에 접속합니다. ssh2_connect(서버주소, 포트); 7. ssh2_exec - 원격 서버에 명령어를 실행합니다. ssh2_exec(컨넥스, 절대경로/파일명령어); 8. ssh2_fetch_stream - 확장된 데이터 스트림을 가져옵니다. 9. ssh2_fingerprint - 원격 서버들로 부터 fingerprint를 복구 합니다. 10. ssh2_methods_negotiated - negotiated 메소드들의 리스트를 리턴 합니다. 11. ssh2_publickey_add - 인증된 publickey를 추가합니다. 12. ssh2_publickey_init - publickey 서브시스템을 초기화 합니다. 13. ssh2_publickey_remove - 인증된 publickey를 제거합니다. 14. ssh2_scp_recv - SCP를 통해 파일을 요청합니다. ssh2_scp_recv(컨넥션, 리모트 경로, 로컬 경로); 15. ssh2_scp_send - SCP를 통해 파일을 전송합니다. (컨넥션, '/경로/옴길파일명', '/복사될경로/복사될파일명', 퍼미션(0644)) 16. ssh2_sftp_chmod - 파일 모드를 변경합니다. (컨넥션,…
Read More

[PHP] 문자 타입 체크

PHP
function StrTypeCheck($str, $type){ switch ($type){ case "digit": //숫자만 $filter = "'^[[:digit:]]*$'"; break; case "alpha": //영문만 $filter = "'^[[:alpha:]]*$'"; break; case "alnum": //영문,숫자만 $filter = "'^[[:alnum:]]*$'"; break; case "falnum": //영문,숫자만(첫자는 영문) $filter = "'^[a-zA-Z][0-9a-zA-Z]*$'"; break; case "lalpha": //소-영문만 $filter = "'^[a-z]*$'"; break; case "ualpha": //대-영문만 $filter = "'^[A-Z]*$'"; break; case "lalnum": //소-영문,숫자만 $filter = "'^[0-9a-z]*$'"; break; case "ualnum": //대-영문,숫자만 $filter = "'^[0-9a-z]*$'"; break; case "email": //이메일 $filter = "'^[_a-z0-9-]+(.[_a-z0-9-]+)*@[a-z0-9-]+(.[a-z0-9-]+)*$'"; break; case "domain": //도메인 $filter = "'^[a-zA-Z0-9]*((-|\.)?[a-zA-Z0-9])*\.([a-zA-Z]{2,4})$'"; break; case "koralnum": //한글숫자영문 $filter = '/^([\xEA-\xED][\x80-\xBF]{2}|[0-9a-zA-Z])+$/'; break; case "koralnumspace": //한글숫자영문공백 $filter = '/^([\xEA-\xED][\x80-\xBF]{2}|[0-9a-zA-Z\s])+$/'; break; case "kor": //한글 $filter = '/^([\xEA-\xED][\x80-\xBF]{2})+$/'; break; } if( preg_match($filter, $str, $matches) ) return true; else return false; }
Read More

[NGINX] userdir 추가

WWW
[NGINX] userdir 추가 location ~ ^/~([^/]+)/(.+\.php|\.htm)$ { if (!-f /home/$1/www/$2) { rewrite ^ 404; } alias /home/$1/www/$2; } location ~ ^/~([^/]+)(/.*)?$ { alias /home/$1/www$2; autoindex on; }
Read More

[PHP] PHP MySQL PDO Class 파일

PHP
평소 작업을 하기 위해서 SQL 인젝션도 생각해야 되고 조금 귀찮은 부분이 있었는데....이제는 그냥 PDO를 사용해 버립니다. 그럼으로 인해서 인젝션는 그냥 조금 무시하는 편입니다. <?php class dbMysql { private $host = "localhost"; private $user = "사용자"; private $pass = "암호"; private $dbname = "데이터베이스"; private $dbh; private $error; private $stmt; public function __construct() { // Set DSN $dsn = 'mysql:host=' . $this->host . ';dbname=' . $this->dbname; // Set options $options = array( PDO::ATTR_PERSISTENT => true, PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION ); // Create a new PDO instanace try{ $this->dbh = new PDO($dsn, $this->user, $this->pass, $options); $this->dbh->exec("SET CHARACTER SET utf8"); } // Catch any errors catch(PDOException $e){ $this->error = $e->getMessage(); } } /** * @brief * **/ public function query($query){ $this->stmt = $this->dbh->prepare($query); //echo $query.chr(10); } public function bind($param, $value, $type = null){ if…
Read More

주민등록번호 뒤에 7자리 숫자의 의미

스크랩
901123 - 1 xx xx x x 첫번째 : 성별 두번째,세번째 : 지역 ( 서울:00~08, 부산:09~12, 인천:13~15, 경기도:16~25, 강원도 : 26~34, 충청도 :35~47, 전라도:48~66, 경상도 67~90 ) 네번째,다섯번째 : 신고기간의지정번호 (읍,면,동의 기관번호) 여섯번째 : 출생신고 당시 당일 신고순서 일곱번째 : 앞에 위조 방시 식별번호
Read More

[PHP] 텔레그램봇으로 정보 수신 받기

PHP
가공된 정보를 텔레그램으로 수진하는것입니다. 네이버 LINE이나 kakaotalk도 있지만 해당 메신저들은 공개된 API가 없어서 우회해서 받아야 하기 때문에 귀찮은 작업이 동반되지만 텔레그램은 봇을 통해서 제가 직접 메세지를 작성해서 보내면은 제가 수진을 할 수도 있습니다. 제가 활용하는것은 RSS수집후 필요한 정보 알림과, 서버의 정보를 일정시간마다 수신하는 방법으로 쓰고 있습니다. 이 방법외에도 봇을 통해서 계속 메세지를 받을 수 있습니다. 뭐 거창한것도 아니며, 제가 PHP로 사용하는 소스 코드입니다.class를 흉내내서 만들어 둔것입니다. ※ PHP (cli)에서 작동합니다. <?php /* https://telegram.me/botfather 접속하여 봇아빠를 채팅창에 호출 하고 다음 커맨드를 입력 ------------------------------- 봇이름 /newbot 봇실제아이디(끝에 bot을 붙여준다) /token /setabouttext 봇정보 안내문구 /setdescription 접속문구 ------------------------------- token이 바로 api */ class telegram { // 기본환경설정 private $tokenKey = '토큰키'; private $baseUrl = 'https://api.telegram.org/bot'; private $sendBool = false; private $messageChatId = ''; private $messageText = ''; /** * @brief * **/ public function…
Read More
[PHP] 카페 게시물 알림 SMS로 받기

[PHP] 카페 게시물 알림 SMS로 받기

PHP
우리나라 굴지의 포털이 네이버 카페의 새글을 알림은 분명히 네이버 앱으로도 받아 볼 수 있습니다. 하지만 ID라는것이 여러사람이 공용으로 사용하기에도 뭐한부분입니다. 카페 입장에서는 대표 ID가 있는데 별도로 관리자 설정을 해주기 위해서는 부담 스러운 부분도 존재하고, 작업사업자이다 보니 몇개월 있다가 나가면은 또 다시 카페의 최고관리자에게 ID삭제 요청등의 귀찮은 일도 생기기 바련입니다. 그외에도 게시물을 자신이 등록할 수도 있는데, 앱을 통해서 하다보면은 앱 알림 인원에게 모두 날아가게 됩니다. 카페에 가입한게 1~2개도 아니고 무수히 날라오기 시작하면은 앱을 구동하고 봐야 하고 귀찮은것도 있다고 생각을 합니다. 제가 이런것을 만들어 달라고 하신분은 단순하게 게시물을 수집하고 언제 등록되었는지 바로 알고 싶다는 정말 단순한 이유에서 였습니다. 아래 사진은 그냥 카페의 일반적인 샘플 사진입니다. (공개된것을 사용할 수가 없어서요) 이렇게 게시판 형태로 되어 있는 부분을 제목을 가지고 개인적으로 SMS를 받기 원하시는 부분이었습니다. 물론 분석 작업과 파싱 작업은 이전에 많이 하여서 약간의 변형과…
Read More

[PHP] curl을 이용한 이미지 다운로드

PHP
curl를 이용해서 웹 이미지 다운로드 이번에는 전체 소스가 없습니다.초기에 만들고 계속 수정에 수정을 거듭하다보니 저 혼자만 사용할 수 있는 조금 난해한 코드들이 넘쳐나게 되 간한히 함수랑 사용방법의 코드만 올려 놓습니다. public function getImage($url) { curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // 인증서 체크같은데 true 시 안되는 경우가 많다. curl_setopt($ch, CURLOPT_POST, false); // Post Get 접속 여부 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); curl_setopt($ch, CURLOPT_TIMEOUT, 60); // TimeOut 값 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); //http 응답코드가 302일때 redirect_url 로 따라감 curl_setopt($ch, CURLOPT_MAXREDIRS, 5); //if http server gives redirection responce curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 결과값을 받을것인지 $data = curl_exec($this->ch); $return = base64_encode($data); return $return; } 위에 함수를 사용하면은 웹에서 이미지를 가져 올 수 있습니다.이미지의 접속가능한 URL이 있어야 접속이 됩니다. $curlDataImg = new curlData(); $returnImgBase64 = $curlDataImg->getImage($urlImg); $imageSource = base64_decode( $returnImgBase64 ); 위에 코드를 이용해서 이미지의 바이너리를 확인해…
Read More
카카오톡으로 웹페이지 img src 사용시에 ‘./’ 인식문제

카카오톡으로 웹페이지 img src 사용시에 ‘./’ 인식문제

WWW
카카오톡으로 웹페이지 img src 사용시에 './' 인식문제 내용이랄것도 없습니다. 단순하게 소스만 올리고 캡쳐 사진만 올리기 보다는 한번 경험담을 적어 보는것도 좋지 않을까 싶어서 글을 작성하는 것입니다. 제가 겪은 상항이 100% 해결 방법도 아님을 미리 고지 합니다. 웹페이지를 제작해드리고 나서 스마트폰으로 카카오링크를 통해서 주소를 전달하면서 접속 할 수 있도록 하는것이였습니다. HTML 태그 중에서 " <img src"./이미지 파일 이름"> "으로 사용하는 경우도 제법 있습니다. " ./  " 은 아마 그 해당 디렉토리에서 처리하기 위해서 가끔 사용하기도 합니다.  하지만 이번에는 문제가 발생한 부분이 " ./ "로 하는 것이었습니다. 웹브라우저의 인식의 문제 인지 인앱의 문제인지는 확실하지 않습니다. 제가 겪은 부분은 문제가 있으니 한번 고쳐 달라는 단순한 요구 사항을 듣고, 이러하다는것을 토대로 그냥 상대 경로를 절대 경로로 변경하는 작업을 한것 뿐이기에 다시 한번더 정확하지 않음을 말씀드립니다. 위에 접부된 사진을 기준으로 설명을 하겠습니다. 1차 적으로 웹페이지의…
Read More