회원 로그인
|
회원가입 + 로그인 스크립트 (with Unity)
PHP 회원가입 + 로그인 스크립트
*유니티 스크립트는 '게임에 로그인 붙이기' 유니티팩키지 파일 확인
login.php - 로그인
join.php - 가입
idcheck.php - id 체크
update.php - gold 필드 수정
delete.php - 계정 삭제
charcheck.php - 참고) 한글/특수문자 체크
*유니티 스크립트는 '게임에 로그인 붙이기' 유니티팩키지 파일 확인
login.php - 로그인
<?php // 로그인 // 확인 / 로그인 $user_id = $_POST["user_id"]; $user_pw = $_POST["user_pw"]; // 응답 딕셔너리 생성 $res_data = array( 'RESULT' => "EMPTY_ACCOUNT"); // 아이디와 비번 중에 빈값이 있다면 회원 가입 실패 if (!($user_id && $user_pw)){ echo json_encode($res_data); exit(); } $loginDate = date("Y-m-d H:i:s"); // 1.mysql 데이터베이스 연결 $connect = mysqli_connect("localhost","game","db패스워드","project") or die("Error".mysqli_error($connect)); // 2.계정 조회 쿼리 작성 $sql = "SELECT * FROM gam_tb WHERE id='".$user_id."' && pw='".$user_pw."';"; // echo "sql = ".$sql; // 3.쿼리 실행 $result = mysqli_query($connect, $sql); // 로그인 날짜 기록 $sql = "UPDATE gam_tb SET login_date='".$loginDate."' WHERE id='".$user_id."';"; mysqli_query($connect, $sql); // $result->num_rows 조회 경과의 수로 판단 if($result->num_rows > 0) { while($row = mysqli_fetch_assoc($result)){ $res_data["INFO"] = $row; } $res_data["RESULT"] = "LOGIN_SUCCESS"; } else { $res_data["RESULT"] = "LOGIN_FAIL"; } echo json_encode($res_data); mysqli_close($connect); ?>
join.php - 가입
<?php // 가입 // 한글, 특수문자 체크 함수 참조 // include ("idcheck.php"); // 에러 메세지 출력 하기 및 설정 http://ra2kstar.tistory.com/102 error_reporting(E_ALL); ini_set("display_errors", 0); $user_id = $_POST["user_id"]; $user_pw = $_POST["user_pw"]; // 응답 딕셔너리 생성 $res_data = array('RESULT' => "EMPTY_ACCOUNT"); // 아이디와 비번 중에 빈 값이 있다면 회원 가입 실패 if (!($user_id && $user_pw)){ echo json_encode($res_data); exit(); } $joinDate = date("Y-m-d H:i:s"); // 한글, 특수 문자 체크 // 1. mysql 데이터베이스 연결 $connect = mysqli_connect("localhost", "game", "db패스워드","project") or die("Error".mysql_error($connect)); // 연결 실패시 종료 // 2. 회원정보를 데이터베이스에 추가하는 쿼리를 작성 $sql = "INSERT INTO gam_tb (id, pw, join_date) VALUES ('".$user_id."', '".$user_pw."', '".$joinDate."');"; // 3. mysql 쿼리를 포함한 요청을 보냄 // echo "sql => ".$sql; mysqli_query($connect, $sql); // 4. mysql에 요청한 쿼리에 응답을 받음 $result = mysqli_affected_rows($connect); // 응답 결과를 딕셔너리로 if ($result > 0) { $res_data["RESULT"] = "JOIN_SUCCESS"; } else { $res_data["RESULT"] = "JOIN_FAIL"; } // json으로 출력 echo json_encode($res_data); mysqli_close($connect); ?>
idcheck.php - id 체크
<?php // 아이디 중복 확인 // 확인 / 로그인 $user_id = $_POST["user_id"]; // 응답 딕셔너리 생성 $res_data = array( 'RESULT' => "EMPTY_ACCOUNT"); // 아이디와 비번 중에 빈값이 있다면 회원 가입 실패 if (!($user_id)){ echo json_encode($res_data); exit(); } // 1.mysql 데이터베이스 연결 $connect = mysqli_connect("localhost","game","db패스워드","project") or die("Error".mysqli_error($connect)); // 2.계정 조회 쿼리 작성 $sql = "SELECT * FROM gam_tb WHERE id='".$user_id."';"; // echo "sql = ".$sql; // 3.쿼리 실행 $result = mysqli_query($connect, $sql); // 중복된 아이디 있음 if($result->num_rows > 0) { $res_data["RESULT"] = "JOIN_DENY"; } else { // 가입 허용 $res_data["RESULT"] = "JOIN_ALLOW"; } echo json_encode($res_data); mysqli_close($connect); ?>
update.php - gold 필드 수정
<?php // 스코어 업데이트 // POST 방식으로 아이디와 비번을 입력 받음 $user_id = $_POST["user_id"]; $gold = $_POST["gold"]; // 응답 딕셔너리 생성 $res_data = array( 'RESULT' => "EMPTY_UPDATE_VALUE"); // 아이디와 비번 중에 빈 값이 있다면 실패 if (!($user_id && $gold)){ echo json_encode($res_data); // 클라이언트에게 전송하기 위해 exit(); // php 프로세스 정료 } // 1. mysql 데이터베이스 연결 $connect = mysqli_connect("localhost", "game", "db패스워드","project") or die("Error".mysql_error($connect)); // 연결 실패시 종료 // 2. 회원정보를 데이터베이스에 추가하는 쿼리를 작성 $sql = "UPDATE gam_tb SET gold=".$gold." WHERE id='".$user_id."';"; // 3. mysql 쿼리를 포함한 요청을 보냄 //echo "sql => ".$sql; mysqli_query($connect, $sql); // 4. mysql에 요청한 쿼리에 응답을 받음 $result = mysqli_affected_rows($connect); // 쿼리 성공 레코드 갯수 // 응답 딕셔너리에 결과 수정 if ($result > 0) { $res_data["RESULT"] = "SCORE_UPDATE_SUCCESS"; } else { $res_data["RESULT"] = "UPDATE_FAIL"; } echo json_encode($res_data); mysqli_close($connect); ?>
delete.php - 계정 삭제
<?php // 계정 삭제 // POST 방식으로 아이디 입력받음 $user_id = $_POST["user_id"]; // 응답 딕셔너리 생성 $res_data = array( 'RESULT' => "EMPTY_ACCOUNT"); // 아이디 빈 값이 있다면 회원 가입 실패 if (!$user_id){ echo json_encode($res_data); // 클라이언트에게 전송하기 위해 exit(); // php 프로세스 정료 } // 1. mysql 데이터베이스 연결 $connect = mysqli_connect("localhost", "game", "db패스워드","project") or die("Error".mysql_error($connect)); // 연결 실패시 종료 // 2. 회원정보를 데이터베이스에 삭제하는 쿼리를 작성 $sql = "DELETE FROM gam_tb WHERE id='".$user_id."';"; // 3. mysql 쿼리를 포함한 요청을 보냄 mysqli_query($connect, $sql); // 4. mysql에 요청한 쿼리에 응답을 받음 $result = mysqli_affected_rows($connect); // 쿼리 성공 레코드 갯수 // 응답 딕셔너리에 결과 수정 if ($result > 0) { $res_data["RESULT"] = "SECESSION_SUCCESS"; } else { $res_data["RESULT"] = "SECESSION_FAIL"; } echo json_encode($res_data); mysqli_close($connect); ?>
charcheck.php - 참고) 한글/특수문자 체크
<?php // https://www.xpressengine.com/tip/22635873 // ********** 파라미터값 규칙 설정 함수 *****************/ function addParamRule($obj, $rule){ $chk = 1; $obj = trim($obj); if($obj){ //한글체크 if(!eregi("kr", trim($rule))){ if(preg_match("/[\xA1-\xFE\xA1-\xFE]/", $obj)) $chk = 0; } //영문체크 if(!eregi("en", trim($rule))){ if(preg_match("/[a-zA-Z]/", $obj)) $chk = 0; } //숫자체크 if(!eregi("int", trim($rule))){ if(preg_match("/[0-9]/", $obj)) $chk = 0; } //특수문자체크 if(!eregi("special", trim($rule))){ if(preg_match("/[!#$%^&*()?+=\/]/", $obj)) $chk = 0; } //echo $obj.":".$rule.":".$chk." // "; if($chk != 1) { echo "'".$obj."' 값에 금지된 문자가 포함되어 있습니다."; exit; } } } ?>
댓글 2개
| 엮인글 0개
285개(6/15페이지)
번호 | 제목 | 글쓴이 | 조회 | 날짜 |
---|---|---|---|---|
>> | [PHP] 회원가입 + 로그인 스크립트 (with Unity) [2+1] | 푸딩뱃살 | 12246 | 2015.12.06 17:31 |
184 | [C#] C# 추천 서적 | 푸딩뱃살 | 1325 | 2015.12.06 17:16 |
183 | [C/C++] C++ 참고 사이트 | 푸딩뱃살 | 1184 | 2015.12.04 16:13 |
182 | [PHP] 클래스 | 푸딩뱃살 | 3583 | 2015.12.04 14:40 |
181 | [PHP] CodeIgniter(코드이그나이트) | 푸딩뱃살 | 2936 | 2015.12.04 14:40 |
180 | [C#] Delegate (델리게이트) (with Unity) | 푸딩뱃살 | 6268 | 2015.12.01 10:44 |
179 | [PHP] php 함수 | 푸딩뱃살 | 2219 | 2015.11.30 15:33 |
178 | [PHP] Dictionary (딕셔너리) | 푸딩뱃살 | 2870 | 2015.11.27 12:37 |
177 | [PHP] 배열 | 푸딩뱃살 | 2171 | 2015.11.27 12:37 |
176 | [PHP] 변수 선언 / 산술 연산 | 푸딩뱃살 | 2184 | 2015.11.27 11:14 |
175 | [C#] Dictionary (딕셔너리) (with Unity) [3+3] | 푸딩뱃살 | 14486 | 2015.11.25 10:29 |
174 | [C#] List (리스트) (with Unity) | 푸딩뱃살 | 12090 | 2015.11.24 10:22 |
173 | [C#] Generic (제네릭) (with Unity) | 푸딩뱃살 | 4891 | 2015.11.22 12:32 |
172 | [C/C++] Templete (템플릿) | 푸딩뱃살 | 2047 | 2015.11.22 12:15 |
171 | [C#] 키보드 입력 | 푸딩뱃살 | 3572 | 2015.11.21 18:00 |
170 | [C#] 예외와 예외 처리 | 푸딩뱃살 | 4127 | 2015.11.21 17:39 |
169 | [C#] Struct (구조체) (with Unity) | 푸딩뱃살 | 5128 | 2015.11.18 22:08 |
168 | [C#] Property (프로퍼티) (with Unity) | 푸딩뱃살 | 2444 | 2015.11.18 10:50 |
167 | [C#] interface (인터페이스) (with Unity) | 푸딩뱃살 | 3309 | 2015.11.15 17:32 |
166 | [C#] 스트림 (stream) - 문자, 바이너리 읽기/쓰기 | 푸딩뱃살 | 12791 | 2015.11.14 18:24 |