FastRoute (PHP)(11)
-
[FastRoute] PHP 팁
1. PHP 비밀번호 검증 (mainController.php) if (mb_strlen($password, 'utf-8') 20) { $res->isSuccess = false; $res->code = 500; $res->message = "비밀번호를 최소 5자리 최대 20자리 입력해주세요."; echo json_encode($res, JSON_NUMERIC_CHECK); return; } 2. PHP 이메일 검증 (mainController.php) if (!preg_match("/([\w-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]+\.)+))([a-zA-Z]{2,4}|[0-..
2020.01.08 -
[FastRoute] PHP 이메일
1. PHPMailer를 이용한 이메일 전송 (pdo.php) use PHPMailer\PHPMailer\PHPMailer; use PHPMailer\PHPMailer\Exception; require_once('./vendor/phpmailer/phpmailer/src/Exception.php'); require_once('./vendor/phpmailer/phpmailer/src/PHPMailer.php'); require_once('./vendor/phpmailer/phpmailer/src/SMTP.php'); function sendEmail($email, $random) { $mail = new PHPMailer(true); $mail->IsSMTP(); try { $mail->Host = "s..
2020.01.08 -
[FastRoute] PDO 사용법
1. PDO 사용법 (1) (pdo.php) PDO에서는 execute 파라미터 실행 방법과 bindParam 함수를 이용한 파라미터 SQL 입력방식이 존재하며, 대부분 bindParam 함수를 이용하는 것을 선호한다. function test($param) { $pdo = pdoSqlConnect(); $query = "SELECT * FROM User WHERE id = ?;"; $st = $pdo->prepare($query); $st->execute([$param]); $st->setFetchMode(PDO::FETCH_ASSOC); $res = $st->fetchAll(); $st=null;$pdo = null; return $res; } function test($param) { $pdo = ..
2020.01.07 -
[FastRoute] PHP 트랜잭션
1. 기존 PHP 코드에 트랜잭션 Commit과 Rollback 기능 추가 (pdo.php) function test($param) { $pdo = pdoSqlConnect(); $query = "SELECT * FROM User WHERE id = ?;"; $st = $pdo->prepare($query); $st->execute([$param]); $st->setFetchMode(PDO::FETCH_ASSOC); $res = $st->fetchAll(); $st=null;$pdo = null; return $res; } function test($param) { $pdo = pdoSqlConnect(); try { $query = "SELECT * FROM User WHERE id = ?;"; $st..
2020.01.07 -
[FastRoute] 로그인 토큰 인증 (2)
1. 인증용 API 라우팅 설정 (index.php) $r->addRoute('POST', '/test', ['bigCategory','mainController','test']); $r->addRoute('GET', '/test2', ['bigCategory','mainController','test2']); 2. PHP 글로벌 변수를 이용하여 토큰 유효성 검증 코드 작성 (mainController.php) case "test2": $jwt = $_SERVER['HTTP_X_ACCESS_TOKEN']; if (!isValidHeader($jwt, JWT_SECRET_KEY)) { $res->isSuccess = FALSE; $res->code = 201; $res->message = "유효하지 않은 ..
2020.01.07 -
[FastRoute] 로그인 토큰 인증 (1)
1. 상단에 임의의 비밀키 선언 및 토큰 생성 코드 작성 (mainController.php) const JWT_SECRET_KEY = "abcde!abcde!abcde!abcde!abcde!abcde!abcde!abcde!abcde!abcde!abcde!abcde!"; case "test": $param = $_GET["param"]; $param = $req->param; $password = $req->password; $jwt = getJWToken($param, $password, JWT_SECRET_KEY); $res->result->jwt = $jwt; $res->code = 100; $res->message = "로그인에 성공하였습니다."; echo json_encode($res, JSON..
2020.01.07